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/gles2_cmd_decoder.cc

Issue 552013007: Remove outdated ANGLE_SH_VERSION if-def stuff. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 3 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
« no previous file with comments | « no previous file | gpu/command_buffer/service/mocks.h » ('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 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
77 namespace gpu { 77 namespace gpu {
78 namespace gles2 { 78 namespace gles2 {
79 79
80 namespace { 80 namespace {
81 81
82 static const char kOESDerivativeExtension[] = "GL_OES_standard_derivatives"; 82 static const char kOESDerivativeExtension[] = "GL_OES_standard_derivatives";
83 static const char kEXTFragDepthExtension[] = "GL_EXT_frag_depth"; 83 static const char kEXTFragDepthExtension[] = "GL_EXT_frag_depth";
84 static const char kEXTDrawBuffersExtension[] = "GL_EXT_draw_buffers"; 84 static const char kEXTDrawBuffersExtension[] = "GL_EXT_draw_buffers";
85 static const char kEXTShaderTextureLodExtension[] = "GL_EXT_shader_texture_lod"; 85 static const char kEXTShaderTextureLodExtension[] = "GL_EXT_shader_texture_lod";
86 86
87 #if !defined(ANGLE_SH_VERSION) || ANGLE_SH_VERSION < 108
88 khronos_uint64_t CityHashForAngle(const char* name, unsigned int len) {
89 return static_cast<khronos_uint64_t>(
90 CityHash64(name, static_cast<size_t>(len)));
91 }
92 #endif
93
94 static bool PrecisionMeetsSpecForHighpFloat(GLint rangeMin, 87 static bool PrecisionMeetsSpecForHighpFloat(GLint rangeMin,
95 GLint rangeMax, 88 GLint rangeMax,
96 GLint precision) { 89 GLint precision) {
97 return (rangeMin >= 62) && (rangeMax >= 62) && (precision >= 16); 90 return (rangeMin >= 62) && (rangeMax >= 62) && (precision >= 16);
98 } 91 }
99 92
100 static void GetShaderPrecisionFormatImpl(GLenum shader_type, 93 static void GetShaderPrecisionFormatImpl(GLenum shader_type,
101 GLenum precision_type, 94 GLenum precision_type,
102 GLint *range, GLint *precision) { 95 GLint *range, GLint *precision) {
103 switch (precision_type) { 96 switch (precision_type) {
(...skipping 2657 matching lines...) Expand 10 before | Expand all | Expand 10 after
2761 resources.MaxVertexTextureImageUnits = 2754 resources.MaxVertexTextureImageUnits =
2762 group_->max_vertex_texture_image_units(); 2755 group_->max_vertex_texture_image_units();
2763 resources.MaxCombinedTextureImageUnits = group_->max_texture_units(); 2756 resources.MaxCombinedTextureImageUnits = group_->max_texture_units();
2764 resources.MaxTextureImageUnits = group_->max_texture_image_units(); 2757 resources.MaxTextureImageUnits = group_->max_texture_image_units();
2765 resources.MaxFragmentUniformVectors = 2758 resources.MaxFragmentUniformVectors =
2766 group_->max_fragment_uniform_vectors(); 2759 group_->max_fragment_uniform_vectors();
2767 resources.MaxDrawBuffers = group_->max_draw_buffers(); 2760 resources.MaxDrawBuffers = group_->max_draw_buffers();
2768 resources.MaxExpressionComplexity = 256; 2761 resources.MaxExpressionComplexity = 256;
2769 resources.MaxCallStackDepth = 256; 2762 resources.MaxCallStackDepth = 256;
2770 2763
2771 #if (ANGLE_SH_VERSION >= 110)
2772 GLint range[2] = { 0, 0 }; 2764 GLint range[2] = { 0, 0 };
2773 GLint precision = 0; 2765 GLint precision = 0;
2774 GetShaderPrecisionFormatImpl(GL_FRAGMENT_SHADER, GL_HIGH_FLOAT, 2766 GetShaderPrecisionFormatImpl(GL_FRAGMENT_SHADER, GL_HIGH_FLOAT,
2775 range, &precision); 2767 range, &precision);
2776 resources.FragmentPrecisionHigh = 2768 resources.FragmentPrecisionHigh =
2777 PrecisionMeetsSpecForHighpFloat(range[0], range[1], precision); 2769 PrecisionMeetsSpecForHighpFloat(range[0], range[1], precision);
2778 #endif
2779 2770
2780 if (force_webgl_glsl_validation_) { 2771 if (force_webgl_glsl_validation_) {
2781 resources.OES_standard_derivatives = derivatives_explicitly_enabled_; 2772 resources.OES_standard_derivatives = derivatives_explicitly_enabled_;
2782 resources.EXT_frag_depth = frag_depth_explicitly_enabled_; 2773 resources.EXT_frag_depth = frag_depth_explicitly_enabled_;
2783 resources.EXT_draw_buffers = draw_buffers_explicitly_enabled_; 2774 resources.EXT_draw_buffers = draw_buffers_explicitly_enabled_;
2784 if (!draw_buffers_explicitly_enabled_) 2775 if (!draw_buffers_explicitly_enabled_)
2785 resources.MaxDrawBuffers = 1; 2776 resources.MaxDrawBuffers = 1;
2786 #if (ANGLE_SH_VERSION >= 123)
2787 resources.EXT_shader_texture_lod = shader_texture_lod_explicitly_enabled_; 2777 resources.EXT_shader_texture_lod = shader_texture_lod_explicitly_enabled_;
2788 #endif
2789 } else { 2778 } else {
2790 resources.OES_standard_derivatives = 2779 resources.OES_standard_derivatives =
2791 features().oes_standard_derivatives ? 1 : 0; 2780 features().oes_standard_derivatives ? 1 : 0;
2792 resources.ARB_texture_rectangle = 2781 resources.ARB_texture_rectangle =
2793 features().arb_texture_rectangle ? 1 : 0; 2782 features().arb_texture_rectangle ? 1 : 0;
2794 resources.OES_EGL_image_external = 2783 resources.OES_EGL_image_external =
2795 features().oes_egl_image_external ? 1 : 0; 2784 features().oes_egl_image_external ? 1 : 0;
2796 resources.EXT_draw_buffers = 2785 resources.EXT_draw_buffers =
2797 features().ext_draw_buffers ? 1 : 0; 2786 features().ext_draw_buffers ? 1 : 0;
2798 resources.EXT_frag_depth = 2787 resources.EXT_frag_depth =
2799 features().ext_frag_depth ? 1 : 0; 2788 features().ext_frag_depth ? 1 : 0;
2800 #if (ANGLE_SH_VERSION >= 123)
2801 resources.EXT_shader_texture_lod = 2789 resources.EXT_shader_texture_lod =
2802 features().ext_shader_texture_lod ? 1 : 0; 2790 features().ext_shader_texture_lod ? 1 : 0;
2803 #endif
2804 } 2791 }
2805 2792
2806 ShShaderSpec shader_spec = force_webgl_glsl_validation_ ? SH_WEBGL_SPEC 2793 ShShaderSpec shader_spec = force_webgl_glsl_validation_ ? SH_WEBGL_SPEC
2807 : SH_GLES2_SPEC; 2794 : SH_GLES2_SPEC;
2808 if (shader_spec == SH_WEBGL_SPEC && features().enable_shader_name_hashing) 2795 if (shader_spec == SH_WEBGL_SPEC && features().enable_shader_name_hashing)
2809 #if !defined(ANGLE_SH_VERSION) || ANGLE_SH_VERSION < 108
2810 resources.HashFunction = &CityHashForAngle;
2811 #else
2812 resources.HashFunction = &CityHash64; 2796 resources.HashFunction = &CityHash64;
2813 #endif
2814 else 2797 else
2815 resources.HashFunction = NULL; 2798 resources.HashFunction = NULL;
2816 ShaderTranslatorInterface::GlslImplementationType implementation_type = 2799 ShaderTranslatorInterface::GlslImplementationType implementation_type =
2817 gfx::GetGLImplementation() == gfx::kGLImplementationEGLGLES2 ? 2800 gfx::GetGLImplementation() == gfx::kGLImplementationEGLGLES2 ?
2818 ShaderTranslatorInterface::kGlslES : ShaderTranslatorInterface::kGlsl; 2801 ShaderTranslatorInterface::kGlslES : ShaderTranslatorInterface::kGlsl;
2819 int driver_bug_workarounds = 0; 2802 int driver_bug_workarounds = 0;
2820 if (workarounds().needs_glsl_built_in_function_emulation) 2803 if (workarounds().needs_glsl_built_in_function_emulation)
2821 driver_bug_workarounds |= SH_EMULATE_BUILT_IN_FUNCTIONS; 2804 driver_bug_workarounds |= SH_EMULATE_BUILT_IN_FUNCTIONS;
2822 if (workarounds().init_gl_position_in_vertex_shader) 2805 if (workarounds().init_gl_position_in_vertex_shader)
2823 driver_bug_workarounds |= SH_INIT_GL_POSITION; 2806 driver_bug_workarounds |= SH_INIT_GL_POSITION;
2824 if (workarounds().unfold_short_circuit_as_ternary_operation) 2807 if (workarounds().unfold_short_circuit_as_ternary_operation)
2825 driver_bug_workarounds |= SH_UNFOLD_SHORT_CIRCUIT; 2808 driver_bug_workarounds |= SH_UNFOLD_SHORT_CIRCUIT;
2826 if (workarounds().init_varyings_without_static_use) 2809 if (workarounds().init_varyings_without_static_use)
2827 driver_bug_workarounds |= SH_INIT_VARYINGS_WITHOUT_STATIC_USE; 2810 driver_bug_workarounds |= SH_INIT_VARYINGS_WITHOUT_STATIC_USE;
2828 if (workarounds().unroll_for_loop_with_sampler_array_index) 2811 if (workarounds().unroll_for_loop_with_sampler_array_index)
2829 driver_bug_workarounds |= SH_UNROLL_FOR_LOOP_WITH_SAMPLER_ARRAY_INDEX; 2812 driver_bug_workarounds |= SH_UNROLL_FOR_LOOP_WITH_SAMPLER_ARRAY_INDEX;
2830 if (workarounds().scalarize_vec_and_mat_constructor_args) 2813 if (workarounds().scalarize_vec_and_mat_constructor_args)
2831 driver_bug_workarounds |= SH_SCALARIZE_VEC_AND_MAT_CONSTRUCTOR_ARGS; 2814 driver_bug_workarounds |= SH_SCALARIZE_VEC_AND_MAT_CONSTRUCTOR_ARGS;
2832 if (workarounds().regenerate_struct_names) 2815 if (workarounds().regenerate_struct_names)
2833 driver_bug_workarounds |= SH_REGENERATE_STRUCT_NAMES; 2816 driver_bug_workarounds |= SH_REGENERATE_STRUCT_NAMES;
2834 2817
2835 vertex_translator_ = shader_translator_cache()->GetTranslator( 2818 vertex_translator_ = shader_translator_cache()->GetTranslator(
2836 #if (ANGLE_SH_VERSION >= 126)
2837 GL_VERTEX_SHADER, 2819 GL_VERTEX_SHADER,
2838 #else
2839 SH_VERTEX_SHADER,
2840 #endif
2841 shader_spec, 2820 shader_spec,
2842 &resources, 2821 &resources,
2843 implementation_type, 2822 implementation_type,
2844 static_cast<ShCompileOptions>(driver_bug_workarounds)); 2823 static_cast<ShCompileOptions>(driver_bug_workarounds));
2845 if (!vertex_translator_.get()) { 2824 if (!vertex_translator_.get()) {
2846 LOG(ERROR) << "Could not initialize vertex shader translator."; 2825 LOG(ERROR) << "Could not initialize vertex shader translator.";
2847 Destroy(true); 2826 Destroy(true);
2848 return false; 2827 return false;
2849 } 2828 }
2850 2829
2851 fragment_translator_ = shader_translator_cache()->GetTranslator( 2830 fragment_translator_ = shader_translator_cache()->GetTranslator(
2852 #if (ANGLE_SH_VERSION >= 126)
2853 GL_FRAGMENT_SHADER, 2831 GL_FRAGMENT_SHADER,
2854 #else
2855 SH_FRAGMENT_SHADER,
2856 #endif
2857 shader_spec, 2832 shader_spec,
2858 &resources, 2833 &resources,
2859 implementation_type, 2834 implementation_type,
2860 static_cast<ShCompileOptions>(driver_bug_workarounds)); 2835 static_cast<ShCompileOptions>(driver_bug_workarounds));
2861 if (!fragment_translator_.get()) { 2836 if (!fragment_translator_.get()) {
2862 LOG(ERROR) << "Could not initialize fragment shader translator."; 2837 LOG(ERROR) << "Could not initialize fragment shader translator.";
2863 Destroy(true); 2838 Destroy(true);
2864 return false; 2839 return false;
2865 } 2840 }
2866 return true; 2841 return true;
(...skipping 8296 matching lines...) Expand 10 before | Expand all | Expand 10 after
11163 } 11138 }
11164 } 11139 }
11165 11140
11166 // Include the auto-generated part of this file. We split this because it means 11141 // Include the auto-generated part of this file. We split this because it means
11167 // we can easily edit the non-auto generated parts right here in this file 11142 // we can easily edit the non-auto generated parts right here in this file
11168 // instead of having to edit some template or the code generator. 11143 // instead of having to edit some template or the code generator.
11169 #include "gpu/command_buffer/service/gles2_cmd_decoder_autogen.h" 11144 #include "gpu/command_buffer/service/gles2_cmd_decoder_autogen.h"
11170 11145
11171 } // namespace gles2 11146 } // namespace gles2
11172 } // namespace gpu 11147 } // namespace gpu
OLDNEW
« no previous file with comments | « no previous file | gpu/command_buffer/service/mocks.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698