gallium/u_vbuf: drop min/max-scanning for empty indirect draws
authorErik Faye-Lund <erik.faye-lund@collabora.com>
Mon, 25 Jun 2018 20:10:31 +0000 (21:10 +0100)
committerErik Faye-Lund <erik.faye-lund@collabora.com>
Mon, 2 Jul 2018 08:51:29 +0000 (10:51 +0200)
commit4c8770570549e5093dddb568cdaf168821179451
tree87888ef4f5dab0aa12f1b6a902a962c9fc53e2d6
parent02db2363f0f9174ecd8b3484c186b250c2a1259a
gallium/u_vbuf: drop min/max-scanning for empty indirect draws

When building with asserts enabled, we'll end up triggering an assert
in pipe_buffer_map_range down this code-path, due to trying to map
an empty range. Even if we avoid that, we'll trigger another assert
a bit later, because u_vbuf_get_minmax_index returns a min-index of
-1 here, which gets promoted to an unsigned value, and gives us an
out-of-bounds buffer-mapping offset.

Since we can't really have a well-defined min/max range here when
the range is empty anyway, we should just drop this dance in the
first place. After all, no rendering is going to be produced.

This fixes a crash in dEQP-GLES31.functional.draw_indirect.random.0
on VirGL for me.

Signed-off-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
src/gallium/auxiliary/util/u_vbuf.c