st/mesa: fix up result_src.type when doing i2u/u2i conversions
authorIlia Mirkin <imirkin@alum.mit.edu>
Tue, 16 Feb 2016 07:12:29 +0000 (02:12 -0500)
committerIlia Mirkin <imirkin@alum.mit.edu>
Wed, 17 Feb 2016 18:30:33 +0000 (13:30 -0500)
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 <imirkin@alum.mit.edu>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Cc: mesa-stable@lists.freedesktop.org
src/mesa/state_tracker/st_glsl_to_tgsi.cpp

index db00fbd8f0fd430ef819d209c324e3a5a8dff37e..943582d447a6ecbdf34148132e7654eb5ca17b11 100644 (file)
@@ -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) {