diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp b/src/mesa/drivers/dri/i965/brw_fs.cpp index 45b75cb2f70..8d98b0d30ab 100644 --- a/src/mesa/drivers/dri/i965/brw_fs.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs.cpp @@ -1177,16 +1177,21 @@ fs_visitor::emit_general_interpolation(ir_variable *ir) emit(FS_OPCODE_MOV_DISPATCH_TO_FLAGS); fs_inst *inst; + inst = emit_linterp(attr, fs_reg(interp), interpolation_mode, + false, false); + inst->predicate = BRW_PREDICATE_NORMAL; + inst->predicate_inverse = true; + if (brw->has_pln) + inst->no_dd_clear = true; + inst = emit_linterp(attr, fs_reg(interp), interpolation_mode, ir->data.centroid && !key->persample_shading, ir->data.sample || key->persample_shading); inst->predicate = BRW_PREDICATE_NORMAL; inst->predicate_inverse = false; + if (brw->has_pln) + inst->no_dd_check = true; - inst = emit_linterp(attr, fs_reg(interp), interpolation_mode, - false, false); - inst->predicate = BRW_PREDICATE_NORMAL; - inst->predicate_inverse = true; } else { emit_linterp(attr, fs_reg(interp), interpolation_mode, ir->data.centroid && !key->persample_shading,