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

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

Issue 1126243002: Check for shader version mismatch (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 7 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 12 matching lines...) Expand all
23 } 23 }
24 24
25 } // namespace anonymous 25 } // namespace anonymous
26 26
27 Shader::Shader(GLuint service_id, GLenum shader_type) 27 Shader::Shader(GLuint service_id, GLenum shader_type)
28 : use_count_(0), 28 : use_count_(0),
29 shader_state_(kShaderStateWaiting), 29 shader_state_(kShaderStateWaiting),
30 marked_for_deletion_(false), 30 marked_for_deletion_(false),
31 service_id_(service_id), 31 service_id_(service_id),
32 shader_type_(shader_type), 32 shader_type_(shader_type),
33 shader_version_(kUndefinedShaderVersion),
33 source_type_(kANGLE), 34 source_type_(kANGLE),
34 valid_(false) { 35 valid_(false) {
35 } 36 }
36 37
37 Shader::~Shader() { 38 Shader::~Shader() {
38 } 39 }
39 40
40 void Shader::Destroy() { 41 void Shader::Destroy() {
41 if (service_id_) { 42 if (service_id_) {
42 DeleteServiceID(); 43 DeleteServiceID();
(...skipping 21 matching lines...) Expand all
64 valid_ = false; 65 valid_ = false;
65 66
66 // Translate GL ES 2.0 shader to Desktop GL shader and pass that to 67 // Translate GL ES 2.0 shader to Desktop GL shader and pass that to
67 // glShaderSource and then glCompileShader. 68 // glShaderSource and then glCompileShader.
68 const char* source_for_driver = last_compiled_source_.c_str(); 69 const char* source_for_driver = last_compiled_source_.c_str();
69 ShaderTranslatorInterface* translator = translator_.get(); 70 ShaderTranslatorInterface* translator = translator_.get();
70 if (translator) { 71 if (translator) {
71 bool success = translator->Translate(last_compiled_source_, 72 bool success = translator->Translate(last_compiled_source_,
72 &log_info_, 73 &log_info_,
73 &translated_source_, 74 &translated_source_,
75 &shader_version_,
74 &attrib_map_, 76 &attrib_map_,
75 &uniform_map_, 77 &uniform_map_,
76 &varying_map_, 78 &varying_map_,
77 &name_map_); 79 &name_map_);
78 if (!success) { 80 if (!success) {
79 return; 81 return;
80 } 82 }
81 source_for_driver = translated_source_.c_str(); 83 source_for_driver = translated_source_.c_str();
82 } 84 }
83 85
(...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after
284 286
285 void ShaderManager::UnuseShader(Shader* shader) { 287 void ShaderManager::UnuseShader(Shader* shader) {
286 DCHECK(shader); 288 DCHECK(shader);
287 DCHECK(IsOwned(shader)); 289 DCHECK(IsOwned(shader));
288 shader->DecUseCount(); 290 shader->DecUseCount();
289 RemoveShader(shader); 291 RemoveShader(shader);
290 } 292 }
291 293
292 } // namespace gles2 294 } // namespace gles2
293 } // namespace gpu 295 } // namespace gpu
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698