r600g: try to fix line stippling with lineloops
authorMarek Olšák <maraeo@gmail.com>
Wed, 18 Jul 2012 00:17:10 +0000 (02:17 +0200)
committerMarek Olšák <maraeo@gmail.com>
Wed, 18 Jul 2012 00:17:10 +0000 (02:17 +0200)
The piglit test is failing, but visually it looks almost correct.

src/gallium/drivers/r600/r600_state_common.c

index 1a297318669822b6558e5f94a8e158466a8e5e46..e819d2f6dcff6b25e97673018f13d3533ac6f346 100644 (file)
@@ -1057,7 +1057,8 @@ void r600_draw_vbo(struct pipe_context *ctx, const struct pipe_draw_info *dinfo)
 
        if (prim == V_008958_DI_PT_LINELIST)
                ls_mask = 1;
-       else if (prim == V_008958_DI_PT_LINESTRIP) 
+       else if (prim == V_008958_DI_PT_LINESTRIP ||
+                prim == V_008958_DI_PT_LINELOOP)
                ls_mask = 2;
        r600_pipe_state_mod_reg(&rctx->vgt, S_028A0C_AUTO_RESET_CNTL(ls_mask) | rctx->pa_sc_line_stipple);
        r600_pipe_state_mod_reg(&rctx->vgt,