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 f913c4883d5ebdb892dd908c2d97842b026ba4fc..b485f2ed3ae406261a97b6d99ebc155de7cf291a 100644 |
--- a/gpu/command_buffer/service/gles2_cmd_decoder.cc |
+++ b/gpu/command_buffer/service/gles2_cmd_decoder.cc |
@@ -5417,13 +5417,12 @@ void GLES2DecoderImpl::DoLinkProgram(GLuint program_id) { |
if (program->Link(shader_manager(), |
vertex_translator, |
fragment_translator, |
- feature_info_.get(), |
shader_cache_callback_)) { |
if (program == state_.current_program.get()) { |
- if (workarounds().use_current_program_after_successful_link) { |
+ if (workarounds().use_current_program_after_successful_link) |
glUseProgram(program->service_id()); |
- } |
- program_manager()->ClearUniforms(program); |
+ if (workarounds().clear_uniforms_before_program_use) |
+ program_manager()->ClearUniforms(program); |
} |
} |
}; |
@@ -5889,6 +5888,8 @@ void GLES2DecoderImpl::DoUseProgram(GLuint program_id) { |
glUseProgram(service_id); |
if (state_.current_program.get()) { |
program_manager()->UseProgram(state_.current_program.get()); |
+ if (workarounds().clear_uniforms_before_program_use) |
+ program_manager()->ClearUniforms(program); |
} |
} |
@@ -6616,7 +6617,10 @@ void GLES2DecoderImpl::DoCompileShader(GLuint client_id) { |
vertex_translator_.get() : fragment_translator_.get(); |
} |
- program_manager()->DoCompileShader(shader, translator, feature_info_.get()); |
+ program_manager()->DoCompileShader( |
+ shader, |
+ translator, |
+ feature_info_->feature_flags().angle_translated_shader_source); |
}; |
void GLES2DecoderImpl::DoGetShaderiv( |