mirror of
https://github.com/intel/compute-runtime.git
synced 2025-12-20 08:53:55 +08:00
Do not decanonize SBA addresses when tracking
- use cannonized addresses for debugger Resolves: NEO-6997 Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
ddd8a08fac
commit
fb40e8d1a6
@@ -39,7 +39,7 @@ void DebuggerL0Hw<GfxFamily>::programSbaTrackingCommands(NEO::LinearStream &cmdS
|
|||||||
programSbaTrackingCommandsSingleAddressSpace(cmdStream, sba);
|
programSbaTrackingCommandsSingleAddressSpace(cmdStream, sba);
|
||||||
} else {
|
} else {
|
||||||
if (sba.GeneralStateBaseAddress) {
|
if (sba.GeneralStateBaseAddress) {
|
||||||
auto generalStateBaseAddress = gmmHelper->decanonize(sba.GeneralStateBaseAddress);
|
auto generalStateBaseAddress = sba.GeneralStateBaseAddress;
|
||||||
NEO::EncodeStoreMemory<GfxFamily>::programStoreDataImm(cmdStream,
|
NEO::EncodeStoreMemory<GfxFamily>::programStoreDataImm(cmdStream,
|
||||||
gpuAddress + offsetof(SbaTrackedAddresses, GeneralStateBaseAddress),
|
gpuAddress + offsetof(SbaTrackedAddresses, GeneralStateBaseAddress),
|
||||||
static_cast<uint32_t>(generalStateBaseAddress & 0x0000FFFFFFFFULL),
|
static_cast<uint32_t>(generalStateBaseAddress & 0x0000FFFFFFFFULL),
|
||||||
@@ -48,7 +48,7 @@ void DebuggerL0Hw<GfxFamily>::programSbaTrackingCommands(NEO::LinearStream &cmdS
|
|||||||
false);
|
false);
|
||||||
}
|
}
|
||||||
if (sba.SurfaceStateBaseAddress) {
|
if (sba.SurfaceStateBaseAddress) {
|
||||||
auto surfaceStateBaseAddress = gmmHelper->decanonize(sba.SurfaceStateBaseAddress);
|
auto surfaceStateBaseAddress = sba.SurfaceStateBaseAddress;
|
||||||
NEO::EncodeStoreMemory<GfxFamily>::programStoreDataImm(cmdStream,
|
NEO::EncodeStoreMemory<GfxFamily>::programStoreDataImm(cmdStream,
|
||||||
gpuAddress + offsetof(SbaTrackedAddresses, SurfaceStateBaseAddress),
|
gpuAddress + offsetof(SbaTrackedAddresses, SurfaceStateBaseAddress),
|
||||||
static_cast<uint32_t>(surfaceStateBaseAddress & 0x0000FFFFFFFFULL),
|
static_cast<uint32_t>(surfaceStateBaseAddress & 0x0000FFFFFFFFULL),
|
||||||
@@ -57,7 +57,7 @@ void DebuggerL0Hw<GfxFamily>::programSbaTrackingCommands(NEO::LinearStream &cmdS
|
|||||||
false);
|
false);
|
||||||
}
|
}
|
||||||
if (sba.DynamicStateBaseAddress) {
|
if (sba.DynamicStateBaseAddress) {
|
||||||
auto dynamicStateBaseAddress = gmmHelper->decanonize(sba.DynamicStateBaseAddress);
|
auto dynamicStateBaseAddress = sba.DynamicStateBaseAddress;
|
||||||
NEO::EncodeStoreMemory<GfxFamily>::programStoreDataImm(cmdStream,
|
NEO::EncodeStoreMemory<GfxFamily>::programStoreDataImm(cmdStream,
|
||||||
gpuAddress + offsetof(SbaTrackedAddresses, DynamicStateBaseAddress),
|
gpuAddress + offsetof(SbaTrackedAddresses, DynamicStateBaseAddress),
|
||||||
static_cast<uint32_t>(dynamicStateBaseAddress & 0x0000FFFFFFFFULL),
|
static_cast<uint32_t>(dynamicStateBaseAddress & 0x0000FFFFFFFFULL),
|
||||||
@@ -66,7 +66,7 @@ void DebuggerL0Hw<GfxFamily>::programSbaTrackingCommands(NEO::LinearStream &cmdS
|
|||||||
false);
|
false);
|
||||||
}
|
}
|
||||||
if (sba.IndirectObjectBaseAddress) {
|
if (sba.IndirectObjectBaseAddress) {
|
||||||
auto indirectObjectBaseAddress = gmmHelper->decanonize(sba.IndirectObjectBaseAddress);
|
auto indirectObjectBaseAddress = sba.IndirectObjectBaseAddress;
|
||||||
NEO::EncodeStoreMemory<GfxFamily>::programStoreDataImm(cmdStream,
|
NEO::EncodeStoreMemory<GfxFamily>::programStoreDataImm(cmdStream,
|
||||||
gpuAddress + offsetof(SbaTrackedAddresses, IndirectObjectBaseAddress),
|
gpuAddress + offsetof(SbaTrackedAddresses, IndirectObjectBaseAddress),
|
||||||
static_cast<uint32_t>(indirectObjectBaseAddress & 0x0000FFFFFFFFULL),
|
static_cast<uint32_t>(indirectObjectBaseAddress & 0x0000FFFFFFFFULL),
|
||||||
@@ -75,7 +75,7 @@ void DebuggerL0Hw<GfxFamily>::programSbaTrackingCommands(NEO::LinearStream &cmdS
|
|||||||
false);
|
false);
|
||||||
}
|
}
|
||||||
if (sba.InstructionBaseAddress) {
|
if (sba.InstructionBaseAddress) {
|
||||||
auto instructionBaseAddress = gmmHelper->decanonize(sba.InstructionBaseAddress);
|
auto instructionBaseAddress = sba.InstructionBaseAddress;
|
||||||
NEO::EncodeStoreMemory<GfxFamily>::programStoreDataImm(cmdStream,
|
NEO::EncodeStoreMemory<GfxFamily>::programStoreDataImm(cmdStream,
|
||||||
gpuAddress + offsetof(SbaTrackedAddresses, InstructionBaseAddress),
|
gpuAddress + offsetof(SbaTrackedAddresses, InstructionBaseAddress),
|
||||||
static_cast<uint32_t>(instructionBaseAddress & 0x0000FFFFFFFFULL),
|
static_cast<uint32_t>(instructionBaseAddress & 0x0000FFFFFFFFULL),
|
||||||
@@ -84,7 +84,7 @@ void DebuggerL0Hw<GfxFamily>::programSbaTrackingCommands(NEO::LinearStream &cmdS
|
|||||||
false);
|
false);
|
||||||
}
|
}
|
||||||
if (sba.BindlessSurfaceStateBaseAddress) {
|
if (sba.BindlessSurfaceStateBaseAddress) {
|
||||||
auto bindlessSurfaceStateBaseAddress = gmmHelper->decanonize(sba.BindlessSurfaceStateBaseAddress);
|
auto bindlessSurfaceStateBaseAddress = sba.BindlessSurfaceStateBaseAddress;
|
||||||
NEO::EncodeStoreMemory<GfxFamily>::programStoreDataImm(cmdStream,
|
NEO::EncodeStoreMemory<GfxFamily>::programStoreDataImm(cmdStream,
|
||||||
gpuAddress + offsetof(SbaTrackedAddresses, BindlessSurfaceStateBaseAddress),
|
gpuAddress + offsetof(SbaTrackedAddresses, BindlessSurfaceStateBaseAddress),
|
||||||
static_cast<uint32_t>(bindlessSurfaceStateBaseAddress & 0x0000FFFFFFFFULL),
|
static_cast<uint32_t>(bindlessSurfaceStateBaseAddress & 0x0000FFFFFFFFULL),
|
||||||
|
|||||||
@@ -34,25 +34,24 @@ void DebuggerL0Hw<GfxFamily>::programSbaTrackingCommandsSingleAddressSpace(NEO::
|
|||||||
UNRECOVERABLE_IF(!singleAddressSpaceSbaTracking);
|
UNRECOVERABLE_IF(!singleAddressSpaceSbaTracking);
|
||||||
|
|
||||||
std::vector<std::pair<size_t, uint64_t>> fieldOffsetAndValue;
|
std::vector<std::pair<size_t, uint64_t>> fieldOffsetAndValue;
|
||||||
auto gmmHelper = device->getGmmHelper();
|
|
||||||
|
|
||||||
if (sba.GeneralStateBaseAddress) {
|
if (sba.GeneralStateBaseAddress) {
|
||||||
fieldOffsetAndValue.push_back({offsetof(SbaTrackedAddresses, GeneralStateBaseAddress), gmmHelper->decanonize(sba.GeneralStateBaseAddress)});
|
fieldOffsetAndValue.push_back({offsetof(SbaTrackedAddresses, GeneralStateBaseAddress), sba.GeneralStateBaseAddress});
|
||||||
}
|
}
|
||||||
if (sba.SurfaceStateBaseAddress) {
|
if (sba.SurfaceStateBaseAddress) {
|
||||||
fieldOffsetAndValue.push_back({offsetof(SbaTrackedAddresses, SurfaceStateBaseAddress), gmmHelper->decanonize(sba.SurfaceStateBaseAddress)});
|
fieldOffsetAndValue.push_back({offsetof(SbaTrackedAddresses, SurfaceStateBaseAddress), sba.SurfaceStateBaseAddress});
|
||||||
}
|
}
|
||||||
if (sba.DynamicStateBaseAddress) {
|
if (sba.DynamicStateBaseAddress) {
|
||||||
fieldOffsetAndValue.push_back({offsetof(SbaTrackedAddresses, DynamicStateBaseAddress), gmmHelper->decanonize(sba.DynamicStateBaseAddress)});
|
fieldOffsetAndValue.push_back({offsetof(SbaTrackedAddresses, DynamicStateBaseAddress), sba.DynamicStateBaseAddress});
|
||||||
}
|
}
|
||||||
if (sba.IndirectObjectBaseAddress) {
|
if (sba.IndirectObjectBaseAddress) {
|
||||||
fieldOffsetAndValue.push_back({offsetof(SbaTrackedAddresses, IndirectObjectBaseAddress), gmmHelper->decanonize(sba.IndirectObjectBaseAddress)});
|
fieldOffsetAndValue.push_back({offsetof(SbaTrackedAddresses, IndirectObjectBaseAddress), sba.IndirectObjectBaseAddress});
|
||||||
}
|
}
|
||||||
if (sba.InstructionBaseAddress) {
|
if (sba.InstructionBaseAddress) {
|
||||||
fieldOffsetAndValue.push_back({offsetof(SbaTrackedAddresses, InstructionBaseAddress), gmmHelper->decanonize(sba.InstructionBaseAddress)});
|
fieldOffsetAndValue.push_back({offsetof(SbaTrackedAddresses, InstructionBaseAddress), sba.InstructionBaseAddress});
|
||||||
}
|
}
|
||||||
if (sba.BindlessSurfaceStateBaseAddress) {
|
if (sba.BindlessSurfaceStateBaseAddress) {
|
||||||
fieldOffsetAndValue.push_back({offsetof(SbaTrackedAddresses, BindlessSurfaceStateBaseAddress), gmmHelper->decanonize(sba.BindlessSurfaceStateBaseAddress)});
|
fieldOffsetAndValue.push_back({offsetof(SbaTrackedAddresses, BindlessSurfaceStateBaseAddress), sba.BindlessSurfaceStateBaseAddress});
|
||||||
}
|
}
|
||||||
const auto cmdStreamGpuBase = cmdStream.getGpuBase();
|
const auto cmdStreamGpuBase = cmdStream.getGpuBase();
|
||||||
const auto cmdStreamCpuBase = reinterpret_cast<uint64_t>(cmdStream.getCpuBase());
|
const auto cmdStreamCpuBase = reinterpret_cast<uint64_t>(cmdStream.getCpuBase());
|
||||||
|
|||||||
@@ -126,9 +126,8 @@ HWTEST2_F(DebuggerSingleAddressSpaceAub, GivenSingleAddressSpaceWhenCmdListIsExe
|
|||||||
expectMMIO<FamilyType>(CS_GPR_R15 + 4, high);
|
expectMMIO<FamilyType>(CS_GPR_R15 + 4, high);
|
||||||
|
|
||||||
auto instructionHeapBaseAddress = neoDevice->getMemoryManager()->getInternalHeapBaseAddress(device->getRootDeviceIndex(), neoDevice->getMemoryManager()->isLocalMemoryUsedForIsa(neoDevice->getRootDeviceIndex()));
|
auto instructionHeapBaseAddress = neoDevice->getMemoryManager()->getInternalHeapBaseAddress(device->getRootDeviceIndex(), neoDevice->getMemoryManager()->isLocalMemoryUsedForIsa(neoDevice->getRootDeviceIndex()));
|
||||||
auto gmmHelper = neoDevice->getGmmHelper();
|
auto dynamicStateBaseAddress = commandList->commandContainer.getIndirectHeap(HeapType::DYNAMIC_STATE)->getGraphicsAllocation()->getGpuAddress();
|
||||||
auto dynamicStateBaseAddress = gmmHelper->decanonize(commandList->commandContainer.getIndirectHeap(HeapType::DYNAMIC_STATE)->getGraphicsAllocation()->getGpuAddress());
|
auto surfaceStateBaseAddress = commandList->commandContainer.getIndirectHeap(HeapType::SURFACE_STATE)->getGraphicsAllocation()->getGpuAddress();
|
||||||
auto surfaceStateBaseAddress = gmmHelper->decanonize(commandList->commandContainer.getIndirectHeap(HeapType::SURFACE_STATE)->getGraphicsAllocation()->getGpuAddress());
|
|
||||||
|
|
||||||
expectMemory<FamilyType>(reinterpret_cast<void *>(sbaAddress + offsetof(SbaTrackedAddresses, SurfaceStateBaseAddress)),
|
expectMemory<FamilyType>(reinterpret_cast<void *>(sbaAddress + offsetof(SbaTrackedAddresses, SurfaceStateBaseAddress)),
|
||||||
&surfaceStateBaseAddress, sizeof(surfaceStateBaseAddress));
|
&surfaceStateBaseAddress, sizeof(surfaceStateBaseAddress));
|
||||||
|
|||||||
@@ -426,10 +426,8 @@ HWTEST_F(L0DebuggerSimpleTest, givenNonZeroGpuVasWhenProgrammingSbaTrackingThenC
|
|||||||
|
|
||||||
expectedGpuVa = debugger->sbaTrackingGpuVa.address + offsetof(SbaTrackedAddresses, DynamicStateBaseAddress);
|
expectedGpuVa = debugger->sbaTrackingGpuVa.address + offsetof(SbaTrackedAddresses, DynamicStateBaseAddress);
|
||||||
|
|
||||||
auto gmmHelper = neoDevice->getGmmHelper();
|
EXPECT_EQ(static_cast<uint32_t>(dsba & 0x0000FFFFFFFFULL), cmdSdi->getDataDword0());
|
||||||
auto decanonizedAddress = gmmHelper->decanonize(dsba);
|
EXPECT_EQ(static_cast<uint32_t>(dsba >> 32), cmdSdi->getDataDword1());
|
||||||
EXPECT_EQ(static_cast<uint32_t>(decanonizedAddress & 0x0000FFFFFFFFULL), cmdSdi->getDataDword0());
|
|
||||||
EXPECT_EQ(static_cast<uint32_t>(decanonizedAddress >> 32), cmdSdi->getDataDword1());
|
|
||||||
EXPECT_EQ(expectedGpuVa, cmdSdi->getAddress());
|
EXPECT_EQ(expectedGpuVa, cmdSdi->getAddress());
|
||||||
EXPECT_TRUE(cmdSdi->getStoreQword());
|
EXPECT_TRUE(cmdSdi->getStoreQword());
|
||||||
|
|
||||||
@@ -495,10 +493,8 @@ HWTEST_F(L0DebuggerSimpleTest, givenCanonizedGpuVasWhenProgrammingSbaTrackingThe
|
|||||||
ASSERT_NE(cmdList.end(), sdiItor);
|
ASSERT_NE(cmdList.end(), sdiItor);
|
||||||
auto cmdSdi = genCmdCast<MI_STORE_DATA_IMM *>(*sdiItor);
|
auto cmdSdi = genCmdCast<MI_STORE_DATA_IMM *>(*sdiItor);
|
||||||
|
|
||||||
auto gmmHelper = neoDevice->getGmmHelper();
|
EXPECT_EQ(static_cast<uint32_t>(gsba & 0x0000FFFFFFFFULL), cmdSdi->getDataDword0());
|
||||||
auto decanonizedAddress = gmmHelper->decanonize(gsba);
|
EXPECT_EQ(static_cast<uint32_t>(gsba >> 32), cmdSdi->getDataDword1());
|
||||||
EXPECT_EQ(static_cast<uint32_t>(decanonizedAddress & 0x0000FFFFFFFFULL), cmdSdi->getDataDword0());
|
|
||||||
EXPECT_EQ(static_cast<uint32_t>(decanonizedAddress >> 32), cmdSdi->getDataDword1());
|
|
||||||
EXPECT_EQ(expectedGpuVa, cmdSdi->getAddress());
|
EXPECT_EQ(expectedGpuVa, cmdSdi->getAddress());
|
||||||
EXPECT_TRUE(cmdSdi->getStoreQword());
|
EXPECT_TRUE(cmdSdi->getStoreQword());
|
||||||
|
|
||||||
@@ -507,9 +503,8 @@ HWTEST_F(L0DebuggerSimpleTest, givenCanonizedGpuVasWhenProgrammingSbaTrackingThe
|
|||||||
|
|
||||||
expectedGpuVa = debugger->sbaTrackingGpuVa.address + offsetof(SbaTrackedAddresses, SurfaceStateBaseAddress);
|
expectedGpuVa = debugger->sbaTrackingGpuVa.address + offsetof(SbaTrackedAddresses, SurfaceStateBaseAddress);
|
||||||
|
|
||||||
decanonizedAddress = gmmHelper->decanonize(ssba);
|
EXPECT_EQ(static_cast<uint32_t>(ssba & 0x0000FFFFFFFFULL), cmdSdi->getDataDword0());
|
||||||
EXPECT_EQ(static_cast<uint32_t>(decanonizedAddress & 0x0000FFFFFFFFULL), cmdSdi->getDataDword0());
|
EXPECT_EQ(static_cast<uint32_t>(ssba >> 32), cmdSdi->getDataDword1());
|
||||||
EXPECT_EQ(static_cast<uint32_t>(decanonizedAddress >> 32), cmdSdi->getDataDword1());
|
|
||||||
EXPECT_EQ(expectedGpuVa, cmdSdi->getAddress());
|
EXPECT_EQ(expectedGpuVa, cmdSdi->getAddress());
|
||||||
EXPECT_TRUE(cmdSdi->getStoreQword());
|
EXPECT_TRUE(cmdSdi->getStoreQword());
|
||||||
|
|
||||||
@@ -517,9 +512,8 @@ HWTEST_F(L0DebuggerSimpleTest, givenCanonizedGpuVasWhenProgrammingSbaTrackingThe
|
|||||||
cmdSdi = genCmdCast<MI_STORE_DATA_IMM *>(*sdiItor);
|
cmdSdi = genCmdCast<MI_STORE_DATA_IMM *>(*sdiItor);
|
||||||
|
|
||||||
expectedGpuVa = debugger->sbaTrackingGpuVa.address + offsetof(SbaTrackedAddresses, DynamicStateBaseAddress);
|
expectedGpuVa = debugger->sbaTrackingGpuVa.address + offsetof(SbaTrackedAddresses, DynamicStateBaseAddress);
|
||||||
decanonizedAddress = gmmHelper->decanonize(dsba);
|
EXPECT_EQ(static_cast<uint32_t>(dsba & 0x0000FFFFFFFFULL), cmdSdi->getDataDword0());
|
||||||
EXPECT_EQ(static_cast<uint32_t>(decanonizedAddress & 0x0000FFFFFFFFULL), cmdSdi->getDataDword0());
|
EXPECT_EQ(static_cast<uint32_t>(dsba >> 32), cmdSdi->getDataDword1());
|
||||||
EXPECT_EQ(static_cast<uint32_t>(decanonizedAddress >> 32), cmdSdi->getDataDword1());
|
|
||||||
EXPECT_EQ(expectedGpuVa, cmdSdi->getAddress());
|
EXPECT_EQ(expectedGpuVa, cmdSdi->getAddress());
|
||||||
EXPECT_TRUE(cmdSdi->getStoreQword());
|
EXPECT_TRUE(cmdSdi->getStoreQword());
|
||||||
|
|
||||||
@@ -527,9 +521,8 @@ HWTEST_F(L0DebuggerSimpleTest, givenCanonizedGpuVasWhenProgrammingSbaTrackingThe
|
|||||||
cmdSdi = genCmdCast<MI_STORE_DATA_IMM *>(*sdiItor);
|
cmdSdi = genCmdCast<MI_STORE_DATA_IMM *>(*sdiItor);
|
||||||
|
|
||||||
expectedGpuVa = debugger->sbaTrackingGpuVa.address + offsetof(SbaTrackedAddresses, IndirectObjectBaseAddress);
|
expectedGpuVa = debugger->sbaTrackingGpuVa.address + offsetof(SbaTrackedAddresses, IndirectObjectBaseAddress);
|
||||||
decanonizedAddress = gmmHelper->decanonize(ioba);
|
EXPECT_EQ(static_cast<uint32_t>(ioba & 0x0000FFFFFFFFULL), cmdSdi->getDataDword0());
|
||||||
EXPECT_EQ(static_cast<uint32_t>(decanonizedAddress & 0x0000FFFFFFFFULL), cmdSdi->getDataDword0());
|
EXPECT_EQ(static_cast<uint32_t>(ioba >> 32), cmdSdi->getDataDword1());
|
||||||
EXPECT_EQ(static_cast<uint32_t>(decanonizedAddress >> 32), cmdSdi->getDataDword1());
|
|
||||||
EXPECT_EQ(expectedGpuVa, cmdSdi->getAddress());
|
EXPECT_EQ(expectedGpuVa, cmdSdi->getAddress());
|
||||||
EXPECT_TRUE(cmdSdi->getStoreQword());
|
EXPECT_TRUE(cmdSdi->getStoreQword());
|
||||||
|
|
||||||
@@ -537,9 +530,8 @@ HWTEST_F(L0DebuggerSimpleTest, givenCanonizedGpuVasWhenProgrammingSbaTrackingThe
|
|||||||
cmdSdi = genCmdCast<MI_STORE_DATA_IMM *>(*sdiItor);
|
cmdSdi = genCmdCast<MI_STORE_DATA_IMM *>(*sdiItor);
|
||||||
|
|
||||||
expectedGpuVa = debugger->sbaTrackingGpuVa.address + offsetof(SbaTrackedAddresses, InstructionBaseAddress);
|
expectedGpuVa = debugger->sbaTrackingGpuVa.address + offsetof(SbaTrackedAddresses, InstructionBaseAddress);
|
||||||
decanonizedAddress = gmmHelper->decanonize(iba);
|
EXPECT_EQ(static_cast<uint32_t>(iba & 0x0000FFFFFFFFULL), cmdSdi->getDataDword0());
|
||||||
EXPECT_EQ(static_cast<uint32_t>(decanonizedAddress & 0x0000FFFFFFFFULL), cmdSdi->getDataDword0());
|
EXPECT_EQ(static_cast<uint32_t>(iba >> 32), cmdSdi->getDataDword1());
|
||||||
EXPECT_EQ(static_cast<uint32_t>(decanonizedAddress >> 32), cmdSdi->getDataDword1());
|
|
||||||
EXPECT_EQ(expectedGpuVa, cmdSdi->getAddress());
|
EXPECT_EQ(expectedGpuVa, cmdSdi->getAddress());
|
||||||
EXPECT_TRUE(cmdSdi->getStoreQword());
|
EXPECT_TRUE(cmdSdi->getStoreQword());
|
||||||
|
|
||||||
@@ -547,9 +539,8 @@ HWTEST_F(L0DebuggerSimpleTest, givenCanonizedGpuVasWhenProgrammingSbaTrackingThe
|
|||||||
cmdSdi = genCmdCast<MI_STORE_DATA_IMM *>(*sdiItor);
|
cmdSdi = genCmdCast<MI_STORE_DATA_IMM *>(*sdiItor);
|
||||||
|
|
||||||
expectedGpuVa = debugger->sbaTrackingGpuVa.address + offsetof(SbaTrackedAddresses, BindlessSurfaceStateBaseAddress);
|
expectedGpuVa = debugger->sbaTrackingGpuVa.address + offsetof(SbaTrackedAddresses, BindlessSurfaceStateBaseAddress);
|
||||||
decanonizedAddress = gmmHelper->decanonize(ssba);
|
EXPECT_EQ(static_cast<uint32_t>(ssba & 0x0000FFFFFFFFULL), cmdSdi->getDataDword0());
|
||||||
EXPECT_EQ(static_cast<uint32_t>(decanonizedAddress & 0x0000FFFFFFFFULL), cmdSdi->getDataDword0());
|
EXPECT_EQ(static_cast<uint32_t>(ssba >> 32), cmdSdi->getDataDword1());
|
||||||
EXPECT_EQ(static_cast<uint32_t>(decanonizedAddress >> 32), cmdSdi->getDataDword1());
|
|
||||||
EXPECT_EQ(expectedGpuVa, cmdSdi->getAddress());
|
EXPECT_EQ(expectedGpuVa, cmdSdi->getAddress());
|
||||||
EXPECT_TRUE(cmdSdi->getStoreQword());
|
EXPECT_TRUE(cmdSdi->getStoreQword());
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user