On Mon, Jul 11, 2016 at 7:31 PM, Ilia Mirkin <imir...@alum.mit.edu> wrote: > On Mon, Jul 11, 2016 at 1:28 PM, Marek Olšák <mar...@gmail.com> wrote: >> From: Marek Olšák <marek.ol...@amd.com> >> >> This bug is uncovered by glsl/lower_if_to_cond_assign. >> I don't know if it can be reproduced in any other way. >> >> Cc: <mesa-sta...@lists.freedesktop.org> >> --- >> src/mesa/state_tracker/st_glsl_to_tgsi.cpp | 12 +++++++----- >> 1 file changed, 7 insertions(+), 5 deletions(-) >> >> diff --git a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp >> b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp >> index 76656f5..0b7feb7 100644 >> --- a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp >> +++ b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp >> @@ -1958,12 +1958,14 @@ >> glsl_to_tgsi_visitor::visit_expression(ir_expression* ir, st_src_reg *op) >> emit_asm(ir, TGSI_OPCODE_TRUNC, result_dst, op[0]); >> break; >> case ir_unop_bitcast_f2i: >> - result_src = op[0]; >> - result_src.type = GLSL_TYPE_INT; >> - break; >> case ir_unop_bitcast_f2u: >> - result_src = op[0]; >> - result_src.type = GLSL_TYPE_UINT; >> + /* Make sure we don't propagate the negate modifier to integer >> opcodes. */ >> + if (op[0].negate) > > Or abs or saturate, presumably?
glsl_to_tgsi doesn't use ureg_abs. saturate is a dst modifier and this patch operates on src operands. Marek _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev