[Mesa-dev] [PATCH 12/17] glsl/ast: Allow redeclaration of gl_LastFragData with different precision qualifier.

Kenneth Graunke kenneth at whitecape.org
Thu Jul 28 06:14:03 UTC 2016


On Wednesday, July 20, 2016 9:49:42 PM PDT Francisco Jerez wrote:
> ---
>  src/compiler/glsl/ast_to_hir.cpp | 13 +++++++++++++
>  1 file changed, 13 insertions(+)
> 
> diff --git a/src/compiler/glsl/ast_to_hir.cpp b/src/compiler/glsl/ast_to_hir.cpp
> index c050a3f..ac651a9 100644
> --- a/src/compiler/glsl/ast_to_hir.cpp
> +++ b/src/compiler/glsl/ast_to_hir.cpp
> @@ -3948,6 +3948,19 @@ get_variable_being_redeclared(ir_variable *var, YYLTYPE loc,
>  
>        earlier->data.depth_layout = var->data.depth_layout;
>  
> +   } else if (state->has_framebuffer_fetch() &&
> +              !state->is_version(420, 300) &&

I think you can drop the is_version check - there won't be an
gl_LastFragData to redeclare in the other case, so earlier == NULL
and we would have bailed out earlier.

With the caveat that I haven't seen the specs, and am just assuming
they work like I think they should, the series looks good to me.

For the series:
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

> +              strcmp(var->name, "gl_LastFragData") == 0 &&
> +              var->type == earlier->type &&
> +              var->data.mode == ir_var_auto) {
> +      /* According to the EXT_shader_framebuffer_fetch spec:
> +       *
> +       *   "By default, gl_LastFragData is declared with the mediump precision
> +       *    qualifier. This can be changed by redeclaring the corresponding
> +       *    variables with the desired precision qualifier."
> +       */
> +      earlier->data.precision = var->data.precision;
> +
>     } else if (allow_all_redeclarations) {
>        if (earlier->data.mode != var->data.mode) {
>           _mesa_glsl_error(&loc, state,
> 

-------------- 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/20160727/4708191c/attachment.sig>


More information about the mesa-dev mailing list