[Mesa-dev] [PATCH] glsl: dont allow undefined array sizes in ES
Kenneth Graunke
kenneth at whitecape.org
Wed Mar 9 09:13:48 UTC 2016
On Tuesday, March 8, 2016 8:35:41 PM PST Timothy Arceri wrote:
> This applies the rule to empty declarations.
>
> Fixes:
> dEQP-
GLES3.functional.shaders.arrays.invalid.empty_declaration_without_var_name_vertex
> dEQP-
GLES3.functional.shaders.arrays.invalid.empty_declaration_without_var_name_fragment
> ---
> 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 d755a11..8918981 100644
> --- a/src/compiler/glsl/ast_to_hir.cpp
> +++ b/src/compiler/glsl/ast_to_hir.cpp
> @@ -4223,6 +4223,17 @@ ast_declarator_list::hir(exec_list *instructions,
> type_name);
> } else {
> if (decl_type->base_type == GLSL_TYPE_ARRAY) {
> + /* From Section 13.22 (Array Declarations) of the GLSL ES 3.2
> + * spec:
> + *
> + * "... any declaration that leaves the size undefined is
> + * disallowed as this would add complexity and there are no
> + * use-cases."
> + */
> + if (state->es_shader && decl_type->is_unsized_array())
> + _mesa_glsl_error(&loc, state, "array size must be explicitly
"
> + "or implicitly defined");
Usual coding style is to add braces around multi-line branches.
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
> +
> /* From Section 4.12 (Empty Declarations) of the GLSL 4.5 spec:
> *
> * "The combinations of types and qualifiers that cause
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: This is a digitally signed message part.
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20160309/9b100c6d/attachment.sig>
More information about the mesa-dev
mailing list