Mesa (master): i965: Make rasterization of single and multiple quad prims match.

Eric Anholt anholt at kemper.freedesktop.org
Mon May 17 17:53:07 UTC 2010


Module: Mesa
Branch: master
Commit: f0fb3aa5d42f76babbe6571480d4fe1a8e8cb8ae
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=f0fb3aa5d42f76babbe6571480d4fe1a8e8cb8ae

Author: Eric Anholt <eric at anholt.net>
Date:   Mon May 17 10:42:25 2010 -0700

i965: Make rasterization of single and multiple quad prims match.

This is trying to follow the spirit of the invariance rules, though
they're not specific on this point.  Fixes quad-invariance piglit test
while retaining the 22s -> 18s win on glean blendFunc.

This was a regression in c67d9d84f501f145f841c0b981caff6f4dfd936f.

---

 src/mesa/drivers/dri/i965/brw_gs.c |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_gs.c b/src/mesa/drivers/dri/i965/brw_gs.c
index 5fac67c..94d93f3 100644
--- a/src/mesa/drivers/dri/i965/brw_gs.c
+++ b/src/mesa/drivers/dri/i965/brw_gs.c
@@ -173,6 +173,12 @@ static void populate_key( struct brw_context *brw,
    
    /* _NEW_LIGHT */
    key->pv_first = (ctx->Light.ProvokingVertex == GL_FIRST_VERTEX_CONVENTION);
+   if (key->primitive == GL_QUADS && ctx->Light.ShadeModel != GL_FLAT) {
+      /* Provide consistent primitive order with brw_set_prim's
+       * optimization of single quads to trifans.
+       */
+      key->pv_first = GL_TRUE;
+   }
 
    key->need_gs_prog = (key->hint_gs_always ||
 			brw->primitive == GL_QUADS ||




More information about the mesa-commit mailing list