Add flag -fpreserve-vec3-type to internal options.

This flags informs compiler to not promote vec3 to vec4.

Change-Id: I98d04954ccf07c625c64831087adf1d5abd38bf5
This commit is contained in:
Mrozek, Michal
2018-01-31 11:45:14 +01:00
committed by sys_ocldev
parent 4aaa726758
commit 9f048c8ce7
2 changed files with 7 additions and 0 deletions

View File

@ -92,6 +92,8 @@ Program::Program(Context *context, bool isBuiltIn) : context(context), isBuiltIn
if (DebugManager.flags.EnableStatelessToStatefulBufferOffsetOpt.get()) { if (DebugManager.flags.EnableStatelessToStatefulBufferOffsetOpt.get()) {
internalOptions += "-cl-intel-has-buffer-offset-arg "; internalOptions += "-cl-intel-has-buffer-offset-arg ";
} }
internalOptions += "-fpreserve-vec3-type ";
} }
Program::~Program() { Program::~Program() {

View File

@ -1797,6 +1797,11 @@ TEST_F(ProgramTests, BuiltinProgramCreateSetsProperInternalOptionsWhenStatelessT
DebugManager.flags.DisableStatelessToStatefulOptimization.set(defaultSetting); DebugManager.flags.DisableStatelessToStatefulOptimization.set(defaultSetting);
} }
TEST_F(ProgramTests, givenProgramWhenItIsCompiledThenItAlwyasHavePreserveVec3TypeInternalOptionSet) {
std::unique_ptr<MockProgram> pProgram(Program::create<MockProgram>("", pContext, *pDevice, true, nullptr));
EXPECT_THAT(pProgram->getInternalOptions(), testing::HasSubstr(std::string("-fpreserve-vec3-type ")));
}
TEST_F(ProgramTests, BuiltinProgramCreateSetsProperInternalOptionsWhenForcing32BitAddressess) { TEST_F(ProgramTests, BuiltinProgramCreateSetsProperInternalOptionsWhenForcing32BitAddressess) {
cl_int retVal = CL_DEVICE_NOT_FOUND; cl_int retVal = CL_DEVICE_NOT_FOUND;
auto defaultSetting = DebugManager.flags.DisableStatelessToStatefulOptimization.get(); auto defaultSetting = DebugManager.flags.DisableStatelessToStatefulOptimization.get();