diff options
author | Kenneth Graunke <[email protected]> | 2017-11-07 00:57:52 -0800 |
---|---|---|
committer | Kenneth Graunke <[email protected]> | 2017-11-08 23:11:48 -0800 |
commit | 688d6958682f96aaeb88aa8cc23cc5c9886a6be4 (patch) | |
tree | 43f3d58b5ebc8de45c99234450a4e096a239dbe2 /src/util/meson.build | |
parent | c591b1e59454db2e8854e36852e0d413ce38b2f2 (diff) |
glsl: Make #pragma STDGL invariant(all) only modify outputs.
According to the GLSL ES 3.20, GLSL 4.50, and GLSL 1.20 specs:
"To force all output variables to be invariant, use the pragma
#pragma STDGL invariant(all)
before all declarations in a shader."
Notably, this is only supposed to affect output variables. Furthermore,
"Only variables output from a shader can be candidates for invariance."
It looks like this has been wrong since we first supported the pragma in
2011 (commit 86b4398cd158024f6be9fa830554a11c2a7ebe0c).
Fixes dEQP-GLES2.functional.shaders.preprocessor.pragmas.pragma_fragment.
v2: Now that all cases are identical (other than compute shaders, which
have no output variables anyway), we can drop the switch statement
entirely. We also don't need the current_function == NULL check;
this was a hold over from when we had a single var_mode_out for both
function parameters and shader varyings, in the bad old days.
Reviewed-by: Iago Toral Quiroga <[email protected]>
Reviewed-by: Ilia Mirkin <[email protected]>
Diffstat (limited to 'src/util/meson.build')
0 files changed, 0 insertions, 0 deletions