No shader-db changes, so perhaps adding a test on test_fs_cmod_propagation? In any case, the patch looks good to me:
Reviewed-by: Alejandro Piñeiro <apinhe...@igalia.com> On 14/09/18 00:06, Ian Romanick wrote: > From: Ian Romanick <ian.d.roman...@intel.com> > > No shader-db changes on any Intel platform... which probably explains > why no bugs have been bisected to this problem since it landed in Mesa > 18.1. :( The commit mentioned below is in 18.2, so 18.1 would need a > slightly different fix (due to code refactoring). > > Signed-off-by: Ian Romanick <ian.d.roman...@intel.com> > Fixes: 77f269bb560 "i965/fs: Refactor propagation of conditional modifiers > from compares to adds" > Cc: Matt Turner <matts...@gmail.com> (reviewed the original patch) > Cc: Alejandro Piñeiro <apinhe...@igalia.com> (reviewed the original patch) > --- > src/intel/compiler/brw_fs_cmod_propagation.cpp | 10 +++++++++- > 1 file changed, 9 insertions(+), 1 deletion(-) > > diff --git a/src/intel/compiler/brw_fs_cmod_propagation.cpp > b/src/intel/compiler/brw_fs_cmod_propagation.cpp > index 5b74f267359..5fb522f810f 100644 > --- a/src/intel/compiler/brw_fs_cmod_propagation.cpp > +++ b/src/intel/compiler/brw_fs_cmod_propagation.cpp > @@ -211,9 +211,17 @@ opt_cmod_propagation_local(const gen_device_info > *devinfo, bblock_t *block) > /* A CMP with a second source of zero can match with anything. A CMP > * with a second source that is not zero can only match with an ADD > * instruction. > + * > + * Only apply this optimization to float-point sources. It can fail > for > + * integers. For inputs a = 0x80000000, b = 4, int(0x80000000) < 4, > but > + * int(0x80000000) - 4 overflows and results in 0x7ffffffc. that's not > + * less than zero, so the flags get set differently than for (a < b). > */ > if (inst->opcode == BRW_OPCODE_CMP && !inst->src[1].is_zero()) { > - progress = cmod_propagate_cmp_to_add(devinfo, block, inst) || > progress; > + if (brw_reg_type_is_floating_point(inst->src[0].type) && > + cmod_propagate_cmp_to_add(devinfo, block, inst)) > + progress = true; > + > continue; > } > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev