draw: fix splitting of line loops (v2)
authorBrian Paul <brianp@vmware.com>
Sat, 17 Oct 2015 18:07:32 +0000 (12:07 -0600)
committerBrian Paul <brianp@vmware.com>
Wed, 21 Oct 2015 01:14:51 +0000 (19:14 -0600)
commitb48e16fa2f8b96bb36a6e0a92b6d842c1c246006
tree67ab298905c4b3d008de221eb12079b4848e94b9
parent876d07d8377bb61417ba2f443afa8b7a30b9de81
draw: fix splitting of line loops (v2)

When the draw module splits long line loops, the sections are emitted
as line strips.  But the primitive type wasn't set correctly so each
section was being drawn as a loop, introducing extra line segments.

To fix this, we pass a new DRAW_LINE_LOOP_AS_STRIP flag to the run()
function.  The linear/elt_run() functions have to check for this flag
and set their primitive type accordingly.

No piglit regressions.  Fixes piglit's lineloop with -count 4097 or
higher.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=81174

Reviewed-by: Roland Scheidegger <sroland@vmware.com>
src/gallium/auxiliary/draw/draw_private.h
src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline.c
src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c
src/gallium/auxiliary/draw/draw_pt_vsplit_tmp.h