summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Berry <stereotype441@gmail.com>2013-09-27 17:41:07 -0700
committerPaul Berry <stereotype441@gmail.com>2013-10-10 14:27:15 -0700
commit9fb6f5955276154f04320d096b679b2ae8f61da5 (patch)
treefb0e482ab3dbf05124e00a5293c68d5f94de2bf4
parent9b5b0320b65631aa53bb591681bdb730c90c99da (diff)
glsl: Don't allow invalid identifiers as interface block instance names.
Note: we need to make an exception for the gl_PerVertex interface block, since in geometry shaders it is allowed to be redeclared with the instance name gl_in. Future patches will make redeclaration of gl_PerVertex work properly. Fixes piglit test spec/glsl-1.50/compiler/interface-block-instance-name-uses-gl-prefix.vert. Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
-rw-r--r--src/glsl/ast_to_hir.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/glsl/ast_to_hir.cpp b/src/glsl/ast_to_hir.cpp
index 1d7539d56f..1a5df71201 100644
--- a/src/glsl/ast_to_hir.cpp
+++ b/src/glsl/ast_to_hir.cpp
@@ -4692,6 +4692,9 @@ ast_interface_block::hir(exec_list *instructions,
* field selector ( . ) operator (analogously to structures)."
*/
if (this->instance_name) {
+ if (!redeclaring_per_vertex)
+ validate_identifier(this->instance_name, loc, state);
+
ir_variable *var;
if (this->is_array) {