summaryrefslogtreecommitdiff
path: root/src/mesa/drivers/dri
diff options
context:
space:
mode:
authorPauli Nieminen <suokkos@gmail.com>2010-02-05 15:21:55 +0200
committerPauli Nieminen <suokkos@gmail.com>2010-02-05 15:26:19 +0200
commit6785a8aaf4bff5f607731fdc6f19189c1088112f (patch)
tree7037a149e18bddbdf49df2c11f163f2c29d1380c /src/mesa/drivers/dri
parent05b04084892cc54e52010837de8fd85cd64d3b7a (diff)
r200: Optimize polygon stipple emit.
Only emit polygon stipple when the state is enabled.
Diffstat (limited to 'src/mesa/drivers/dri')
-rw-r--r--src/mesa/drivers/dri/r200/r200_state_init.c11
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 4e8075eabc..51e8ac56d8 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)