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 4a8e7520c5e9e8f9f2dee820a9e185ec01bbedb7..cc864ab62b8bd4961fea7b9f927c3c9dae315671 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() { |