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

Side by Side Diff: gpu/command_buffer/service/shader_manager.cc

Issue 951673002: Revert "Pull chromium at 2c3ffb2355a27c32f45e508ef861416b820c823b" (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 10 months 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "gpu/command_buffer/service/shader_manager.h" 5 #include "gpu/command_buffer/service/shader_manager.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/strings/string_util.h" 10 #include "base/strings/string_util.h"
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
74 source_for_driver = translated_source_.c_str(); 74 source_for_driver = translated_source_.c_str();
75 } 75 }
76 76
77 glShaderSource(service_id_, 1, &source_for_driver, NULL); 77 glShaderSource(service_id_, 1, &source_for_driver, NULL);
78 glCompileShader(service_id_); 78 glCompileShader(service_id_);
79 if (source_type_ == kANGLE) { 79 if (source_type_ == kANGLE) {
80 GLint max_len = 0; 80 GLint max_len = 0;
81 glGetShaderiv(service_id_, 81 glGetShaderiv(service_id_,
82 GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE, 82 GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE,
83 &max_len); 83 &max_len);
84 source_for_driver = "\0";
85 translated_source_.resize(max_len); 84 translated_source_.resize(max_len);
86 if (max_len) { 85 GLint len = 0;
87 GLint len = 0; 86 glGetTranslatedShaderSourceANGLE(
88 glGetTranslatedShaderSourceANGLE( 87 service_id_, translated_source_.size(),
89 service_id_, translated_source_.size(), 88 &len, &translated_source_.at(0));
90 &len, &translated_source_.at(0)); 89 DCHECK(max_len == 0 || len < max_len);
91 DCHECK(max_len == 0 || len < max_len); 90 DCHECK(len == 0 || translated_source_[len] == '\0');
92 DCHECK(len == 0 || translated_source_[len] == '\0'); 91 translated_source_.resize(len);
93 translated_source_.resize(len); 92 source_for_driver = translated_source_.c_str();
94 source_for_driver = translated_source_.c_str();
95 }
96 } 93 }
97 94
98 GLint status = GL_FALSE; 95 GLint status = GL_FALSE;
99 glGetShaderiv(service_id_, GL_COMPILE_STATUS, &status); 96 glGetShaderiv(service_id_, GL_COMPILE_STATUS, &status);
100 if (status == GL_TRUE) { 97 if (status == GL_TRUE) {
101 valid_ = true; 98 valid_ = true;
102 } else { 99 } else {
103 valid_ = false;
104
105 // We cannot reach here if we are using the shader translator. 100 // We cannot reach here if we are using the shader translator.
106 // All invalid shaders must be rejected by the translator. 101 // All invalid shaders must be rejected by the translator.
107 // All translated shaders must compile. 102 // All translated shaders must compile.
108 GLint max_len = 0; 103 GLint max_len = 0;
109 glGetShaderiv(service_id_, GL_INFO_LOG_LENGTH, &max_len); 104 glGetShaderiv(service_id_, GL_INFO_LOG_LENGTH, &max_len);
110 log_info_.resize(max_len); 105 log_info_.resize(max_len);
111 if (max_len) { 106 GLint len = 0;
112 GLint len = 0; 107 glGetShaderInfoLog(service_id_, log_info_.size(), &len, &log_info_.at(0));
113 glGetShaderInfoLog(service_id_, log_info_.size(), &len, &log_info_.at(0)); 108 DCHECK(max_len == 0 || len < max_len);
114 DCHECK(max_len == 0 || len < max_len); 109 DCHECK(len == 0 || log_info_[len] == '\0');
115 DCHECK(len == 0 || log_info_[len] == '\0'); 110 valid_ = false;
116 log_info_.resize(len); 111 log_info_.resize(len);
117 }
118 LOG_IF(ERROR, translator) 112 LOG_IF(ERROR, translator)
119 << "Shader translator allowed/produced an invalid shader " 113 << "Shader translator allowed/produced an invalid shader "
120 << "unless the driver is buggy:" 114 << "unless the driver is buggy:"
121 << "\n--original-shader--\n" << last_compiled_source_ 115 << "\n--original-shader--\n" << last_compiled_source_
122 << "\n--translated-shader--\n" << source_for_driver 116 << "\n--translated-shader--\n" << source_for_driver
123 << "\n--info-log--\n" << log_info_; 117 << "\n--info-log--\n" << log_info_;
124 } 118 }
125 } 119 }
126 120
127 void Shader::IncUseCount() { 121 void Shader::IncUseCount() {
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after
264 DCHECK(shader); 258 DCHECK(shader);
265 DCHECK(IsOwned(shader)); 259 DCHECK(IsOwned(shader));
266 shader->DecUseCount(); 260 shader->DecUseCount();
267 RemoveShader(shader); 261 RemoveShader(shader);
268 } 262 }
269 263
270 } // namespace gles2 264 } // namespace gles2
271 } // namespace gpu 265 } // namespace gpu
272 266
273 267
OLDNEW
« no previous file with comments | « gpu/command_buffer/service/mailbox_manager_unittest.cc ('k') | gpu/command_buffer/service/texture_definition.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698