llvmpipe: add missing checks for polygon offset point/line modes
authorBrian Paul <brianp@vmware.com>
Thu, 21 Feb 2013 15:22:10 +0000 (08:22 -0700)
committerBrian Paul <brianp@vmware.com>
Fri, 22 Feb 2013 23:49:05 +0000 (16:49 -0700)
The llvm pipeline handles regular filled triangle offsets, but it
doesn't handle offsets for triangles drawn in point or line mode.

Fixes failures found with new piglit polygon-mode-offset test.

Note: This is a candidate for the stable branches.

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
src/gallium/drivers/llvmpipe/lp_state_rasterizer.c

index 40ccaf66edac081c82e40f5128759f3a441f87ca..ca8df7149ebe683117623ae5c96d7074336fe21a 100644 (file)
@@ -46,6 +46,10 @@ clear_flags(struct pipe_rasterizer_state *rast)
 {
    rast->light_twoside = 0;
    rast->offset_tri = 0;
+   rast->offset_line = 0;
+   rast->offset_point = 0;
+   rast->offset_units = 0.0f;
+   rast->offset_scale = 0.0f;
 }
 
 
@@ -74,6 +78,8 @@ llvmpipe_create_rasterizer_state(struct pipe_context *pipe,
     */
    need_pipeline = (rast->fill_front != PIPE_POLYGON_MODE_FILL ||
                    rast->fill_back != PIPE_POLYGON_MODE_FILL ||
+                    rast->offset_point ||
+                    rast->offset_line ||
                    rast->point_smooth ||
                    rast->line_smooth ||
                    rast->line_stipple_enable ||