summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/gallium/drivers/nv10/nv10_state.c4
-rw-r--r--src/gallium/drivers/nv10/nv10_state.h2
2 files changed, 6 insertions, 0 deletions
diff --git a/src/gallium/drivers/nv10/nv10_state.c b/src/gallium/drivers/nv10/nv10_state.c
index 12722709f6b..182f6857f5b 100644
--- a/src/gallium/drivers/nv10/nv10_state.c
+++ b/src/gallium/drivers/nv10/nv10_state.c
@@ -282,6 +282,8 @@ nv10_rasterizer_state_create(struct pipe_context *pipe,
*/
rs = malloc(sizeof(struct nv10_rasterizer_state));
+ rs->templ = cso;
+
rs->shade_model = cso->flatshade ? 0x1d00 : 0x1d01;
rs->line_width = (unsigned char)(cso->line_width * 8.0) & 0xff;
@@ -347,6 +349,8 @@ nv10_rasterizer_state_bind(struct pipe_context *pipe, void *rast)
nv10->rast = (struct nv10_rasterizer_state*)rast;
+ draw_set_rasterizer_state(nv10->draw, (nv10->rast ? nv10->rast->templ : NULL));
+
nv10->dirty |= NV10_NEW_RAST;
}
diff --git a/src/gallium/drivers/nv10/nv10_state.h b/src/gallium/drivers/nv10/nv10_state.h
index 9bda8a7d6a3..3ca501d1356 100644
--- a/src/gallium/drivers/nv10/nv10_state.h
+++ b/src/gallium/drivers/nv10/nv10_state.h
@@ -39,6 +39,8 @@ struct nv10_rasterizer_state {
uint32_t cull_face_en;
uint32_t point_sprite;
+
+ const struct pipe_rasterizer_state *templ;
};
struct nv10_vertex_program_exec {