summaryrefslogtreecommitdiffstats
path: root/gpu
diff options
context:
space:
mode:
authorapatrick@chromium.org <apatrick@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-01-18 19:16:53 +0000
committerapatrick@chromium.org <apatrick@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-01-18 19:16:53 +0000
commit3cac5a3988dc75a0ed7cc79d36f98457af268ba1 (patch)
tree9aff814d7b67f193ca269172fc4cdab307187925 /gpu
parentb5092d8737a627ac9c9198586462d9a45e8b86db (diff)
downloadchromium_src-3cac5a3988dc75a0ed7cc79d36f98457af268ba1.zip
chromium_src-3cac5a3988dc75a0ed7cc79d36f98457af268ba1.tar.gz
chromium_src-3cac5a3988dc75a0ed7cc79d36f98457af268ba1.tar.bz2
Windows: do not clamp GLSL array indices to array bounds.
The resulting HLSL cannot be reliably compiled by the D3DX shader compiler. Other platforms are unaffected. ANGLE bug: https://code.google.com/p/angleproject/issues/detail?id=399&thanks=399&ts=1358472580 Review URL: https://codereview.chromium.org/11926011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@177725 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'gpu')
-rw-r--r--gpu/command_buffer/service/shader_translator.cc9
1 files changed, 8 insertions, 1 deletions
diff --git a/gpu/command_buffer/service/shader_translator.cc b/gpu/command_buffer/service/shader_translator.cc
index c086df9..46b6bee 100644
--- a/gpu/command_buffer/service/shader_translator.cc
+++ b/gpu/command_buffer/service/shader_translator.cc
@@ -128,7 +128,14 @@ bool ShaderTranslator::Translate(const char* shader) {
bool success = false;
int compile_options =
SH_OBJECT_CODE | SH_ATTRIBUTES_UNIFORMS |
- SH_MAP_LONG_VARIABLE_NAMES | SH_CLAMP_INDIRECT_ARRAY_BOUNDS;
+ SH_MAP_LONG_VARIABLE_NAMES;
+
+#if !defined(OS_WIN)
+ // Cannot reliably clamp an array index in HLSL.
+ // https://code.google.com/p/angleproject/issues/detail?id=399
+ compile_options |= SH_CLAMP_INDIRECT_ARRAY_BOUNDS;
+#endif
+
if (needs_built_in_function_emulation_)
compile_options |= SH_EMULATE_BUILT_IN_FUNCTIONS;
if (ShCompile(compiler_, &shader, 1, compile_options)) {