summaryrefslogtreecommitdiffstats
path: root/src/mesa
diff options
context:
space:
mode:
authorKenneth Graunke <[email protected]>2014-02-10 17:31:00 -0800
committerKenneth Graunke <[email protected]>2014-02-19 15:42:16 -0800
commit61d7ea4b16b1d5effd273027c21cf64841b67b78 (patch)
tree573c5235065191764bb4dd2fba7dbcfafd80dc11 /src/mesa
parent01c42b2be64ec83c28230c1f8e1cbb2c5f5bd690 (diff)
i965: Set "Position XY Offset Select" bits in 3DSTATE_PS on Broadwell.
Signed-off-by: Kenneth Graunke <[email protected]> Reviewed-by: Eric Anholt <[email protected]> Reviewed-by: Anuj Phogat <[email protected]>
Diffstat (limited to 'src/mesa')
-rw-r--r--src/mesa/drivers/dri/i965/gen8_ps_state.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/i965/gen8_ps_state.c b/src/mesa/drivers/dri/i965/gen8_ps_state.c
index 5b7aa34a72d..c25b82757c1 100644
--- a/src/mesa/drivers/dri/i965/gen8_ps_state.c
+++ b/src/mesa/drivers/dri/i965/gen8_ps_state.c
@@ -184,6 +184,24 @@ upload_ps_state(struct brw_context *brw)
if (brw->wm.prog_data->prog_offset_16)
dw6 |= GEN7_PS_16_DISPATCH_ENABLE;
+ /* From the documentation for this packet:
+ * "If the PS kernel does not need the Position XY Offsets to
+ * compute a Position Value, then this field should be programmed
+ * to POSOFFSET_NONE."
+ *
+ * "SW Recommendation: If the PS kernel needs the Position Offsets
+ * to compute a Position XY value, this field should match Position
+ * ZW Interpolation Mode to ensure a consistent position.xyzw
+ * computation."
+ *
+ * We only require XY sample offsets. So, this recommendation doesn't
+ * look useful at the moment. We might need this in future.
+ */
+ if (brw->wm.prog_data->uses_pos_offset)
+ dw6 |= GEN7_PS_POSOFFSET_SAMPLE;
+ else
+ dw6 |= GEN7_PS_POSOFFSET_NONE;
+
dw7 |=
brw->wm.prog_data->first_curbe_grf << GEN7_PS_DISPATCH_START_GRF_SHIFT_0 |
brw->wm.prog_data->first_curbe_grf_16<< GEN7_PS_DISPATCH_START_GRF_SHIFT_2;