diff options
author | marha <marha@users.sourceforge.net> | 2013-11-22 08:51:58 +0100 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2013-11-22 08:51:58 +0100 |
commit | 7dbaa1cffdf176f803f2c7069fb6810e16a86f72 (patch) | |
tree | e12bbf56a362758517fa9c26e46eca212448aca7 /mesalib/src/glsl/ir.h | |
parent | 4887502815f54a96dce04c1f503f9e5f6ea7408a (diff) | |
parent | 697f071e3dcd3b01dba050d6c5316f2a23ee82f8 (diff) | |
download | vcxsrv-7dbaa1cffdf176f803f2c7069fb6810e16a86f72.tar.gz vcxsrv-7dbaa1cffdf176f803f2c7069fb6810e16a86f72.tar.bz2 vcxsrv-7dbaa1cffdf176f803f2c7069fb6810e16a86f72.zip |
Merge remote-tracking branch 'origin/released'
* origin/released:
libxtrans mesa git update 22 nov 2013
Diffstat (limited to 'mesalib/src/glsl/ir.h')
-rw-r--r-- | mesalib/src/glsl/ir.h | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/mesalib/src/glsl/ir.h b/mesalib/src/glsl/ir.h index 7859702ed..4f775da4b 100644 --- a/mesalib/src/glsl/ir.h +++ b/mesalib/src/glsl/ir.h @@ -294,6 +294,34 @@ enum ir_variable_mode { }; /** + * Enum keeping track of how a variable was declared. For error checking of + * the gl_PerVertex redeclaration rules. + */ +enum ir_var_declaration_type { + /** + * Normal declaration (for most variables, this means an explicit + * declaration. Exception: temporaries are always implicitly declared, but + * they still use ir_var_declared_normally). + * + * Note: an ir_variable that represents a named interface block uses + * ir_var_declared_normally. + */ + ir_var_declared_normally = 0, + + /** + * Variable was explicitly declared (or re-declared) in an unnamed + * interface block. + */ + ir_var_declared_in_block, + + /** + * Variable is an implicitly declared built-in that has not been explicitly + * re-declared by the shader. + */ + ir_var_declared_implicitly, +}; + +/** * \brief Layout qualifiers for gl_FragDepth. * * The AMD/ARB_conservative_depth extensions allow gl_FragDepth to be redeclared @@ -526,6 +554,14 @@ public: unsigned assigned:1; /** + * Enum indicating how the variable was declared. See + * ir_var_declaration_type. + * + * This is used to detect certain kinds of illegal variable redeclarations. + */ + unsigned how_declared:2; + + /** * Storage class of the variable. * * \sa ir_variable_mode |