From: Ilia Mirkin Date: Thu, 7 May 2015 03:29:33 +0000 (-0400) Subject: st/mesa: make sure to create a "clean" bool when doing i2b X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=2b5355c8ab383d86bb6332dd29c417a6a1bc52bd;p=mesa.git 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 Reviewed-by: Jason Ekstrand Reviewed-by: Marek Olšák Reviewed-by: Roland Scheidegger Cc: mesa-stable@lists.freedesktop.org --- diff --git a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp index 1fea8600a75..f0f2a77d065 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;