summaryrefslogtreecommitdiffstats
path: root/gpu
diff options
context:
space:
mode:
authorzmo@chromium.org <zmo@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-08-18 18:10:27 +0000
committerzmo@chromium.org <zmo@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-08-18 18:11:50 +0000
commitfa6d398436096ef8f1e595fad4cd00be3e89a9ff (patch)
treecfb2d65de547434421d222863040e6c50063d6b1 /gpu
parent36b2b0af7a30d7c89b6597b60f7ac9a4e65c27d9 (diff)
downloadchromium_src-fa6d398436096ef8f1e595fad4cd00be3e89a9ff.zip
chromium_src-fa6d398436096ef8f1e595fad4cd00be3e89a9ff.tar.gz
chromium_src-fa6d398436096ef8f1e595fad4cd00be3e89a9ff.tar.bz2
Hook up two GPU driver bug workarounds.
* scalarize_vec_and_mat_constructor_args per discussion with kbr, we decided to turn it on always for consistency. * regenerate_struct_names all mac drivers, linux amd drivers BUG=398694,403957 TEST=gpu_unittests R=bajones@chromium.org,kbr@chromium.org Review URL: https://codereview.chromium.org/474093002 Cr-Commit-Position: refs/heads/master@{#290303} git-svn-id: svn://svn.chromium.org/chrome/trunk/src@290303 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'gpu')
-rw-r--r--gpu/command_buffer/service/gles2_cmd_decoder.cc2
-rw-r--r--gpu/config/gpu_driver_bug_list_json.cc33
-rw-r--r--gpu/config/gpu_driver_bug_workaround_type.h2
3 files changed, 36 insertions, 1 deletions
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder.cc b/gpu/command_buffer/service/gles2_cmd_decoder.cc
index 10d5439..af8abd0 100644
--- a/gpu/command_buffer/service/gles2_cmd_decoder.cc
+++ b/gpu/command_buffer/service/gles2_cmd_decoder.cc
@@ -2819,6 +2819,8 @@ bool GLES2DecoderImpl::InitializeShaderTranslator() {
driver_bug_workarounds |= SH_UNROLL_FOR_LOOP_WITH_SAMPLER_ARRAY_INDEX;
if (workarounds().scalarize_vec_and_mat_constructor_args)
driver_bug_workarounds |= SH_SCALARIZE_VEC_AND_MAT_CONSTRUCTOR_ARGS;
+ if (workarounds().regenerate_struct_names)
+ driver_bug_workarounds |= SH_REGENERATE_STRUCT_NAMES;
vertex_translator_ = shader_translator_cache()->GetTranslator(
#if (ANGLE_SH_VERSION >= 126)
diff --git a/gpu/config/gpu_driver_bug_list_json.cc b/gpu/config/gpu_driver_bug_list_json.cc
index ffaa929..33a5aae 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": "7.0",
+ "version": "7.1",
"entries": [
{
"id": 1,
@@ -990,6 +990,37 @@ LONG_STRING_CONST(
"features": [
"disable_d3d11"
]
+ },
+ {
+ "id": 88,
+ "description": "Always rewrite vec/mat constructors to be consistent",
+ "cr_bugs": [398694],
+ "features": [
+ "scalarize_vec_and_mat_constructor_args"
+ ]
+ },
+ {
+ "id": 89,
+ "description": "Mac drivers handle struct scopes incorrectly",
+ "cr_bugs": [403957],
+ "os": {
+ "type": "macosx"
+ },
+ "features": [
+ "regenerate_struct_names"
+ ]
+ },
+ {
+ "id": 90,
+ "description": "Linux AMD drivers handle struct scopes incorrectly",
+ "cr_bugs": [403957],
+ "os": {
+ "type": "linux"
+ },
+ "vendor_id": "0x1002",
+ "features": [
+ "regenerate_struct_names"
+ ]
}
]
}
diff --git a/gpu/config/gpu_driver_bug_workaround_type.h b/gpu/config/gpu_driver_bug_workaround_type.h
index 730eb4f..2b220e0 100644
--- a/gpu/config/gpu_driver_bug_workaround_type.h
+++ b/gpu/config/gpu_driver_bug_workaround_type.h
@@ -76,6 +76,8 @@
needs_glsl_built_in_function_emulation) \
GPU_OP(NEEDS_OFFSCREEN_BUFFER_WORKAROUND, \
needs_offscreen_buffer_workaround) \
+ GPU_OP(REGENERATE_STRUCT_NAMES, \
+ regenerate_struct_names) \
GPU_OP(RELEASE_IMAGE_AFTER_USE, \
release_image_after_use) \
GPU_OP(RESTORE_SCISSOR_ON_FBO_CHANGE, \