Mesa (master): st/mesa: make sure to create a "clean" bool when doing i2b

Ilia Mirkin imirkin at kemper.freedesktop.org
Mon May 11 19:53:27 UTC 2015


Module: Mesa
Branch: master
Commit: 2b5355c8ab383d86bb6332dd29c417a6a1bc52bd
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=2b5355c8ab383d86bb6332dd29c417a6a1bc52bd

Author: Ilia Mirkin <imirkin at alum.mit.edu>
Date:   Wed May  6 23:29:33 2015 -0400

st/mesa: make sure to create a "clean" bool when doing i2b

i2b has to work for all integers, not just 1. INEG would not necessarily
result with all bits set, which is something that other operations can
rely on by e.g. using AND (or INEG for b2i).

Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>
Reviewed-by: Jason Ekstrand <jason.ekstrand at intel.com>
Reviewed-by: Marek Olšák <marek.olsak at amd.com>
Reviewed-by: Roland Scheidegger <sroland at vmware.com>
Cc: mesa-stable at lists.freedesktop.org

---

 src/mesa/state_tracker/st_glsl_to_tgsi.cpp |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
index 1fea860..f0f2a77 100644
--- a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
+++ b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
@@ -1953,7 +1953,7 @@ glsl_to_tgsi_visitor::visit(ir_expression *ir)
       break;
    case ir_unop_i2b:
       if (native_integers)
-         emit(ir, TGSI_OPCODE_INEG, result_dst, op[0]);
+         emit(ir, TGSI_OPCODE_USNE, result_dst, op[0], st_src_reg_for_int(0));
       else
          emit(ir, TGSI_OPCODE_SNE, result_dst, op[0], st_src_reg_for_float(0.0));
       break;




More information about the mesa-commit mailing list