Set kernel information about stateless accesses to host memory

Related-To: NEO-5107

Signed-off-by: Slawomir Milczarek <slawomir.milczarek@intel.com>
This commit is contained in:
Slawomir Milczarek 2020-12-01 14:37:51 +00:00 committed by Compute-Runtime-Automation
parent 077ae2726e
commit b98af90896
2 changed files with 7 additions and 0 deletions

View File

@ -188,6 +188,9 @@ void KernelInfo::storePatchToken(const SPatchExecutionEnvironment *execEnv) {
if (execEnv->CompiledForGreaterThan4GBBuffers == false) {
this->requiresSshForBuffers = true;
}
if (execEnv->IndirectStatelessCount > 0) {
this->hasStatelessAccessToHostMemory = true;
}
}
void KernelInfo::storeArgInfo(uint32_t argNum, ArgTypeTraits metadata, std::unique_ptr<ArgTypeMetadataExtended> metadataExtended) {

View File

@ -315,6 +315,7 @@ TEST_F(KernelDataTest, GivenExecutionEnvironmentNoReqdWorkGroupSizeWhenBuildingT
executionEnvironment.IsFinalizer = false;
executionEnvironment.SubgroupIndependentForwardProgressRequired = false;
executionEnvironment.CompiledForGreaterThan4GBBuffers = false;
executionEnvironment.IndirectStatelessCount = 0;
pPatchList = &executionEnvironment;
patchListSize = executionEnvironment.Size;
@ -325,6 +326,7 @@ TEST_F(KernelDataTest, GivenExecutionEnvironmentNoReqdWorkGroupSizeWhenBuildingT
EXPECT_EQ_VAL(0, pKernelInfo->kernelDescriptor.kernelAttributes.requiredWorkgroupSize[0]);
EXPECT_EQ_VAL(0, pKernelInfo->kernelDescriptor.kernelAttributes.requiredWorkgroupSize[1]);
EXPECT_EQ_VAL(0, pKernelInfo->kernelDescriptor.kernelAttributes.requiredWorkgroupSize[2]);
EXPECT_FALSE(pKernelInfo->hasStatelessAccessToHostMemory);
}
TEST_F(KernelDataTest, GivenExecutionEnvironmentWhenBuildingThenProgramIsCorrect) {
@ -350,6 +352,7 @@ TEST_F(KernelDataTest, GivenExecutionEnvironmentWhenBuildingThenProgramIsCorrect
executionEnvironment.IsFinalizer = false;
executionEnvironment.SubgroupIndependentForwardProgressRequired = false;
executionEnvironment.CompiledForGreaterThan4GBBuffers = false;
executionEnvironment.IndirectStatelessCount = 1;
pPatchList = &executionEnvironment;
patchListSize = executionEnvironment.Size;
@ -361,6 +364,7 @@ TEST_F(KernelDataTest, GivenExecutionEnvironmentWhenBuildingThenProgramIsCorrect
EXPECT_EQ(16u, pKernelInfo->kernelDescriptor.kernelAttributes.requiredWorkgroupSize[1]);
EXPECT_EQ(8u, pKernelInfo->kernelDescriptor.kernelAttributes.requiredWorkgroupSize[2]);
EXPECT_TRUE(pKernelInfo->requiresSshForBuffers);
EXPECT_TRUE(pKernelInfo->hasStatelessAccessToHostMemory);
}
TEST_F(KernelDataTest, GivenExecutionEnvironmentCompiledForGreaterThan4gbBuffersWhenBuildingThenProgramIsCorrect) {