On Tuesday, February 16, 2016 2:13:59 AM PST Ilia Mirkin wrote:
> Even though it's a no-op, it's important to keep track of the type so
> that we can pick the properly-signed op later on.
> 
> This fixes dEQP-GLES3.functional.shaders.precision.uint.highp_div_fragment,
> which ended up using IDIV instead of UDIV.
> 
> Signed-off-by: Ilia Mirkin <[email protected]>
> Cc: [email protected]
> ---
>  src/mesa/state_tracker/st_glsl_to_tgsi.cpp | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp b/src/mesa/
state_tracker/st_glsl_to_tgsi.cpp
> index db00fbd..943582d 100644
> --- a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
> +++ b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
> @@ -1979,6 +1979,7 @@ glsl_to_tgsi_visitor::visit(ir_expression *ir)
>     case ir_unop_u2i:
>        /* Converting between signed and unsigned integers is a no-op. */
>        result_src = op[0];
> +      result_src.type = result_dst.type;
>        break;
>     case ir_unop_b2i:
>        if (native_integers) {
> 

Good catch!  result_src and result_dst both have the type of the
expression result (i.e. unsigned for i2u), and that's what we want
for the result.  Not the operand type.

Reviewed-by: Kenneth Graunke <[email protected]>

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

_______________________________________________
mesa-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to