Index: gpu/command_buffer/service/gles2_cmd_decoder.cc |
=================================================================== |
--- gpu/command_buffer/service/gles2_cmd_decoder.cc (revision 250145) |
+++ gpu/command_buffer/service/gles2_cmd_decoder.cc (working copy) |
@@ -5442,13 +5442,12 @@ |
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_first_program_use) |
+ program_manager()->ClearUniforms(program); |
} |
} |
}; |
@@ -5914,6 +5913,8 @@ |
glUseProgram(service_id); |
if (state_.current_program.get()) { |
program_manager()->UseProgram(state_.current_program.get()); |
+ if (workarounds().clear_uniforms_before_first_program_use) |
+ program_manager()->ClearUniforms(program); |
} |
} |
@@ -6663,7 +6664,11 @@ |
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 ? |
+ ProgramManager::kANGLE : ProgramManager::kGL); |
}; |
void GLES2DecoderImpl::DoGetShaderiv( |