summaryrefslogtreecommitdiff
path: root/src/gallium/auxiliary/draw/draw_pipe_validate.c
diff options
context:
space:
mode:
authorBrian Paul <brianp@vmware.com>2010-04-21 14:24:26 -0600
committerBrian Paul <brianp@vmware.com>2010-04-21 14:25:28 -0600
commit8cb223eb020560d59c8f73e09b832cef477933b7 (patch)
treedc3f6ba4e4d4fa0b106ac05be205cb8f8535ecda /src/gallium/auxiliary/draw/draw_pipe_validate.c
parentd30ab4394e7c6b1f3508eb68d673fbf315907781 (diff)
gallium/draw: fix point sprite handling
New draw API function to indicate whether or not to convert points to quads for sprite rasterization. Fix point-to-quad conversion regression in the wide-point stage. We need to check the pipe_rasterizer_state::point_quad_rasterization flag.
Diffstat (limited to 'src/gallium/auxiliary/draw/draw_pipe_validate.c')
-rw-r--r--src/gallium/auxiliary/draw/draw_pipe_validate.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/gallium/auxiliary/draw/draw_pipe_validate.c b/src/gallium/auxiliary/draw/draw_pipe_validate.c
index 23fa4cf606..2a50af7a41 100644
--- a/src/gallium/auxiliary/draw/draw_pipe_validate.c
+++ b/src/gallium/auxiliary/draw/draw_pipe_validate.c
@@ -100,6 +100,11 @@ draw_need_pipeline(const struct draw_context *draw,
if (rasterizer->point_size > draw->pipeline.wide_point_threshold)
return TRUE;
+ /* sprite points */
+ if (rasterizer->point_quad_rasterization
+ && draw->pipeline.wide_point_sprites)
+ return TRUE;
+
/* AA points */
if (rasterizer->point_smooth && draw->pipeline.aapoint)
return TRUE;
@@ -172,6 +177,8 @@ static struct draw_stage *validate_pipeline( struct draw_stage *stage )
wide_points = FALSE;
else if (rast->point_size > draw->pipeline.wide_point_threshold)
wide_points = TRUE;
+ else if (rast->point_quad_rasterization && draw->pipeline.wide_point_sprites)
+ wide_points = TRUE;
else
wide_points = FALSE;