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 <kenn...@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, >
signature.asc
Description: This is a digitally signed message part.
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev