From: Matt Turner Date: Thu, 3 Apr 2014 20:57:44 +0000 (-0700) Subject: i965/fs: Don't propagate saturation modifiers if there are source modifiers. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=92d03f7f2878b15a41077e1ea11962a47c1d9b29;p=mesa.git i965/fs: Don't propagate saturation modifiers if there are source modifiers. Which would lead to translating mad vgrf9:F, vgrf3:F, u0:F, vgrf6:F mov.sat vgrf7:F, -vgrf9:F into mad.sat vgrf9:F, vgrf3:F, u0:F, vgrf6:F mov vgrf7:F, -vgrf9:F Fixes some lighting effects in Dota2. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=76749 Reviewed-by: Ian Romanick --- diff --git a/src/mesa/drivers/dri/i965/brw_fs_saturate_propagation.cpp b/src/mesa/drivers/dri/i965/brw_fs_saturate_propagation.cpp index 4f3dcff500e..35e67740137 100644 --- a/src/mesa/drivers/dri/i965/brw_fs_saturate_propagation.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs_saturate_propagation.cpp @@ -42,6 +42,8 @@ opt_saturate_propagation_local(fs_visitor *v, bblock_t *block) if (inst->opcode != BRW_OPCODE_MOV || inst->dst.file != GRF || inst->src[0].file != GRF || + inst->src[0].abs || + inst->src[0].negate || !inst->saturate) continue;