svga: Map vertex- index- and constant buffers ansynchronously when reading
authorThomas Hellstrom <thellstrom@vmware.com>
Thu, 11 Apr 2019 08:10:04 +0000 (10:10 +0200)
committerThomas Hellstrom <thellstrom@vmware.com>
Thu, 20 Jun 2019 07:30:22 +0000 (09:30 +0200)
commit3b828c4e68bf4addd3b70cd6df92b80e9a40a7a7
tree58a73aba894b792fa5f9506e100944a6551acde4
parentf51915ba62aebfda5fc3b15d90540bd3f6a981ea
svga: Map vertex- index- and constant buffers ansynchronously when reading

With SWTNL and index translation we're mapping buffers for reading. These
buffers are commonly upload_mgr buffers that might already be referenced
by another submitted or unsubmitted GPU command. A synchronous map will
then trigger a flush and sync, at least on Linux that doesn't distinguish
between read- and write referencing. So map these buffers async. If they
for some obscure reason happen to be dirty (stream-output, buffer-copy),
the resource_buffer code will read-back and sync anyway. For persistent /
coherent buffers a corresponding read-back and sync will happen in the
kernel fault handler.

Testing: Piglit quick. No regressions.

Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
src/gallium/drivers/svga/svga_draw_elements.c
src/gallium/drivers/svga/svga_swtnl_draw.c