summaryrefslogtreecommitdiff
path: root/ast_to_hir.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'ast_to_hir.cpp')
-rw-r--r--ast_to_hir.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/ast_to_hir.cpp b/ast_to_hir.cpp
index d7bfb307a7..c5d60b87b8 100644
--- a/ast_to_hir.cpp
+++ b/ast_to_hir.cpp
@@ -980,6 +980,21 @@ ast_declarator_list::hir(exec_list *instructions,
instructions->push_tail(var);
+ /* From page 24 (page 30 of the PDF) of the GLSL 1.10 spec:
+ *
+ * "All uniform variables are read-only and are initialized either
+ * directly by an application via API commands, or indirectly by
+ * OpenGL."
+ */
+ if ((state->language_version <= 110)
+ && (var->mode == ir_var_uniform)
+ && (decl->initializer != NULL)) {
+ YYLTYPE loc = decl->initializer->get_location();
+
+ _mesa_glsl_error(& loc, state, "uniform initializers forbidden in "
+ "GLSL 1.10");
+ }
+
/* FINISHME: Process the declaration initializer. */
}