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

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

Issue 12210057: Added temporary #ifdefs to support incompatible ANGLE API upgrade. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Renamed SH_VERSION macro due to conflict on Android bot. Created 7 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/shader_translator.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 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
67 // TODO(zmo): we can't include "City.h" due to type def conflicts. 67 // TODO(zmo): we can't include "City.h" due to type def conflicts.
68 extern uint64 CityHash64(const char*, size_t); 68 extern uint64 CityHash64(const char*, size_t);
69 69
70 namespace gpu { 70 namespace gpu {
71 namespace gles2 { 71 namespace gles2 {
72 72
73 namespace { 73 namespace {
74 74
75 static const char kOESDerivativeExtension[] = "GL_OES_standard_derivatives"; 75 static const char kOESDerivativeExtension[] = "GL_OES_standard_derivatives";
76 76
77 #if !defined(ANGLE_SH_VERSION) || ANGLE_SH_VERSION < 108
77 khronos_uint64_t CityHashForAngle(const char* name, unsigned int len) { 78 khronos_uint64_t CityHashForAngle(const char* name, unsigned int len) {
78 return static_cast<khronos_uint64_t>( 79 return static_cast<khronos_uint64_t>(
79 CityHash64(name, static_cast<size_t>(len))); 80 CityHash64(name, static_cast<size_t>(len)));
80 } 81 }
82 #endif
81 83
82 } // namespace 84 } // namespace
83 85
84 class GLES2DecoderImpl; 86 class GLES2DecoderImpl;
85 87
86 // Check that certain assumptions the code makes are true. There are places in 88 // Check that certain assumptions the code makes are true. There are places in
87 // the code where shared memory is passed direclty to GL. Example, glUniformiv, 89 // the code where shared memory is passed direclty to GL. Example, glUniformiv,
88 // glShaderSource. The command buffer code assumes GLint and GLsizei (and maybe 90 // glShaderSource. The command buffer code assumes GLint and GLsizei (and maybe
89 // a few others) are 32bits. If they are not 32bits the code will have to change 91 // a few others) are 32bits. If they are not 32bits the code will have to change
90 // to call those GL functions with service side memory and then copy the results 92 // to call those GL functions with service side memory and then copy the results
(...skipping 2402 matching lines...) Expand 10 before | Expand all | Expand 10 after
2493 features().oes_standard_derivatives ? 1 : 0; 2495 features().oes_standard_derivatives ? 1 : 0;
2494 resources.ARB_texture_rectangle = 2496 resources.ARB_texture_rectangle =
2495 features().arb_texture_rectangle ? 1 : 0; 2497 features().arb_texture_rectangle ? 1 : 0;
2496 resources.OES_EGL_image_external = 2498 resources.OES_EGL_image_external =
2497 features().oes_egl_image_external ? 1 : 0; 2499 features().oes_egl_image_external ? 1 : 0;
2498 } 2500 }
2499 2501
2500 ShShaderSpec shader_spec = force_webgl_glsl_validation_ || 2502 ShShaderSpec shader_spec = force_webgl_glsl_validation_ ||
2501 force_webgl_glsl_validation_ ? SH_WEBGL_SPEC : SH_GLES2_SPEC; 2503 force_webgl_glsl_validation_ ? SH_WEBGL_SPEC : SH_GLES2_SPEC;
2502 if (shader_spec == SH_WEBGL_SPEC && features().enable_shader_name_hashing) 2504 if (shader_spec == SH_WEBGL_SPEC && features().enable_shader_name_hashing)
2505 #if !defined(ANGLE_SH_VERSION) || ANGLE_SH_VERSION < 108
2503 resources.HashFunction = &CityHashForAngle; 2506 resources.HashFunction = &CityHashForAngle;
2507 #else
2508 resources.HashFunction = &CityHash64;
2509 #endif
2504 else 2510 else
2505 resources.HashFunction = NULL; 2511 resources.HashFunction = NULL;
2506 ShaderTranslatorInterface::GlslImplementationType implementation_type = 2512 ShaderTranslatorInterface::GlslImplementationType implementation_type =
2507 gfx::GetGLImplementation() == gfx::kGLImplementationEGLGLES2 ? 2513 gfx::GetGLImplementation() == gfx::kGLImplementationEGLGLES2 ?
2508 ShaderTranslatorInterface::kGlslES : ShaderTranslatorInterface::kGlsl; 2514 ShaderTranslatorInterface::kGlslES : ShaderTranslatorInterface::kGlsl;
2509 ShaderTranslatorInterface::GlslBuiltInFunctionBehavior function_behavior = 2515 ShaderTranslatorInterface::GlslBuiltInFunctionBehavior function_behavior =
2510 workarounds().needs_glsl_built_in_function_emulation ? 2516 workarounds().needs_glsl_built_in_function_emulation ?
2511 ShaderTranslatorInterface::kGlslBuiltInFunctionEmulated : 2517 ShaderTranslatorInterface::kGlslBuiltInFunctionEmulated :
2512 ShaderTranslatorInterface::kGlslBuiltInFunctionOriginal; 2518 ShaderTranslatorInterface::kGlslBuiltInFunctionOriginal;
2513 2519
(...skipping 7563 matching lines...) Expand 10 before | Expand all | Expand 10 after
10077 return error::kNoError; 10083 return error::kNoError;
10078 } 10084 }
10079 10085
10080 // Include the auto-generated part of this file. We split this because it means 10086 // Include the auto-generated part of this file. We split this because it means
10081 // we can easily edit the non-auto generated parts right here in this file 10087 // we can easily edit the non-auto generated parts right here in this file
10082 // instead of having to edit some template or the code generator. 10088 // instead of having to edit some template or the code generator.
10083 #include "gpu/command_buffer/service/gles2_cmd_decoder_autogen.h" 10089 #include "gpu/command_buffer/service/gles2_cmd_decoder_autogen.h"
10084 10090
10085 } // namespace gles2 10091 } // namespace gles2
10086 } // namespace gpu 10092 } // namespace gpu
OLDNEW
« no previous file with comments | « no previous file | gpu/command_buffer/service/shader_translator.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698