[Mesa-dev] [PATCH 1/2] glsl/types: disallow implicit conversions before GLSL 1.20

Timothy Arceri timothy.arceri at collabora.com
Sun Jul 31 23:35:23 UTC 2016


On Sun, 2016-07-31 at 18:43 +0300, Andres Gomez wrote:
> Implicit conversions were added in the GLSL 1.20 spec version.

Does this help fix the CTS test or are you just adding it because you
noticed it?

Also I'd probably just add this to the ES check bellow.

   /* GLSL 1.10 and ESSL do not allow implicit conversions.
    * If there is no state, we're doing intra-stage function
    * linking where these checks have already been done.
    */
   if (state && (state->es_shader || !state->is_version(120, 0)))
      return false;

> 
> Signed-off-by: Andres Gomez <agomez at igalia.com>
> ---
>  src/compiler/glsl_types.cpp | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/src/compiler/glsl_types.cpp
> b/src/compiler/glsl_types.cpp
> index 8a06695..24aec25 100644
> --- a/src/compiler/glsl_types.cpp
> +++ b/src/compiler/glsl_types.cpp
> @@ -1384,6 +1384,10 @@ glsl_type::can_implicitly_convert_to(const
> glsl_type *desired,
>     if (this == desired)
>        return true;
>  
> +   /* Prior to GLSL 1.20, there are no implicit conversions */
> +   if (state && !state->is_version(120, 0))
> +      return false;
> +
>     /* ESSL does not allow implicit conversions. If there is no
> state, we're
>      * doing intra-stage function linking where these checks have
> already been
>      * done.


More information about the mesa-dev mailing list