[Mesa-dev] [PATCH 4/7] glsl: Move the definition of precision_qualifier_allowed

Samuel Iglesias Gonsálvez siglesias at igalia.com
Wed Nov 11 04:27:53 PST 2015


You can either move the function or add the function forward declaration.

In any case,

Reviewed-by: Samuel Iglesias Gonsálvez <siglesias at igalia.com>

Sam

On 05/11/15 12:33, Tapani Pälli wrote:
> From: Iago Toral Quiroga <itoral at 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)
> 


More information about the mesa-dev mailing list