nvc0: add support for handling indirect draws with attrib conversion
authorIlia Mirkin <imirkin@alum.mit.edu>
Sat, 2 Feb 2019 21:23:50 +0000 (16:23 -0500)
committerIlia Mirkin <imirkin@alum.mit.edu>
Thu, 7 Feb 2019 00:35:57 +0000 (19:35 -0500)
commit399215eb7a0517463e5757c598d6cff6ae2301d0
tree28c001983ca98c0e1349d51592e74c7f594a28fc
parent0f7a20e91e2f869890d54869c4bc17d31c56ce57
nvc0: add support for handling indirect draws with attrib conversion

The hardware does not natively support FIXED and DOUBLE formats. If
those are used in an indirect draw, they have to be converted. Our
conversion tries to be clever about only converting the data that's
needed. However for indirect, that won't work.

Given that DOUBLE or FIXED are highly unlikely to ever be used with
indirect draws, read the indirect buffer on the CPU and issue draws
directly.

Fixes the failing dEQP-GLES31.functional.draw_indirect.random.* tests.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Cc: 19.0 <mesa-stable@lists.freedesktop.org>
src/gallium/drivers/nouveau/nvc0/nvc0_context.h
src/gallium/drivers/nouveau/nvc0/nvc0_vbo.c
src/gallium/drivers/nouveau/nvc0/nvc0_vbo_translate.c