From 493af150fb3b1c007d791b24dcd5ea8a92ad763c Mon Sep 17 00:00:00 2001 From: Neil Roberts Date: Fri, 3 Jul 2015 13:15:21 +0100 Subject: i965/skl: Set the pulls bary bit in 3DSTATE_PS_EXTRA On Gen9+ there is a new bit in 3DSTATE_PS_EXTRA that must be set if the shader sends a message to the pixel interpolator. This fixes the interpolateAt* tests on SKL, apart from interpolateatsample-nonconst but that is not implemented anywhere so it's not a regression. Reviewed-by: Ben Widawsky Reviewed-by: Kenneth Graunke Cc: "10.6 10.5" --- src/mesa/drivers/dri/i965/brw_fs_nir.cpp | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src/mesa/drivers/dri/i965/brw_fs_nir.cpp') diff --git a/src/mesa/drivers/dri/i965/brw_fs_nir.cpp b/src/mesa/drivers/dri/i965/brw_fs_nir.cpp index bd71404ef8d..3ebc3a2c5e4 100644 --- a/src/mesa/drivers/dri/i965/brw_fs_nir.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs_nir.cpp @@ -1481,6 +1481,10 @@ fs_visitor::nir_emit_intrinsic(const fs_builder &bld, nir_intrinsic_instr *instr case nir_intrinsic_interp_var_at_centroid: case nir_intrinsic_interp_var_at_sample: case nir_intrinsic_interp_var_at_offset: { + assert(stage == MESA_SHADER_FRAGMENT); + + ((struct brw_wm_prog_data *) prog_data)->pulls_bary = true; + fs_reg dst_xy = bld.vgrf(BRW_REGISTER_TYPE_F, 2); /* For most messages, we need one reg of ignored data; the hardware -- cgit v1.2.3