Force stateless compilation when device supports shared system memory

Change-Id: I8e11ef82baf010a9a400bc9d733b8ec37a9fbb21
Signed-off-by: Mrozek, Michal <michal.mrozek@intel.com>
This commit is contained in:
Mrozek, Michal
2019-09-05 08:59:33 +02:00
committed by sys_ocldev
parent 849ff8c6d1
commit 46b3012eb5
2 changed files with 9 additions and 3 deletions

View File

@ -74,7 +74,8 @@ Program::Program(ExecutionEnvironment &executionEnvironment, Context *context, b
internalOptions += "-m32 ";
}
if (DebugManager.flags.DisableStatelessToStatefulOptimization.get()) {
if (pDevice->areSharedSystemAllocationsAllowed() ||
DebugManager.flags.DisableStatelessToStatefulOptimization.get()) {
internalOptions += "-cl-intel-greater-than-4GB-buffer-required ";
}
kernelDebugEnabled = pDevice->isSourceLevelDebuggerActive();

View File

@ -1745,7 +1745,7 @@ TEST_F(ProgramTests, ProgramCtorSetsProperInternalOptionsForced20) {
TEST_F(ProgramTests, ProgramCtorSetsProperInternalOptionsWhenStatelessToStatefulIsDisabled) {
cl_int retVal = CL_DEVICE_NOT_FOUND;
auto defaultSetting = DebugManager.flags.DisableStatelessToStatefulOptimization.get();
DebugManagerStateRestore restorer;
DebugManager.flags.DisableStatelessToStatefulOptimization.set(true);
if (pDevice) {
@ -1768,7 +1768,12 @@ TEST_F(ProgramTests, ProgramCtorSetsProperInternalOptionsWhenStatelessToStateful
} else {
EXPECT_NE(CL_DEVICE_NOT_FOUND, retVal);
}
DebugManager.flags.DisableStatelessToStatefulOptimization.set(defaultSetting);
}
TEST_F(ProgramTests, givenDeviceThatSupportsSharedSystemMemoryAllocationWhenProgramIsCompiledThenItForcesStatelessCompilation) {
pDevice->deviceInfo.sharedSystemMemCapabilities = CL_UNIFIED_SHARED_MEMORY_ACCESS_INTEL | CL_UNIFIED_SHARED_MEMORY_ATOMIC_ACCESS_INTEL | CL_UNIFIED_SHARED_MEMORY_CONCURRENT_ACCESS_INTEL | CL_UNIFIED_SHARED_MEMORY_CONCURRENT_ATOMIC_ACCESS_INTEL;
MockProgram program(*pDevice->getExecutionEnvironment(), pContext, false);
EXPECT_THAT(program.getInternalOptions(), testing::HasSubstr(std::string("-cl-intel-greater-than-4GB-buffer-required")));
}
TEST_F(ProgramTests, ProgramCtorSetsProperInternalOptionsWhenForcing32BitAddressess) {