mirror of
https://github.com/intel/compute-runtime.git
synced 2025-12-29 17:13:29 +08:00
test: when hostStorageDuplicated sempahores still wait for device address
Related-to: NEO-12737 Signed-off-by: Damian Tomczak <damian.tomczak@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
3759ab279f
commit
f4b60f90f7
@@ -3954,9 +3954,10 @@ HWTEST2_F(InOrderCmdListTests, givenInOrderModeWhenProgrammingComputeCopyThenDon
|
||||
context->freeMem(alloc);
|
||||
}
|
||||
|
||||
HWTEST2_F(InOrderCmdListTests, givenAlocFlushRequiredhenProgrammingComputeCopyThenSingalFromSdi, IsAtLeastXeHpCore) {
|
||||
HWTEST2_F(InOrderCmdListTests, givenAllocFlushRequiredWhenProgrammingComputeCopyThenSignalFromSdi, IsAtLeastXeHpCore) {
|
||||
using WalkerVariant = typename FamilyType::WalkerVariant;
|
||||
using MI_STORE_DATA_IMM = typename FamilyType::MI_STORE_DATA_IMM;
|
||||
using MI_ATOMIC = typename FamilyType::MI_ATOMIC;
|
||||
auto immCmdList = createImmCmdList<gfxCoreFamily>();
|
||||
|
||||
auto cmdStream = immCmdList->getCmdContainer().getCommandStream();
|
||||
@@ -3985,13 +3986,28 @@ HWTEST2_F(InOrderCmdListTests, givenAlocFlushRequiredhenProgrammingComputeCopyTh
|
||||
},
|
||||
walkerVariant);
|
||||
|
||||
auto sdiItor = find<MI_STORE_DATA_IMM *>(walkerItor, cmdList.end());
|
||||
auto inOrderExecInfo = immCmdList->inOrderExecInfo;
|
||||
auto gpuAddress = inOrderExecInfo->getBaseDeviceAddress();
|
||||
|
||||
auto miAtomicItor = find<MI_ATOMIC *>(walkerItor, cmdList.end());
|
||||
if (device->getProductHelper().isDcFlushAllowed() && inOrderExecInfo->isHostStorageDuplicated()) {
|
||||
EXPECT_NE(cmdList.end(), miAtomicItor);
|
||||
auto miAtomicCmd = genCmdCast<MI_ATOMIC *>(*miAtomicItor);
|
||||
EXPECT_EQ(gpuAddress, miAtomicCmd->getMemoryAddress());
|
||||
} else {
|
||||
EXPECT_EQ(cmdList.end(), miAtomicItor);
|
||||
}
|
||||
|
||||
auto sdiItor = find<MI_STORE_DATA_IMM *>(walkerItor, cmdList.end());
|
||||
if (dcFlushRequired) {
|
||||
EXPECT_NE(cmdList.end(), sdiItor);
|
||||
auto sdiCmd = genCmdCast<MI_STORE_DATA_IMM *>(*sdiItor);
|
||||
auto inOrderExecInfo = immCmdList->inOrderExecInfo;
|
||||
if (inOrderExecInfo->isHostStorageDuplicated()) {
|
||||
gpuAddress = reinterpret_cast<uint64_t>(inOrderExecInfo->getBaseHostAddress());
|
||||
}
|
||||
|
||||
EXPECT_EQ(immCmdList->inOrderExecInfo->getBaseDeviceAddress(), sdiCmd->getAddress());
|
||||
auto sdiCmd = genCmdCast<MI_STORE_DATA_IMM *>(*sdiItor);
|
||||
EXPECT_EQ(gpuAddress, sdiCmd->getAddress());
|
||||
} else {
|
||||
EXPECT_EQ(cmdList.end(), sdiItor);
|
||||
}
|
||||
|
||||
@@ -3351,7 +3351,7 @@ void BcsSplitInOrderCmdListTests::verifySplitCmds(LinearStream &cmdStream, size_
|
||||
|
||||
auto inOrderExecInfo = immCmdList.inOrderExecInfo;
|
||||
|
||||
auto counterGpuAddress = inOrderExecInfo->isHostStorageDuplicated() ? reinterpret_cast<uint64_t>(inOrderExecInfo->getBaseHostAddress()) : inOrderExecInfo->getBaseDeviceAddress();
|
||||
auto counterGpuAddress = inOrderExecInfo->getBaseDeviceAddress();
|
||||
|
||||
GenCmdList cmdList;
|
||||
ASSERT_TRUE(FamilyType::Parse::parseCommandBuffer(cmdList, ptrOffset(cmdStream.getCpuBase(), streamOffset), (cmdStream.getUsed() - streamOffset)));
|
||||
@@ -3441,6 +3441,10 @@ void BcsSplitInOrderCmdListTests::verifySplitCmds(LinearStream &cmdStream, size_
|
||||
auto implicitCounterSdi = genCmdCast<MI_STORE_DATA_IMM *>(*(++itor));
|
||||
ASSERT_NE(nullptr, implicitCounterSdi);
|
||||
|
||||
if (inOrderExecInfo->isHostStorageDuplicated()) {
|
||||
counterGpuAddress = reinterpret_cast<uint64_t>(inOrderExecInfo->getBaseHostAddress());
|
||||
}
|
||||
|
||||
EXPECT_EQ(counterGpuAddress, implicitCounterSdi->getAddress());
|
||||
EXPECT_EQ(submissionId + 1, implicitCounterSdi->getDataDword0());
|
||||
|
||||
@@ -3453,6 +3457,7 @@ void BcsSplitInOrderCmdListTests::verifySplitCmds(LinearStream &cmdStream, size_
|
||||
HWTEST2_F(BcsSplitInOrderCmdListTests, givenBcsSplitEnabledWhenDispatchingCopyThenHandleInOrderSignaling, IsAtLeastXeHpcCore) {
|
||||
using MI_STORE_DATA_IMM = typename FamilyType::MI_STORE_DATA_IMM;
|
||||
using MI_SEMAPHORE_WAIT = typename FamilyType::MI_SEMAPHORE_WAIT;
|
||||
using MI_ATOMIC = typename FamilyType::MI_ATOMIC;
|
||||
|
||||
auto immCmdList = createBcsSplitImmCmdList<gfxCoreFamily>();
|
||||
|
||||
@@ -3475,6 +3480,18 @@ HWTEST2_F(BcsSplitInOrderCmdListTests, givenBcsSplitEnabledWhenDispatchingCopyTh
|
||||
auto semaphoreItor = find<MI_SEMAPHORE_WAIT *>(cmdList.begin(), cmdList.end());
|
||||
ASSERT_NE(cmdList.end(), semaphoreItor);
|
||||
|
||||
auto inOrderExecInfo = immCmdList->inOrderExecInfo;
|
||||
auto gpuAddress = inOrderExecInfo->getBaseDeviceAddress();
|
||||
|
||||
auto miAtomicItor = find<MI_ATOMIC *>(semaphoreItor, cmdList.end());
|
||||
if (inOrderExecInfo->isHostStorageDuplicated()) {
|
||||
EXPECT_NE(cmdList.end(), miAtomicItor);
|
||||
auto miAtomicCmd = genCmdCast<MI_ATOMIC *>(*miAtomicItor);
|
||||
EXPECT_EQ(gpuAddress, miAtomicCmd->getMemoryAddress());
|
||||
} else {
|
||||
EXPECT_EQ(cmdList.end(), miAtomicItor);
|
||||
}
|
||||
|
||||
auto sdiItor = find<MI_STORE_DATA_IMM *>(semaphoreItor, cmdList.end());
|
||||
ASSERT_NE(cmdList.end(), sdiItor);
|
||||
|
||||
@@ -3482,7 +3499,9 @@ HWTEST2_F(BcsSplitInOrderCmdListTests, givenBcsSplitEnabledWhenDispatchingCopyTh
|
||||
|
||||
ASSERT_NE(nullptr, sdiCmd);
|
||||
|
||||
auto gpuAddress = immCmdList->inOrderExecInfo->getBaseDeviceAddress();
|
||||
if (inOrderExecInfo->isHostStorageDuplicated()) {
|
||||
gpuAddress = reinterpret_cast<uint64_t>(inOrderExecInfo->getBaseHostAddress());
|
||||
}
|
||||
|
||||
EXPECT_EQ(gpuAddress, sdiCmd->getAddress());
|
||||
EXPECT_EQ(immCmdList->isQwordInOrderCounter(), sdiCmd->getStoreQword());
|
||||
@@ -3568,6 +3587,7 @@ HWTEST2_F(BcsSplitInOrderCmdListTests, givenBcsSplitEnabledWhenAppendingMemoryCo
|
||||
HWTEST2_F(BcsSplitInOrderCmdListTests, givenBcsSplitEnabledWhenDispatchingCopyRegionThenHandleInOrderSignaling, IsAtLeastXeHpcCore) {
|
||||
using MI_STORE_DATA_IMM = typename FamilyType::MI_STORE_DATA_IMM;
|
||||
using MI_SEMAPHORE_WAIT = typename FamilyType::MI_SEMAPHORE_WAIT;
|
||||
using MI_ATOMIC = typename FamilyType::MI_ATOMIC;
|
||||
|
||||
auto immCmdList = createBcsSplitImmCmdList<gfxCoreFamily>();
|
||||
|
||||
@@ -3592,6 +3612,18 @@ HWTEST2_F(BcsSplitInOrderCmdListTests, givenBcsSplitEnabledWhenDispatchingCopyRe
|
||||
auto semaphoreItor = find<MI_SEMAPHORE_WAIT *>(cmdList.begin(), cmdList.end());
|
||||
ASSERT_NE(cmdList.end(), semaphoreItor);
|
||||
|
||||
auto inOrderExecInfo = immCmdList->inOrderExecInfo;
|
||||
auto gpuAddress = inOrderExecInfo->getBaseDeviceAddress();
|
||||
|
||||
auto miAtomicItor = find<MI_ATOMIC *>(semaphoreItor, cmdList.end());
|
||||
if (inOrderExecInfo->isHostStorageDuplicated()) {
|
||||
EXPECT_NE(cmdList.end(), miAtomicItor);
|
||||
auto miAtomicCmd = genCmdCast<MI_ATOMIC *>(*miAtomicItor);
|
||||
EXPECT_EQ(gpuAddress, miAtomicCmd->getMemoryAddress());
|
||||
} else {
|
||||
EXPECT_EQ(cmdList.end(), miAtomicItor);
|
||||
}
|
||||
|
||||
auto sdiItor = find<MI_STORE_DATA_IMM *>(semaphoreItor, cmdList.end());
|
||||
ASSERT_NE(cmdList.end(), sdiItor);
|
||||
|
||||
@@ -3599,7 +3631,9 @@ HWTEST2_F(BcsSplitInOrderCmdListTests, givenBcsSplitEnabledWhenDispatchingCopyRe
|
||||
|
||||
ASSERT_NE(nullptr, sdiCmd);
|
||||
|
||||
auto gpuAddress = immCmdList->inOrderExecInfo->getBaseDeviceAddress();
|
||||
if (inOrderExecInfo->isHostStorageDuplicated()) {
|
||||
gpuAddress = reinterpret_cast<uint64_t>(inOrderExecInfo->getBaseHostAddress());
|
||||
}
|
||||
|
||||
EXPECT_EQ(gpuAddress, sdiCmd->getAddress());
|
||||
EXPECT_EQ(immCmdList->isQwordInOrderCounter(), sdiCmd->getStoreQword());
|
||||
|
||||
Reference in New Issue
Block a user