On Wednesday, January 27, 2016 5:18:29 PM PST Ilia Mirkin wrote:
> Signed-off-by: Ilia Mirkin <imir...@alum.mit.edu>
> ---
> 
> OK, ran piglit on all of this and noticed the issue with state == NULL in
> can_implicitly_convert_to. With that fixed, the only piglit regression is
> 
> spec/arb_blend_func_extended/arb_blend_func_extended-fbo-extended-blend-
pattern_gles3: pass fail
> 
> Which is precisely the piglit that spurred this whole discussion.
> 
> (Piglit run was tests/quick.py on i965/hsw + gbm.)
> 
>  src/compiler/glsl/ast_to_hir.cpp | 4 ++++
>  src/compiler/glsl_types.cpp      | 7 +++++++
>  2 files changed, 11 insertions(+)
> 
> diff --git a/src/compiler/glsl/ast_to_hir.cpp b/src/compiler/glsl/
ast_to_hir.cpp
> index dfd3196..3fca18a 100644
> --- a/src/compiler/glsl/ast_to_hir.cpp
> +++ b/src/compiler/glsl/ast_to_hir.cpp
> @@ -291,6 +291,10 @@ apply_implicit_conversion(const glsl_type *to, 
ir_rvalue * &from,
>     if (!state->is_version(120, 0))
>        return false;
>  
> +   /* ESSL does not allow implicit conversions */
> +   if (state->es_shader)
> +      return false;
> +
>     /* From page 27 (page 33 of the PDF) of the GLSL 1.50 spec:
>      *
>      *    "There are no implicit array or structure conversions. For
> diff --git a/src/compiler/glsl_types.cpp b/src/compiler/glsl_types.cpp
> index 17ebf07..ef6c3c6 100644
> --- a/src/compiler/glsl_types.cpp
> +++ b/src/compiler/glsl_types.cpp
> @@ -1139,6 +1139,13 @@ glsl_type::can_implicitly_convert_to(const glsl_type 
*desired,
>     if (this == desired)
>        return true;
>  
> +   /* 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.
> +    */
> +   if (state && state->es_shader)
> +      return false;
> +
>     /* There is no conversion among matrix types. */
>     if (this->matrix_columns > 1 || desired->matrix_columns > 1)
>        return false;
> 

Amazing!  It definitely doesn't have implicit conversions, and never
has...I checked both GLSL ES 1.00 and 3.20.  I'm also surprised we
didn't catch this sooner.  It seems like the sort of thing that
conformance tests would love to catch...

Reviewed-by: Kenneth Graunke <kenn...@whitecape.org>

Attachment: signature.asc
Description: This is a digitally signed message part.

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to