Skip to content

Commit 84d1461

Browse files
jchodorCompute-Runtime-Automation
authored andcommitted
Fixing execution model tests
Tests were reliyng on order of kernels within device binary Change-Id: Ic66430ce76d44556f579e9d1217b25caf448aa72
1 parent 4692bc1 commit 84d1461

File tree

1 file changed

+25
-4
lines changed

1 file changed

+25
-4
lines changed

unit_tests/execution_model/enqueue_execution_model_kernel_tests.cpp

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -109,11 +109,22 @@ HWCMDTEST_P(IGFX_GEN8_CORE, ParentKernelEnqueueTest, GivenBlockKernelWithPrivate
109109
int32_t executionStamp = 0;
110110
auto mockCSR = new MockCsr<FamilyType>(executionStamp, *pDevice->executionEnvironment);
111111
pDevice->resetCommandStreamReceiver(mockCSR);
112-
GraphicsAllocation *privateSurface = pKernel->getProgram()->getBlockKernelManager()->getPrivateSurface(0);
112+
113+
size_t kernelRequiringPrivateSurface = pKernel->getProgram()->getBlockKernelManager()->getCount();
114+
for (size_t i = 0; i < pKernel->getProgram()->getBlockKernelManager()->getCount(); ++i) {
115+
if (nullptr != pKernel->getProgram()->getBlockKernelManager()->getBlockKernelInfo(i)->patchInfo.pAllocateStatelessPrivateSurface) {
116+
kernelRequiringPrivateSurface = i;
117+
break;
118+
}
119+
}
120+
121+
ASSERT_NE(kernelRequiringPrivateSurface, pKernel->getProgram()->getBlockKernelManager()->getCount());
122+
123+
GraphicsAllocation *privateSurface = pKernel->getProgram()->getBlockKernelManager()->getPrivateSurface(kernelRequiringPrivateSurface);
113124

114125
if (privateSurface == nullptr) {
115126
privateSurface = mockCSR->getMemoryManager()->allocateGraphicsMemoryWithProperties(MockAllocationProperties{MemoryConstants::pageSize});
116-
pKernel->getProgram()->getBlockKernelManager()->pushPrivateSurface(privateSurface, 0);
127+
pKernel->getProgram()->getBlockKernelManager()->pushPrivateSurface(privateSurface, kernelRequiringPrivateSurface);
117128
}
118129

119130
pCmdQ->enqueueKernel(pKernel, 1, offset, gws, gws, 0, nullptr, nullptr);
@@ -131,11 +142,21 @@ HWCMDTEST_P(IGFX_GEN8_CORE, ParentKernelEnqueueTest, GivenBlocksWithPrivateMemor
131142
auto &csr = pDevice->getUltCommandStreamReceiver<FamilyType>();
132143
csr.storeMakeResidentAllocations = true;
133144

134-
auto privateAllocation = pKernel->getProgram()->getBlockKernelManager()->getPrivateSurface(0);
145+
size_t kernelRequiringPrivateSurface = pKernel->getProgram()->getBlockKernelManager()->getCount();
146+
for (size_t i = 0; i < pKernel->getProgram()->getBlockKernelManager()->getCount(); ++i) {
147+
if (nullptr != pKernel->getProgram()->getBlockKernelManager()->getBlockKernelInfo(i)->patchInfo.pAllocateStatelessPrivateSurface) {
148+
kernelRequiringPrivateSurface = i;
149+
break;
150+
}
151+
}
152+
153+
ASSERT_NE(kernelRequiringPrivateSurface, pKernel->getProgram()->getBlockKernelManager()->getCount());
154+
155+
auto privateAllocation = pKernel->getProgram()->getBlockKernelManager()->getPrivateSurface(kernelRequiringPrivateSurface);
135156

136157
if (privateAllocation == nullptr) {
137158
privateAllocation = csr.getMemoryManager()->allocateGraphicsMemoryWithProperties(MockAllocationProperties{MemoryConstants::pageSize});
138-
blockKernelManager->pushPrivateSurface(privateAllocation, 0);
159+
blockKernelManager->pushPrivateSurface(privateAllocation, kernelRequiringPrivateSurface);
139160
}
140161

141162
auto uEvent = make_releaseable<UserEvent>(pContext);

0 commit comments

Comments
 (0)