diff options
author | apatrick@chromium.org <apatrick@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-01-18 19:16:53 +0000 |
---|---|---|
committer | apatrick@chromium.org <apatrick@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-01-18 19:16:53 +0000 |
commit | 3cac5a3988dc75a0ed7cc79d36f98457af268ba1 (patch) | |
tree | 9aff814d7b67f193ca269172fc4cdab307187925 /gpu | |
parent | b5092d8737a627ac9c9198586462d9a45e8b86db (diff) | |
download | chromium_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.cc | 9 |
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)) { |