@@ -1763,6 +1763,42 @@ TEST_F(ProgramTests, ProgramCtorSetsProperInternalOptionsWhenStatelessToStateful
17631763 }
17641764}
17651765
1766+ TEST_F (ProgramTests, WhenCreatingProgramThenBindlessIsEnabledOnlyIfDebugFlagIsEnabled) {
1767+ using namespace testing ;
1768+ DebugManagerStateRestore restorer;
1769+
1770+ {
1771+ EXPECT_FALSE (DebugManager.flags .UseBindlessBuffers .get ());
1772+ EXPECT_FALSE (DebugManager.flags .UseBindlessImages .get ());
1773+ MockProgram programNoBindless (*pDevice->getExecutionEnvironment (), pContext, false );
1774+ EXPECT_THAT (programNoBindless.getInternalOptions (), Not (HasSubstr (std::string (" -cl-intel-use-bindless-buffers" ))));
1775+ EXPECT_THAT (programNoBindless.getInternalOptions (), Not (HasSubstr (std::string (" -cl-intel-use-bindless-images" ))));
1776+ }
1777+
1778+ {
1779+ DebugManager.flags .UseBindlessBuffers .set (true );
1780+ MockProgram programNoBindless (*pDevice->getExecutionEnvironment (), pContext, false );
1781+ EXPECT_THAT (programNoBindless.getInternalOptions (), HasSubstr (std::string (" -cl-intel-use-bindless-buffers " )));
1782+ EXPECT_THAT (programNoBindless.getInternalOptions (), Not (HasSubstr (std::string (" -cl-intel-use-bindless-images" ))));
1783+ }
1784+
1785+ {
1786+ DebugManager.flags .UseBindlessBuffers .set (false );
1787+ DebugManager.flags .UseBindlessImages .set (true );
1788+ MockProgram programNoBindless (*pDevice->getExecutionEnvironment (), pContext, false );
1789+ EXPECT_THAT (programNoBindless.getInternalOptions (), Not (HasSubstr (std::string (" -cl-intel-use-bindless-buffers" ))));
1790+ EXPECT_THAT (programNoBindless.getInternalOptions (), HasSubstr (std::string (" -cl-intel-use-bindless-images " )));
1791+ }
1792+
1793+ {
1794+ DebugManager.flags .UseBindlessBuffers .set (true );
1795+ DebugManager.flags .UseBindlessImages .set (true );
1796+ MockProgram programNoBindless (*pDevice->getExecutionEnvironment (), pContext, false );
1797+ EXPECT_THAT (programNoBindless.getInternalOptions (), HasSubstr (std::string (" -cl-intel-use-bindless-buffers " )));
1798+ EXPECT_THAT (programNoBindless.getInternalOptions (), HasSubstr (std::string (" -cl-intel-use-bindless-images " )));
1799+ }
1800+ }
1801+
17661802TEST_F (ProgramTests, givenDeviceThatSupportsSharedSystemMemoryAllocationWhenProgramIsCompiledThenItForcesStatelessCompilation) {
17671803 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;
17681804 MockProgram program (*pDevice->getExecutionEnvironment (), pContext, false );
0 commit comments