Mesa (master): r200: Optimize polygon stipple emit.

Pauli Nieminen suokko at kemper.freedesktop.org
Fri Feb 5 13:27:27 UTC 2010


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

Author: Pauli Nieminen <suokkos at gmail.com>
Date:   Fri Feb  5 15:21:55 2010 +0200

r200: Optimize polygon stipple emit.

Only emit polygon stipple when the state is enabled.

---

 src/mesa/drivers/dri/r200/r200_state_init.c |   11 ++++++++++-
 1 files changed, 10 insertions(+), 1 deletions(-)

diff --git a/src/mesa/drivers/dri/r200/r200_state_init.c b/src/mesa/drivers/dri/r200/r200_state_init.c
index 4e8075e..51e8ac5 100644
--- a/src/mesa/drivers/dri/r200/r200_state_init.c
+++ b/src/mesa/drivers/dri/r200/r200_state_init.c
@@ -347,6 +347,15 @@ static int check_rrb(GLcontext *ctx, struct radeon_state_atom *atom)
    return atom->cmd_size;
 }
 
+static int check_polygon_stipple(GLcontext *ctx,
+		struct radeon_state_atom *atom)
+{
+   r200ContextPtr r200 = R200_CONTEXT(ctx);
+   if (r200->hw.set.cmd[SET_RE_CNTL] & R200_STIPPLE_ENABLE)
+	   return atom->cmd_size;
+   return 0;
+}
+
 static void mtl_emit(GLcontext *ctx, struct radeon_state_atom *atom)
 {
    r200ContextPtr r200 = R200_CONTEXT(ctx);
@@ -885,7 +894,7 @@ void r200InitState( r200ContextPtr rmesa )
       }
    }
 
-   ALLOC_STATE( stp, always, STP_STATE_SIZE, "STP/stp", 0 );
+   ALLOC_STATE( stp, polygon_stipple, STP_STATE_SIZE, "STP/stp", 0 );
 
    for (i = 0; i < 6; i++)
       if (rmesa->radeon.radeonScreen->kernel_mm)




More information about the mesa-commit mailing list