Index: gpu/command_buffer/service/gles2_cmd_decoder.cc |
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder.cc b/gpu/command_buffer/service/gles2_cmd_decoder.cc |
index 050010f2933319dedd454a64c2f5b8bedb554c32..8bad71df3f6288ec2f53804dba13147d0f0a04d0 100644 |
--- a/gpu/command_buffer/service/gles2_cmd_decoder.cc |
+++ b/gpu/command_buffer/service/gles2_cmd_decoder.cc |
@@ -2509,15 +2509,16 @@ bool GLES2DecoderImpl::InitializeShaderTranslator() { |
ShaderTranslatorInterface::GlslImplementationType implementation_type = |
gfx::GetGLImplementation() == gfx::kGLImplementationEGLGLES2 ? |
ShaderTranslatorInterface::kGlslES : ShaderTranslatorInterface::kGlsl; |
- ShaderTranslatorInterface::GlslBuiltInFunctionBehavior function_behavior = |
- workarounds().needs_glsl_built_in_function_emulation ? |
- ShaderTranslatorInterface::kGlslBuiltInFunctionEmulated : |
- ShaderTranslatorInterface::kGlslBuiltInFunctionOriginal; |
+ int driver_bug_workarounds = 0; |
+ if (workarounds().needs_glsl_built_in_function_emulation) |
+ driver_bug_workarounds |= SH_EMULATE_BUILT_IN_FUNCTIONS; |
+ if (workarounds().init_gl_position_in_vertex_shader) |
+ driver_bug_workarounds |= SH_INIT_GL_POSITION; |
ShaderTranslatorCache* cache = ShaderTranslatorCache::GetInstance(); |
vertex_translator_ = cache->GetTranslator( |
SH_VERTEX_SHADER, shader_spec, &resources, |
- implementation_type, function_behavior); |
+ implementation_type, driver_bug_workarounds); |
if (!vertex_translator_.get()) { |
LOG(ERROR) << "Could not initialize vertex shader translator."; |
Destroy(true); |
@@ -2526,7 +2527,7 @@ bool GLES2DecoderImpl::InitializeShaderTranslator() { |
fragment_translator_ = cache->GetTranslator( |
SH_FRAGMENT_SHADER, shader_spec, &resources, |
- implementation_type, function_behavior); |
+ implementation_type, driver_bug_workarounds); |
if (!fragment_translator_.get()) { |
LOG(ERROR) << "Could not initialize fragment shader translator."; |
Destroy(true); |