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

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

Issue 2152733003: gpu_fuzzer: cache shader translators (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 5 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/gles2_cmd_decoder.h" 5 #include "gpu/command_buffer/service/gles2_cmd_decoder.h"
6 6
7 #include <limits.h> 7 #include <limits.h>
8 #include <stddef.h> 8 #include <stddef.h>
9 #include <stdint.h> 9 #include <stdint.h>
10 #include <stdio.h> 10 #include <stdio.h>
(...skipping 637 matching lines...) Expand 10 before | Expand all | Expand 10 after
648 648
649 void WaitForReadPixels(base::Closure callback) override; 649 void WaitForReadPixels(base::Closure callback) override;
650 650
651 Logger* GetLogger() override; 651 Logger* GetLogger() override;
652 652
653 void BeginDecoding() override; 653 void BeginDecoding() override;
654 void EndDecoding() override; 654 void EndDecoding() override;
655 655
656 ErrorState* GetErrorState() override; 656 ErrorState* GetErrorState() override;
657 const ContextState* GetContextState() override { return &state_; } 657 const ContextState* GetContextState() override { return &state_; }
658 scoped_refptr<ShaderTranslatorInterface> GetTranslator(GLenum type) override;
658 659
659 void SetShaderCacheCallback(const ShaderCacheCallback& callback) override; 660 void SetShaderCacheCallback(const ShaderCacheCallback& callback) override;
660 void SetFenceSyncReleaseCallback( 661 void SetFenceSyncReleaseCallback(
661 const FenceSyncReleaseCallback& callback) override; 662 const FenceSyncReleaseCallback& callback) override;
662 void SetWaitFenceSyncCallback(const WaitFenceSyncCallback& callback) override; 663 void SetWaitFenceSyncCallback(const WaitFenceSyncCallback& callback) override;
663 664
664 void SetDescheduleUntilFinishedCallback( 665 void SetDescheduleUntilFinishedCallback(
665 const NoParamCallback& callback) override; 666 const NoParamCallback& callback) override;
666 void SetRescheduleAfterFinishedCallback( 667 void SetRescheduleAfterFinishedCallback(
667 const NoParamCallback& callback) override; 668 const NoParamCallback& callback) override;
(...skipping 8648 matching lines...) Expand 10 before | Expand all | Expand 10 after
9316 GLuint client_program_id, GLsizei count, const char* const* varyings, 9317 GLuint client_program_id, GLsizei count, const char* const* varyings,
9317 GLenum buffer_mode) { 9318 GLenum buffer_mode) {
9318 Program* program = GetProgramInfoNotShader( 9319 Program* program = GetProgramInfoNotShader(
9319 client_program_id, "glTransformFeedbackVaryings"); 9320 client_program_id, "glTransformFeedbackVaryings");
9320 if (!program) { 9321 if (!program) {
9321 return; 9322 return;
9322 } 9323 }
9323 program->TransformFeedbackVaryings(count, varyings, buffer_mode); 9324 program->TransformFeedbackVaryings(count, varyings, buffer_mode);
9324 } 9325 }
9325 9326
9327 scoped_refptr<ShaderTranslatorInterface> GLES2DecoderImpl::GetTranslator(
9328 GLenum type) {
9329 return type == GL_VERTEX_SHADER ? vertex_translator_ : fragment_translator_;
9330 }
9331
9326 void GLES2DecoderImpl::DoCompileShader(GLuint client_id) { 9332 void GLES2DecoderImpl::DoCompileShader(GLuint client_id) {
9327 TRACE_EVENT0("gpu", "GLES2DecoderImpl::DoCompileShader"); 9333 TRACE_EVENT0("gpu", "GLES2DecoderImpl::DoCompileShader");
9328 Shader* shader = GetShaderInfoNotProgram(client_id, "glCompileShader"); 9334 Shader* shader = GetShaderInfoNotProgram(client_id, "glCompileShader");
9329 if (!shader) { 9335 if (!shader) {
9330 return; 9336 return;
9331 } 9337 }
9332 9338
9333 scoped_refptr<ShaderTranslatorInterface> translator; 9339 scoped_refptr<ShaderTranslatorInterface> translator;
9334 if (!feature_info_->disable_shader_translator()) { 9340 if (!feature_info_->disable_shader_translator())
9335 translator = shader->shader_type() == GL_VERTEX_SHADER ? 9341 translator = GetTranslator(shader->shader_type());
9336 vertex_translator_ : fragment_translator_;
9337 }
9338 9342
9339 const Shader::TranslatedShaderSourceType source_type = 9343 const Shader::TranslatedShaderSourceType source_type =
9340 feature_info_->feature_flags().angle_translated_shader_source ? 9344 feature_info_->feature_flags().angle_translated_shader_source ?
9341 Shader::kANGLE : Shader::kGL; 9345 Shader::kANGLE : Shader::kGL;
9342 shader->RequestCompile(translator, source_type); 9346 shader->RequestCompile(translator, source_type);
9343 } 9347 }
9344 9348
9345 void GLES2DecoderImpl::DoGetShaderiv( 9349 void GLES2DecoderImpl::DoGetShaderiv(
9346 GLuint shader_id, GLenum pname, GLint* params) { 9350 GLuint shader_id, GLenum pname, GLint* params) {
9347 Shader* shader = GetShaderInfoNotProgram(shader_id, "glGetShaderiv"); 9351 Shader* shader = GetShaderInfoNotProgram(shader_id, "glGetShaderiv");
(...skipping 8013 matching lines...) Expand 10 before | Expand all | Expand 10 after
17361 } 17365 }
17362 17366
17363 // Include the auto-generated part of this file. We split this because it means 17367 // Include the auto-generated part of this file. We split this because it means
17364 // we can easily edit the non-auto generated parts right here in this file 17368 // we can easily edit the non-auto generated parts right here in this file
17365 // instead of having to edit some template or the code generator. 17369 // instead of having to edit some template or the code generator.
17366 #include "base/macros.h" 17370 #include "base/macros.h"
17367 #include "gpu/command_buffer/service/gles2_cmd_decoder_autogen.h" 17371 #include "gpu/command_buffer/service/gles2_cmd_decoder_autogen.h"
17368 17372
17369 } // namespace gles2 17373 } // namespace gles2
17370 } // namespace gpu 17374 } // namespace gpu
OLDNEW
« no previous file with comments | « gpu/command_buffer/service/gles2_cmd_decoder.h ('k') | gpu/command_buffer/service/gles2_cmd_decoder_mock.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698