[Mesa-dev] [PATCH] glsl: allow the #extension directive within code blocks for the dri option

Timothy Arceri tarceri at itsqueeze.com
Wed Apr 10 00:20:09 UTC 2019


Acked-by: Timothy Arceri <tarceri at itsqueeze.com>

On 10/4/19 9:39 am, Marek Olšák wrote:
> From: Marek Olšák <marek.olsak at amd.com>
> 
> for Viewperf 13
> ---
>   src/compiler/glsl/glsl_parser.yy | 9 +++++++++
>   1 file changed, 9 insertions(+)
> 
> diff --git a/src/compiler/glsl/glsl_parser.yy b/src/compiler/glsl/glsl_parser.yy
> index 8d6c47fb6a3..b91c24ebe97 100644
> --- a/src/compiler/glsl/glsl_parser.yy
> +++ b/src/compiler/glsl/glsl_parser.yy
> @@ -2531,20 +2531,29 @@ statement_list:
>      }
>      | statement_list statement
>      {
>         if ($2 == NULL) {
>            _mesa_glsl_error(& @2, state, "<nil> statement");
>            assert($2 != NULL);
>         }
>         $$ = $1;
>         $$->link.insert_before(& $2->link);
>      }
> +   | statement_list extension_statement
> +   {
> +      if (!state->allow_extension_directive_midshader) {
> +         _mesa_glsl_error(& @1, state,
> +                          "#extension directive is not allowed "
> +                          "in the middle of a shader");
> +         YYERROR;
> +      }
> +   }
>      ;
>   
>   expression_statement:
>      ';'
>      {
>         void *ctx = state->linalloc;
>         $$ = new(ctx) ast_expression_statement(NULL);
>         $$->set_location(@1);
>      }
>      | expression ';'
> 


More information about the mesa-dev mailing list