| Index: gpu/command_buffer/service/shader_manager.cc
|
| diff --git a/gpu/command_buffer/service/shader_manager.cc b/gpu/command_buffer/service/shader_manager.cc
|
| index 37cc4f3b79d23738fc308d850275fc93203a0264..342a47697ed17592a10578f4ff12d231e516ad98 100644
|
| --- a/gpu/command_buffer/service/shader_manager.cc
|
| +++ b/gpu/command_buffer/service/shader_manager.cc
|
| @@ -86,23 +86,10 @@ void Shader::DoCompile() {
|
|
|
| glShaderSource(service_id_, 1, &source_for_driver, NULL);
|
| glCompileShader(service_id_);
|
| +
|
| if (source_type_ == kANGLE) {
|
| - GLint max_len = 0;
|
| - glGetShaderiv(service_id_,
|
| - GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE,
|
| - &max_len);
|
| - source_for_driver = "\0";
|
| - translated_source_.resize(max_len);
|
| - if (max_len) {
|
| - GLint len = 0;
|
| - glGetTranslatedShaderSourceANGLE(
|
| - service_id_, translated_source_.size(),
|
| - &len, &translated_source_.at(0));
|
| - DCHECK(max_len == 0 || len < max_len);
|
| - DCHECK(len == 0 || translated_source_[len] == '\0');
|
| - translated_source_.resize(len);
|
| - source_for_driver = translated_source_.c_str();
|
| - }
|
| + RefreshTranslatedShaderSource();
|
| + source_for_driver = translated_source_.c_str();
|
| }
|
|
|
| GLint status = GL_FALSE;
|
| @@ -138,6 +125,23 @@ void Shader::DoCompile() {
|
| }
|
| }
|
|
|
| +void Shader::RefreshTranslatedShaderSource() {
|
| + if (source_type_ == kANGLE) {
|
| + GLint max_len = 0;
|
| + glGetShaderiv(service_id_, GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE,
|
| + &max_len);
|
| + translated_source_.resize(max_len);
|
| + if (max_len) {
|
| + GLint len = 0;
|
| + glGetTranslatedShaderSourceANGLE(service_id_, translated_source_.size(),
|
| + &len, &translated_source_.at(0));
|
| + DCHECK(max_len == 0 || len < max_len);
|
| + DCHECK(len == 0 || translated_source_[len] == '\0');
|
| + translated_source_.resize(len);
|
| + }
|
| + }
|
| +}
|
| +
|
| void Shader::IncUseCount() {
|
| ++use_count_;
|
| }
|
|
|