You can either move the function or add the function forward declaration. In any case,
Reviewed-by: Samuel Iglesias Gonsálvez <sigles...@igalia.com> Sam On 05/11/15 12:33, Tapani Pälli wrote: > From: Iago Toral Quiroga <ito...@igalia.com> > > We will need this to build later patches > --- > src/glsl/ast_to_hir.cpp | 71 > ++++++++++++++++++++++++------------------------- > 1 file changed, 35 insertions(+), 36 deletions(-) > > diff --git a/src/glsl/ast_to_hir.cpp b/src/glsl/ast_to_hir.cpp > index d20be0b..b6d662b 100644 > --- a/src/glsl/ast_to_hir.cpp > +++ b/src/glsl/ast_to_hir.cpp > @@ -2159,6 +2159,41 @@ process_array_type(YYLTYPE *loc, const glsl_type *base, > return array_type; > } > > +static bool > +precision_qualifier_allowed(const glsl_type *type) > +{ > + /* Precision qualifiers apply to floating point, integer and opaque > + * types. > + * > + * Section 4.5.2 (Precision Qualifiers) of the GLSL 1.30 spec says: > + * "Any floating point or any integer declaration can have the type > + * preceded by one of these precision qualifiers [...] Literal > + * constants do not have precision qualifiers. Neither do Boolean > + * variables. > + * > + * Section 4.5 (Precision and Precision Qualifiers) of the GLSL 1.30 > + * spec also says: > + * > + * "Precision qualifiers are added for code portability with OpenGL > + * ES, not for functionality. They have the same syntax as in OpenGL > + * ES." > + * > + * Section 8 (Built-In Functions) of the GLSL ES 1.00 spec says: > + * > + * "uniform lowp sampler2D sampler; > + * highp vec2 coord; > + * ... > + * lowp vec4 col = texture2D (sampler, coord); > + * // texture2D returns lowp" > + * > + * From this, we infer that GLSL 1.30 (and later) should allow precision > + * qualifiers on sampler types just like float and integer types. > + */ > + return type->is_float() > + || type->is_integer() > + || type->is_record() > + || type->contains_opaque(); > +} > > const glsl_type * > ast_type_specifier::glsl_type(const char **name, > @@ -3645,42 +3680,6 @@ validate_identifier(const char *identifier, YYLTYPE > loc, > } > } > > -static bool > -precision_qualifier_allowed(const glsl_type *type) > -{ > - /* Precision qualifiers apply to floating point, integer and opaque > - * types. > - * > - * Section 4.5.2 (Precision Qualifiers) of the GLSL 1.30 spec says: > - * "Any floating point or any integer declaration can have the type > - * preceded by one of these precision qualifiers [...] Literal > - * constants do not have precision qualifiers. Neither do Boolean > - * variables. > - * > - * Section 4.5 (Precision and Precision Qualifiers) of the GLSL 1.30 > - * spec also says: > - * > - * "Precision qualifiers are added for code portability with OpenGL > - * ES, not for functionality. They have the same syntax as in OpenGL > - * ES." > - * > - * Section 8 (Built-In Functions) of the GLSL ES 1.00 spec says: > - * > - * "uniform lowp sampler2D sampler; > - * highp vec2 coord; > - * ... > - * lowp vec4 col = texture2D (sampler, coord); > - * // texture2D returns lowp" > - * > - * From this, we infer that GLSL 1.30 (and later) should allow precision > - * qualifiers on sampler types just like float and integer types. > - */ > - return type->is_float() > - || type->is_integer() > - || type->is_record() > - || type->contains_opaque(); > -} > - > ir_rvalue * > ast_declarator_list::hir(exec_list *instructions, > struct _mesa_glsl_parse_state *state) > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev