i965: Set point rasterization rule to UPPER_RIGHT on Gen6-7.5.
authorKenneth Graunke <kenneth@whitecape.org>
Thu, 27 Apr 2017 05:34:50 +0000 (22:34 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Sat, 29 Apr 2017 00:03:33 +0000 (17:03 -0700)
Gen4-5 and Gen8+ already set this, but Gen6-7.5 did not.  We ought to
be consistent - the answer depends on the API, not the hardware generation.

The Sandybridge PRM says about RASTRULE_UPPER_RIGHT:

   "To match OpenGL point rasterization rules (round to +infinity, where
    this is the upper right direction wrt OpenGL screen origin of lower
    left).

So this is likely the one we should use.

Reviewed-by: Rafael Antognolli <rafael.antognolli@intel.com>
src/mesa/drivers/dri/i965/gen6_wm_state.c
src/mesa/drivers/dri/i965/gen7_wm_state.c

index aabae70d10bb2e20d06b2e28bec76e8e59302ff2..2fb2a33385323e937070fd3cb39ee2db3bc3088d 100644 (file)
@@ -199,6 +199,8 @@ gen6_upload_wm_state(struct brw_context *brw,
       dw6 |= GEN6_WM_MSDISPMODE_PERSAMPLE;
    }
 
+   dw6 |= GEN6_WM_POINT_RASTRULE_UPPER_RIGHT;
+
    /* From the SNB PRM, volume 2 part 1, page 281:
     * "If the PS kernel does not need the Position XY Offsets
     * to compute a Position XY value, then this field should be
index 1c33db4d3b5e14365e0b22db61ea026780e12015..5efe55a0088a54f821346539bea65538afdcacf8 100644 (file)
@@ -51,6 +51,7 @@ upload_wm_state(struct brw_context *brw)
    dw1 |= GEN7_WM_STATISTICS_ENABLE;
    dw1 |= GEN7_WM_LINE_AA_WIDTH_1_0;
    dw1 |= GEN7_WM_LINE_END_CAP_AA_WIDTH_0_5;
+   dw1 |= GEN7_WM_POINT_RASTRULE_UPPER_RIGHT;
 
    /* _NEW_LINE */
    if (ctx->Line.StippleFlag)