Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1136)

Unified Diff: gpu/command_buffer/service/shader_manager.cc

Issue 1463673004: gpu: Update translated shader source after link. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed zmo's feedback Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « gpu/command_buffer/service/shader_manager.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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_;
}
« no previous file with comments | « gpu/command_buffer/service/shader_manager.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698