mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 00:58:05 +02:00
glsl: throw error when using invariant(all) in a fragment shader
Note that some of the GLSL specifications explicitly state this as compile error, some simply state that 'it is an error'. Signed-off-by: Tapani Pälli <tapani.palli@intel.com> Reviewed-by: Chris Forbes <chrisf@ijw.co.nz>
This commit is contained in:
parent
c914247dcb
commit
636db35c35
1 changed files with 12 additions and 1 deletions
|
|
@ -331,7 +331,18 @@ pragma_statement:
|
|||
| PRAGMA_OPTIMIZE_OFF EOL
|
||||
| PRAGMA_INVARIANT_ALL EOL
|
||||
{
|
||||
if (!state->is_version(120, 100)) {
|
||||
/* Pragma invariant(all) cannot be used in a fragment shader.
|
||||
*
|
||||
* Page 27 of the GLSL 1.20 spec, Page 53 of the GLSL ES 3.00 spec:
|
||||
*
|
||||
* "It is an error to use this pragma in a fragment shader."
|
||||
*/
|
||||
if (state->is_version(120, 300) &&
|
||||
state->stage == MESA_SHADER_FRAGMENT) {
|
||||
_mesa_glsl_error(& @1, state,
|
||||
"pragma `invariant(all)' cannot be used "
|
||||
"in a fragment shader.");
|
||||
} else if (!state->is_version(120, 100)) {
|
||||
_mesa_glsl_warning(& @1, state,
|
||||
"pragma `invariant(all)' not supported in %s "
|
||||
"(GLSL ES 1.00 or GLSL 1.20 required)",
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue