[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