Mesa (master): nvfx: make stipple setting independent of enable

Luca Barbieri lb at kemper.freedesktop.org
Sun Aug 22 13:42:32 UTC 2010


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

Author: Luca Barbieri <luca at luca-barbieri.com>
Date:   Sun Aug 22 11:58:54 2010 +0200

nvfx: make stipple setting independent of enable

---

 src/gallium/drivers/nvfx/nvfx_context.c       |    1 -
 src/gallium/drivers/nvfx/nvfx_context.h       |    1 -
 src/gallium/drivers/nvfx/nvfx_state.c         |    7 -------
 src/gallium/drivers/nvfx/nvfx_state_stipple.c |   21 +++------------------
 4 files changed, 3 insertions(+), 27 deletions(-)

diff --git a/src/gallium/drivers/nvfx/nvfx_context.c b/src/gallium/drivers/nvfx/nvfx_context.c
index 94c854b..8e85201 100644
--- a/src/gallium/drivers/nvfx/nvfx_context.c
+++ b/src/gallium/drivers/nvfx/nvfx_context.c
@@ -90,7 +90,6 @@ nvfx_create(struct pipe_screen *pscreen, void *priv)
 
 	/* set these to that we init them on first validation */
 	nvfx->state.scissor_enabled = ~0;
-	nvfx->state.stipple_enabled = ~0;
 	nvfx->use_vertex_buffers = -1;
 
 	LIST_INITHEAD(&nvfx->render_cache);
diff --git a/src/gallium/drivers/nvfx/nvfx_context.h b/src/gallium/drivers/nvfx/nvfx_context.h
index 83c44ef..63fbce8 100644
--- a/src/gallium/drivers/nvfx/nvfx_context.h
+++ b/src/gallium/drivers/nvfx/nvfx_context.h
@@ -68,7 +68,6 @@ struct nvfx_blend_state {
 
 struct nvfx_state {
 	unsigned scissor_enabled;
-	unsigned stipple_enabled;
 	unsigned fp_samplers;
 	unsigned render_temps;
 };
diff --git a/src/gallium/drivers/nvfx/nvfx_state.c b/src/gallium/drivers/nvfx/nvfx_state.c
index c843164..e3c3fcb 100644
--- a/src/gallium/drivers/nvfx/nvfx_state.c
+++ b/src/gallium/drivers/nvfx/nvfx_state.c
@@ -173,13 +173,6 @@ nvfx_rasterizer_state_bind(struct pipe_context *pipe, void *hwcso)
 			nvfx->draw_dirty |= NVFX_NEW_SCISSOR;
 		}
 
-		if(((struct nvfx_rasterizer_state*)hwcso)->pipe.poly_stipple_enable
-					!= nvfx->rasterizer->pipe.poly_stipple_enable)
-		{
-			nvfx->dirty |= NVFX_NEW_STIPPLE;
-			nvfx->draw_dirty |= NVFX_NEW_STIPPLE;
-		}
-
 		if(((struct nvfx_rasterizer_state*)hwcso)->pipe.point_quad_rasterization != nvfx->rasterizer->pipe.point_quad_rasterization
 				|| ((struct nvfx_rasterizer_state*)hwcso)->pipe.sprite_coord_enable != nvfx->rasterizer->pipe.sprite_coord_enable)
 		{
diff --git a/src/gallium/drivers/nvfx/nvfx_state_stipple.c b/src/gallium/drivers/nvfx/nvfx_state_stipple.c
index 4da968f..b76e9dd 100644
--- a/src/gallium/drivers/nvfx/nvfx_state_stipple.c
+++ b/src/gallium/drivers/nvfx/nvfx_state_stipple.c
@@ -4,23 +4,8 @@ void
 nvfx_state_stipple_validate(struct nvfx_context *nvfx)
 {
 	struct nouveau_channel *chan = nvfx->screen->base.channel;
-	struct pipe_rasterizer_state *rast = &nvfx->rasterizer->pipe;
 
-	if ((rast->poly_stipple_enable == 0 && nvfx->state.stipple_enabled == 0))
-		return;
-
-	if (rast->poly_stipple_enable) {
-		unsigned i;
-
-		WAIT_RING(chan, 35);
-		OUT_RING(chan, RING_3D(NV34TCL_POLYGON_STIPPLE_ENABLE, 1));
-		OUT_RING(chan, 1);
-		OUT_RING(chan, RING_3D(NV34TCL_POLYGON_STIPPLE_PATTERN(0), 32));
-		for (i = 0; i < 32; i++)
-			OUT_RING(chan, nvfx->stipple[i]);
-	} else {
-		WAIT_RING(chan, 2);
-		OUT_RING(chan, RING_3D(NV34TCL_POLYGON_STIPPLE_ENABLE, 1));
-		OUT_RING(chan, 0);
-	}
+	WAIT_RING(chan, 33);
+	OUT_RING(chan, RING_3D(NV34TCL_POLYGON_STIPPLE_PATTERN(0), 32));
+	OUT_RINGp(chan, nvfx->stipple, 32);
 }




More information about the mesa-commit mailing list