From f0c876035d1f0bd3dc4917e07697c70a93920f00 Mon Sep 17 00:00:00 2001 From: "zmo@chromium.org" Date: Thu, 17 Oct 2013 19:34:11 +0000 Subject: Apply shader short circuit workaround on MacOSX BUG=307751 TEST=conformance test mentioned in the crbug R=bajones@chromium.org, kbr@chromium.org Review URL: https://codereview.chromium.org/27343003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@229208 0039d316-1c4b-4281-b951-d872f2087c98 --- gpu/command_buffer/service/gles2_cmd_decoder.cc | 2 ++ gpu/config/gpu_driver_bug_list_json.cc | 13 ++++++++++++- gpu/config/gpu_driver_bug_workaround_type.h | 6 ++++-- 3 files changed, 18 insertions(+), 3 deletions(-) (limited to 'gpu') diff --git a/gpu/command_buffer/service/gles2_cmd_decoder.cc b/gpu/command_buffer/service/gles2_cmd_decoder.cc index f53120b..4dbae41 100644 --- a/gpu/command_buffer/service/gles2_cmd_decoder.cc +++ b/gpu/command_buffer/service/gles2_cmd_decoder.cc @@ -2550,6 +2550,8 @@ bool GLES2DecoderImpl::InitializeShaderTranslator() { driver_bug_workarounds |= SH_EMULATE_BUILT_IN_FUNCTIONS; if (workarounds().init_gl_position_in_vertex_shader) driver_bug_workarounds |= SH_INIT_GL_POSITION; + if (workarounds().unfold_short_circuit_as_ternary_operation) + driver_bug_workarounds |= SH_UNFOLD_SHORT_CIRCUIT; ShaderTranslatorCache* cache = ShaderTranslatorCache::GetInstance(); vertex_translator_ = cache->GetTranslator( diff --git a/gpu/config/gpu_driver_bug_list_json.cc b/gpu/config/gpu_driver_bug_list_json.cc index 1f5a05b..213ada5 100644 --- a/gpu/config/gpu_driver_bug_list_json.cc +++ b/gpu/config/gpu_driver_bug_list_json.cc @@ -19,7 +19,7 @@ const char kGpuDriverBugListJson[] = LONG_STRING_CONST( { "name": "gpu driver bug list", // Please update the version number whenever you change this file. - "version": "2.22", + "version": "2.23", "entries": [ { "id": 1, @@ -612,6 +612,17 @@ const char kGpuDriverBugListJson[] = LONG_STRING_CONST( "features": [ "disable_ext_discard_framebuffer" ] + }, + { + "id": 45, + "cr_bugs": [307751], + "description": "Unfold short circuit on MacOSX.", + "os": { + "type": "macosx" + }, + "features": [ + "unfold_short_circuit_as_ternary_operation" + ] } ] } diff --git a/gpu/config/gpu_driver_bug_workaround_type.h b/gpu/config/gpu_driver_bug_workaround_type.h index e9b3524..66db5ff 100644 --- a/gpu/config/gpu_driver_bug_workaround_type.h +++ b/gpu/config/gpu_driver_bug_workaround_type.h @@ -24,6 +24,8 @@ disable_d3d11) \ GPU_OP(DISABLE_DEPTH_TEXTURE, \ disable_depth_texture) \ + GPU_OP(DISABLE_EXT_DISCARD_FRAMEBUFFER, \ + disable_ext_discard_framebuffer) \ GPU_OP(DISABLE_EXT_DRAW_BUFFERS, \ disable_ext_draw_buffers) \ GPU_OP(DISABLE_EXT_OCCLUSION_QUERY, \ @@ -60,6 +62,8 @@ swizzle_rgba_for_async_readpixels) \ GPU_OP(UNBIND_FBO_ON_CONTEXT_SWITCH, \ unbind_fbo_on_context_switch) \ + GPU_OP(UNFOLD_SHORT_CIRCUIT_AS_TERNARY_OPERATION, \ + unfold_short_circuit_as_ternary_operation) \ GPU_OP(USE_CLIENT_SIDE_ARRAYS_FOR_STREAM_BUFFERS, \ use_client_side_arrays_for_stream_buffers) \ GPU_OP(USE_CURRENT_PROGRAM_AFTER_SUCCESSFUL_LINK, \ @@ -70,8 +74,6 @@ use_virtualized_gl_contexts) \ GPU_OP(VALIDATE_MULTISAMPLE_BUFFER_ALLOCATION, \ validate_multisample_buffer_allocation) \ - GPU_OP(DISABLE_EXT_DISCARD_FRAMEBUFFER, \ - disable_ext_discard_framebuffer) \ namespace gpu { -- cgit v1.1