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

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

Issue 148153025: Merge 249460 "Hookup clear_uniforms_before_first_program_use wor..." (Closed) Base URL: svn://svn.chromium.org/chrome/branches/1750/src/
Patch Set: Created 6 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/gles2_cmd_decoder.h" 5 #include "gpu/command_buffer/service/gles2_cmd_decoder.h"
6 6
7 #include <stdio.h> 7 #include <stdio.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <list> 10 #include <list>
(...skipping 5424 matching lines...) Expand 10 before | Expand all | Expand 10 after
5435 LogClientServiceForInfo(program, program_id, "glLinkProgram"); 5435 LogClientServiceForInfo(program, program_id, "glLinkProgram");
5436 ShaderTranslator* vertex_translator = NULL; 5436 ShaderTranslator* vertex_translator = NULL;
5437 ShaderTranslator* fragment_translator = NULL; 5437 ShaderTranslator* fragment_translator = NULL;
5438 if (use_shader_translator_) { 5438 if (use_shader_translator_) {
5439 vertex_translator = vertex_translator_.get(); 5439 vertex_translator = vertex_translator_.get();
5440 fragment_translator = fragment_translator_.get(); 5440 fragment_translator = fragment_translator_.get();
5441 } 5441 }
5442 if (program->Link(shader_manager(), 5442 if (program->Link(shader_manager(),
5443 vertex_translator, 5443 vertex_translator,
5444 fragment_translator, 5444 fragment_translator,
5445 feature_info_.get(),
5446 shader_cache_callback_)) { 5445 shader_cache_callback_)) {
5447 if (program == state_.current_program.get()) { 5446 if (program == state_.current_program.get()) {
5448 if (workarounds().use_current_program_after_successful_link) { 5447 if (workarounds().use_current_program_after_successful_link)
5449 glUseProgram(program->service_id()); 5448 glUseProgram(program->service_id());
5450 } 5449 if (workarounds().clear_uniforms_before_first_program_use)
5451 program_manager()->ClearUniforms(program); 5450 program_manager()->ClearUniforms(program);
5452 } 5451 }
5453 } 5452 }
5454 }; 5453 };
5455 5454
5456 void GLES2DecoderImpl::DoTexParameterf( 5455 void GLES2DecoderImpl::DoTexParameterf(
5457 GLenum target, GLenum pname, GLfloat param) { 5456 GLenum target, GLenum pname, GLfloat param) {
5458 TextureRef* texture = texture_manager()->GetTextureInfoForTarget( 5457 TextureRef* texture = texture_manager()->GetTextureInfoForTarget(
5459 &state_, target); 5458 &state_, target);
5460 if (!texture) { 5459 if (!texture) {
5461 LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glTexParameterf", "unknown texture"); 5460 LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glTexParameterf", "unknown texture");
(...skipping 445 matching lines...) Expand 10 before | Expand all | Expand 10 after
5907 } 5906 }
5908 if (state_.current_program.get()) { 5907 if (state_.current_program.get()) {
5909 program_manager()->UnuseProgram(shader_manager(), 5908 program_manager()->UnuseProgram(shader_manager(),
5910 state_.current_program.get()); 5909 state_.current_program.get());
5911 } 5910 }
5912 state_.current_program = program; 5911 state_.current_program = program;
5913 LogClientServiceMapping("glUseProgram", program_id, service_id); 5912 LogClientServiceMapping("glUseProgram", program_id, service_id);
5914 glUseProgram(service_id); 5913 glUseProgram(service_id);
5915 if (state_.current_program.get()) { 5914 if (state_.current_program.get()) {
5916 program_manager()->UseProgram(state_.current_program.get()); 5915 program_manager()->UseProgram(state_.current_program.get());
5916 if (workarounds().clear_uniforms_before_first_program_use)
5917 program_manager()->ClearUniforms(program);
5917 } 5918 }
5918 } 5919 }
5919 5920
5920 void GLES2DecoderImpl::RenderWarning( 5921 void GLES2DecoderImpl::RenderWarning(
5921 const char* filename, int line, const std::string& msg) { 5922 const char* filename, int line, const std::string& msg) {
5922 logger_.LogMessage(filename, line, std::string("RENDER WARNING: ") + msg); 5923 logger_.LogMessage(filename, line, std::string("RENDER WARNING: ") + msg);
5923 } 5924 }
5924 5925
5925 void GLES2DecoderImpl::PerformanceWarning( 5926 void GLES2DecoderImpl::PerformanceWarning(
5926 const char* filename, int line, const std::string& msg) { 5927 const char* filename, int line, const std::string& msg) {
(...skipping 729 matching lines...) Expand 10 before | Expand all | Expand 10 after
6656 Shader* shader = GetShaderInfoNotProgram(client_id, "glCompileShader"); 6657 Shader* shader = GetShaderInfoNotProgram(client_id, "glCompileShader");
6657 if (!shader) { 6658 if (!shader) {
6658 return; 6659 return;
6659 } 6660 }
6660 ShaderTranslator* translator = NULL; 6661 ShaderTranslator* translator = NULL;
6661 if (use_shader_translator_) { 6662 if (use_shader_translator_) {
6662 translator = shader->shader_type() == GL_VERTEX_SHADER ? 6663 translator = shader->shader_type() == GL_VERTEX_SHADER ?
6663 vertex_translator_.get() : fragment_translator_.get(); 6664 vertex_translator_.get() : fragment_translator_.get();
6664 } 6665 }
6665 6666
6666 program_manager()->DoCompileShader(shader, translator, feature_info_.get()); 6667 program_manager()->DoCompileShader(
6668 shader,
6669 translator,
6670 feature_info_->feature_flags().angle_translated_shader_source ?
6671 ProgramManager::kANGLE : ProgramManager::kGL);
6667 }; 6672 };
6668 6673
6669 void GLES2DecoderImpl::DoGetShaderiv( 6674 void GLES2DecoderImpl::DoGetShaderiv(
6670 GLuint shader_id, GLenum pname, GLint* params) { 6675 GLuint shader_id, GLenum pname, GLint* params) {
6671 Shader* shader = GetShaderInfoNotProgram(shader_id, "glGetShaderiv"); 6676 Shader* shader = GetShaderInfoNotProgram(shader_id, "glGetShaderiv");
6672 if (!shader) { 6677 if (!shader) {
6673 return; 6678 return;
6674 } 6679 }
6675 switch (pname) { 6680 switch (pname) {
6676 case GL_SHADER_SOURCE_LENGTH: 6681 case GL_SHADER_SOURCE_LENGTH:
(...skipping 3972 matching lines...) Expand 10 before | Expand all | Expand 10 after
10649 DoDidUseTexImageIfNeeded(texture, texture->target()); 10654 DoDidUseTexImageIfNeeded(texture, texture->target());
10650 } 10655 }
10651 10656
10652 // Include the auto-generated part of this file. We split this because it means 10657 // Include the auto-generated part of this file. We split this because it means
10653 // we can easily edit the non-auto generated parts right here in this file 10658 // we can easily edit the non-auto generated parts right here in this file
10654 // instead of having to edit some template or the code generator. 10659 // instead of having to edit some template or the code generator.
10655 #include "gpu/command_buffer/service/gles2_cmd_decoder_autogen.h" 10660 #include "gpu/command_buffer/service/gles2_cmd_decoder_autogen.h"
10656 10661
10657 } // namespace gles2 10662 } // namespace gles2
10658 } // namespace gpu 10663 } // namespace gpu
OLDNEW
« no previous file with comments | « no previous file | gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698