I know nothing about TGSI but this looks perfectly reasonable to me. Reviewed-by: Jason Ekstrand <jason.ekstr...@intel.com>
On Wed, May 6, 2015 at 8:33 PM, Ilia Mirkin <imir...@alum.mit.edu> wrote: > 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 <imir...@alum.mit.edu> > --- > > Found by observation. Noticed a weird pattern in the generated code, > which led up to this. > > 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 93671ba..8a591b9 100644 > --- a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp > +++ b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp > @@ -1941,7 +1941,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; > -- > 2.3.6 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev