broadcom/vc4: Fix handling of GFXH-515 workaround with a start vertex count.
authorEric Anholt <eric@anholt.net>
Sat, 25 Nov 2017 05:40:50 +0000 (21:40 -0800)
committerEric Anholt <eric@anholt.net>
Fri, 1 Dec 2017 23:37:28 +0000 (15:37 -0800)
commit84ab48c15c9373dfa4709f4f9e887c329286e5a1
tree6ab3fc6e0478f5a54be55a3405fce1e8f8dcdd68
parentbcb6ebe91a1bbbe6ad62f0e99707414fb91e488e
broadcom/vc4: Fix handling of GFXH-515 workaround with a start vertex count.

We failed to take the start into account for how many vertices to draw in
this round, so we would end up decrementing count below 0, which as an
unsigned number meant we would loop until the CLs soon ran out of space.

When I wrote the code I was thinking about how to use the previously
emitted shader state (no index bias baked into the elements) by emitting
up to 65535 and then only re-emitting with bias for the second wround, but
that doesn't work if the start is over 65535.  Instead, just delay
emitting shader state until we get into the drawarrays GFXH-515 loop and
always bake the bias in when we're doing the workaround.
src/gallium/drivers/vc4/vc4_draw.c