--- src/intel/compiler/brw_fs_generator.cpp | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-)
diff --git a/src/intel/compiler/brw_fs_generator.cpp b/src/intel/compiler/brw_fs_generator.cpp index 0854709b272..f2bdac7d731 100644 --- a/src/intel/compiler/brw_fs_generator.cpp +++ b/src/intel/compiler/brw_fs_generator.cpp @@ -673,6 +673,7 @@ fs_generator::generate_linterp(fs_inst *inst, struct brw_reg delta_x = src[0]; struct brw_reg delta_y = offset(src[0], inst->exec_size / 8); struct brw_reg interp = src[1]; + brw_inst *i[2]; if (devinfo->gen >= 11) { struct brw_reg acc = retype(brw_acc_reg(8), BRW_REGISTER_TYPE_NF); @@ -727,11 +728,19 @@ fs_generator::generate_linterp(fs_inst *inst, return false; } else { - brw_LINE(p, brw_null_reg(), interp, delta_x); - brw_MAC(p, dst, suboffset(interp, 1), delta_y); - - return true; + i[0] = brw_LINE(p, brw_null_reg(), interp, delta_x); + i[1] = brw_MAC(p, dst, suboffset(interp, 1), delta_y); } + + brw_inst_set_cond_modifier(p->devinfo, i[1], inst->conditional_mod); + + /* brw_set_default_saturate() is called before emitting instructions, so the + * saturate bit is set in each instruction, so we need to unset it on the + * first instruction. + */ + brw_inst_set_saturate(p->devinfo, i[0], false); + + return true; } void -- 2.16.1 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev