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 adf0519ff20625930df637e3a224e00c117f0045..e8680bc2470d427459b0bf27dfe0fd53f4b72b33 100644 |
--- a/gpu/command_buffer/service/gles2_cmd_decoder.cc |
+++ b/gpu/command_buffer/service/gles2_cmd_decoder.cc |
@@ -4462,7 +4462,11 @@ void GLES2DecoderImpl::DoLinkProgram(GLuint program) { |
return; |
} |
- info->Link(); |
+ if (info->Link()) { |
+ if (info == current_program_.get()) { |
+ program_manager()->ClearUniforms(info); |
+ } |
+ } |
}; |
void GLES2DecoderImpl::DoTexParameterf( |
@@ -4776,10 +4780,10 @@ void GLES2DecoderImpl::DoUseProgram(GLuint program) { |
program_manager()->UnuseProgram(shader_manager(), current_program_); |
} |
current_program_ = info; |
+ glUseProgram(service_id); |
if (current_program_) { |
program_manager()->UseProgram(current_program_); |
} |
- glUseProgram(service_id); |
} |
GLenum GLES2DecoderImpl::GetGLError() { |