Remove PatchTokens from KernelInfo

Use KernelDescriptor instead of patchTokens stored in KernelInfo's
patchInfo.
Removed: SPatchMediaInterfaceDescriptorLoad, SPatchAllocateLocalSurface,
SPatchMediaVFEState(slot 0), SPatchMediaVFEState(slot 1),
SPatchInterfaceDescriptorData, SPatchSamplerStateArray,
SPatchBindingTableState, SPatchDataParameterBuffer,
SPatchDataParameterStream, SPatchThreadPayload,
SPatchKernelAttributesInfo, SPatchAllocateStatelessPrivateSurface,
SPatchAllocateSyncBuffer,
SPatchAllocateStatelessConstantMemorySurfaceWithInitialization,
SPatchAllocateStatelessGlobalMemorySurfaceWithInitialization,
SPatchAllocateSystemThreadSurface.

Related-To: NEO-4729
Signed-off-by: Krystian Chmielewski <krystian.chmielewski@intel.com>
This commit is contained in:
Krystian Chmielewski
2021-03-04 10:14:23 +01:00
committed by Compute-Runtime-Automation
parent 03631ce22b
commit 41f3bd00ff
64 changed files with 790 additions and 1015 deletions

View File

@@ -1341,7 +1341,6 @@ HWTEST_F(PatchTokenTests, givenKernelRequiringConstantAllocationWhenMakeResident
auto pKernelInfo = pProgram->getKernelInfo("test", rootDeviceIndex);
EXPECT_NE(nullptr, pKernelInfo->patchInfo.pAllocateStatelessConstantMemorySurfaceWithInitialization);
ASSERT_NE(nullptr, pProgram->getConstantSurface(pClDevice->getRootDeviceIndex()));
uint32_t expected_values[] = {0xabcd5432u, 0xaabb5533u};
@@ -1377,7 +1376,7 @@ HWTEST_F(PatchTokenTests, givenKernelRequiringConstantAllocationWhenMakeResident
auto crossThreadData = pKernel->getCrossThreadData(rootDeviceIndex);
uint32_t *constBuffGpuAddr = reinterpret_cast<uint32_t *>(pProgram->getConstantSurface(pContext->getDevice(0)->getRootDeviceIndex())->getGpuAddressToPatch());
uintptr_t *pDst = reinterpret_cast<uintptr_t *>(crossThreadData + pKernelInfo->patchInfo.pAllocateStatelessConstantMemorySurfaceWithInitialization->DataParamOffset);
uintptr_t *pDst = reinterpret_cast<uintptr_t *>(crossThreadData + pKernelInfo->kernelDescriptor.payloadMappings.implicitArgs.globalConstantsSurfaceAddress.stateless);
EXPECT_EQ(*pDst, reinterpret_cast<uintptr_t>(constBuffGpuAddr));
@@ -1406,7 +1405,6 @@ TEST_F(PatchTokenTests, WhenBuildingProgramThenGwsIsSet) {
auto pKernelInfo = pProgram->getKernelInfo("test", rootDeviceIndex);
ASSERT_NE(nullptr, pKernelInfo->patchInfo.dataParameterStream);
ASSERT_NE(static_cast<uint32_t>(-1), pKernelInfo->workloadInfo.globalWorkSizeOffsets[0]);
ASSERT_NE(static_cast<uint32_t>(-1), pKernelInfo->workloadInfo.globalWorkSizeOffsets[1]);
ASSERT_NE(static_cast<uint32_t>(-1), pKernelInfo->workloadInfo.globalWorkSizeOffsets[2]);
@@ -1425,14 +1423,12 @@ TEST_F(PatchTokenTests, WhenBuildingProgramThenLwsIsSet) {
auto pKernelInfo = pProgram->getKernelInfo("test", rootDeviceIndex);
ASSERT_NE(nullptr, pKernelInfo->patchInfo.dataParameterStream);
ASSERT_NE(static_cast<uint32_t>(-1), pKernelInfo->workloadInfo.localWorkSizeOffsets[0]);
ASSERT_NE(static_cast<uint32_t>(-1), pKernelInfo->workloadInfo.localWorkSizeOffsets[1]);
ASSERT_NE(static_cast<uint32_t>(-1), pKernelInfo->workloadInfo.localWorkSizeOffsets[2]);
pKernelInfo = pProgram->getKernelInfo("test_get_local_size", rootDeviceIndex);
ASSERT_NE(nullptr, pKernelInfo->patchInfo.dataParameterStream);
ASSERT_NE(static_cast<uint32_t>(-1), pKernelInfo->workloadInfo.localWorkSizeOffsets[0]);
ASSERT_NE(static_cast<uint32_t>(-1), pKernelInfo->workloadInfo.localWorkSizeOffsets[1]);
ASSERT_NE(static_cast<uint32_t>(-1), pKernelInfo->workloadInfo.localWorkSizeOffsets[2]);
@@ -2072,14 +2068,14 @@ TEST_F(ProgramTests, GivenZeroPrivateSizeInBlockWhenAllocateBlockProvateSurfaces
KernelInfo *infoBlock = new KernelInfo;
SPatchAllocateStatelessPrivateSurface *privateSurfaceBlock = new SPatchAllocateStatelessPrivateSurface;
privateSurfaceBlock->DataParamOffset = crossThreadOffsetBlock;
privateSurfaceBlock->DataParamSize = 8;
privateSurfaceBlock->Size = 8;
privateSurfaceBlock->SurfaceStateHeapOffset = 0;
privateSurfaceBlock->Token = 0;
privateSurfaceBlock->PerThreadPrivateMemorySize = 0;
infoBlock->patchInfo.pAllocateStatelessPrivateSurface = privateSurfaceBlock;
SPatchAllocateStatelessPrivateSurface privateSurfaceBlock = {};
privateSurfaceBlock.DataParamOffset = crossThreadOffsetBlock;
privateSurfaceBlock.DataParamSize = 8;
privateSurfaceBlock.Size = 8;
privateSurfaceBlock.SurfaceStateHeapOffset = 0;
privateSurfaceBlock.Token = 0;
privateSurfaceBlock.PerThreadPrivateMemorySize = 0;
populateKernelDescriptor(infoBlock->kernelDescriptor, privateSurfaceBlock);
program->blockKernelManager->addBlockKernelInfo(infoBlock);
@@ -2087,7 +2083,6 @@ TEST_F(ProgramTests, GivenZeroPrivateSizeInBlockWhenAllocateBlockProvateSurfaces
EXPECT_EQ(nullptr, program->getBlockKernelManager()->getPrivateSurface(0));
delete privateSurfaceBlock;
delete program;
}
@@ -2098,14 +2093,14 @@ TEST_F(ProgramTests, GivenNonZeroPrivateSizeInBlockWhenAllocateBlockProvateSurfa
KernelInfo *infoBlock = new KernelInfo;
SPatchAllocateStatelessPrivateSurface *privateSurfaceBlock = new SPatchAllocateStatelessPrivateSurface;
privateSurfaceBlock->DataParamOffset = crossThreadOffsetBlock;
privateSurfaceBlock->DataParamSize = 8;
privateSurfaceBlock->Size = 8;
privateSurfaceBlock->SurfaceStateHeapOffset = 0;
privateSurfaceBlock->Token = 0;
privateSurfaceBlock->PerThreadPrivateMemorySize = 1000;
infoBlock->patchInfo.pAllocateStatelessPrivateSurface = privateSurfaceBlock;
SPatchAllocateStatelessPrivateSurface privateSurfaceBlock = {};
privateSurfaceBlock.DataParamOffset = crossThreadOffsetBlock;
privateSurfaceBlock.DataParamSize = 8;
privateSurfaceBlock.Size = 8;
privateSurfaceBlock.SurfaceStateHeapOffset = 0;
privateSurfaceBlock.Token = 0;
privateSurfaceBlock.PerThreadPrivateMemorySize = 1000;
populateKernelDescriptor(infoBlock->kernelDescriptor, privateSurfaceBlock);
program->blockKernelManager->addBlockKernelInfo(infoBlock);
@@ -2113,7 +2108,6 @@ TEST_F(ProgramTests, GivenNonZeroPrivateSizeInBlockWhenAllocateBlockProvateSurfa
EXPECT_NE(nullptr, program->getBlockKernelManager()->getPrivateSurface(0));
delete privateSurfaceBlock;
delete program;
}
@@ -2124,14 +2118,14 @@ TEST_F(ProgramTests, GivenNonZeroPrivateSizeInBlockWhenAllocateBlockProvateSurfa
KernelInfo *infoBlock = new KernelInfo;
SPatchAllocateStatelessPrivateSurface *privateSurfaceBlock = new SPatchAllocateStatelessPrivateSurface;
privateSurfaceBlock->DataParamOffset = crossThreadOffsetBlock;
privateSurfaceBlock->DataParamSize = 8;
privateSurfaceBlock->Size = 8;
privateSurfaceBlock->SurfaceStateHeapOffset = 0;
privateSurfaceBlock->Token = 0;
privateSurfaceBlock->PerThreadPrivateMemorySize = 1000;
infoBlock->patchInfo.pAllocateStatelessPrivateSurface = privateSurfaceBlock;
SPatchAllocateStatelessPrivateSurface privateSurfaceBlock = {};
privateSurfaceBlock.DataParamOffset = crossThreadOffsetBlock;
privateSurfaceBlock.DataParamSize = 8;
privateSurfaceBlock.Size = 8;
privateSurfaceBlock.SurfaceStateHeapOffset = 0;
privateSurfaceBlock.Token = 0;
privateSurfaceBlock.PerThreadPrivateMemorySize = 1000;
populateKernelDescriptor(infoBlock->kernelDescriptor, privateSurfaceBlock);
program->blockKernelManager->addBlockKernelInfo(infoBlock);
@@ -2147,7 +2141,6 @@ TEST_F(ProgramTests, GivenNonZeroPrivateSizeInBlockWhenAllocateBlockProvateSurfa
EXPECT_EQ(privateSurface, privateSurface2);
delete privateSurfaceBlock;
delete program;
}
@@ -2158,14 +2151,14 @@ TEST_F(ProgramTests, givenProgramWithBlockKernelsWhenfreeBlockResourcesisCalledT
KernelInfo *infoBlock = new KernelInfo;
SPatchAllocateStatelessPrivateSurface *privateSurfaceBlock = new SPatchAllocateStatelessPrivateSurface;
privateSurfaceBlock->DataParamOffset = crossThreadOffsetBlock;
privateSurfaceBlock->DataParamSize = 8;
privateSurfaceBlock->Size = 8;
privateSurfaceBlock->SurfaceStateHeapOffset = 0;
privateSurfaceBlock->Token = 0;
privateSurfaceBlock->PerThreadPrivateMemorySize = 1000;
infoBlock->patchInfo.pAllocateStatelessPrivateSurface = privateSurfaceBlock;
SPatchAllocateStatelessPrivateSurface privateSurfaceBlock = {};
privateSurfaceBlock.DataParamOffset = crossThreadOffsetBlock;
privateSurfaceBlock.DataParamSize = 8;
privateSurfaceBlock.Size = 8;
privateSurfaceBlock.SurfaceStateHeapOffset = 0;
privateSurfaceBlock.Token = 0;
privateSurfaceBlock.PerThreadPrivateMemorySize = 1000;
populateKernelDescriptor(infoBlock->kernelDescriptor, privateSurfaceBlock);
program->blockKernelManager->addBlockKernelInfo(infoBlock);
@@ -2176,7 +2169,6 @@ TEST_F(ProgramTests, givenProgramWithBlockKernelsWhenfreeBlockResourcesisCalledT
program->freeBlockResources();
delete privateSurfaceBlock;
delete program;
}
@@ -2964,17 +2956,16 @@ using ProgramMultiRootDeviceTests = MultiRootDeviceFixture;
TEST_F(ProgramMultiRootDeviceTests, WhenPrivateSurfaceIsCreatedThenItHasCorrectRootDeviceIndex) {
auto program = std::make_unique<MockProgram>(context.get(), false, toClDeviceVector(*device1));
auto privateSurfaceBlock = std::make_unique<SPatchAllocateStatelessPrivateSurface>();
privateSurfaceBlock->DataParamOffset = 0;
privateSurfaceBlock->DataParamSize = 8;
privateSurfaceBlock->Size = 8;
privateSurfaceBlock->SurfaceStateHeapOffset = 0;
privateSurfaceBlock->Token = 0;
privateSurfaceBlock->PerThreadPrivateMemorySize = 1000;
auto infoBlock = std::make_unique<KernelInfo>();
infoBlock->patchInfo.pAllocateStatelessPrivateSurface = privateSurfaceBlock.get();
SPatchAllocateStatelessPrivateSurface privateSurfaceBlock = {};
privateSurfaceBlock.DataParamOffset = 0;
privateSurfaceBlock.DataParamSize = 8;
privateSurfaceBlock.Size = 8;
privateSurfaceBlock.SurfaceStateHeapOffset = 0;
privateSurfaceBlock.Token = 0;
privateSurfaceBlock.PerThreadPrivateMemorySize = 1000;
populateKernelDescriptor(infoBlock->kernelDescriptor, privateSurfaceBlock);
program->blockKernelManager->addBlockKernelInfo(infoBlock.release());
program->allocateBlockPrivateSurfaces(*device1);