[Mesa-dev] [PATCH] glsl: Disallow unsized array of atomic_uint
Iago Toral Quiroga
itoral at igalia.com
Tue Sep 12 06:15:05 UTC 2017
This was a bugfix to the spec addressed in OpenGL 4.5 and there is
a CTS test to check this.
Fixes:
KHR-GL45.shader_atomic_counters.negative-unsized-array
---
src/compiler/glsl/ast_to_hir.cpp | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/src/compiler/glsl/ast_to_hir.cpp b/src/compiler/glsl/ast_to_hir.cpp
index 98d2f94e12..81eeec103b 100644
--- a/src/compiler/glsl/ast_to_hir.cpp
+++ b/src/compiler/glsl/ast_to_hir.cpp
@@ -5542,6 +5542,17 @@ ast_declarator_list::hir(exec_list *instructions,
"GLSL ES");
}
+ /* Section 4.4.6.1 Atomic Counter Layout Qualifiers of the GLSL 4.50 spec:
+ *
+ * "It is a compile-time error to declare an unsized array of
+ * atomic_uint"
+ */
+ if (var->type->is_unsized_array() &&
+ var->type->without_array()->base_type == GLSL_TYPE_ATOMIC_UINT) {
+ _mesa_glsl_error(& loc, state,
+ "Unsized array of atomic_uint is not allowed");
+ }
+
/* If the declaration is not a redeclaration, there are a few additional
* semantic checks that must be applied. In addition, variable that was
* created for the declaration should be added to the IR stream.
--
2.11.0
More information about the mesa-dev
mailing list