virgl: patch transfers into the cmdbuf

When a transfer is added to the transfer queue, we reserve some
space in the cmdbuf.  When the transfer queue is flushed, we patch
the reserved space with the final transfer command for each
transfer.  This allows us to get rid of VIRGL_MAX_TBUF_DWORDS.

Our internal use of u_upload is special.  We expect it to be mapped
persistently and coherently until we flush.  The space for the
transfer command must be reserved at map time rather than at unmap
time.

Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
10 jobs for !1295 with virgl-transfer-queue-patching in 10 minutes and 20 seconds (queued for 1 second)
latest detached
Status Job ID Name Coverage
  Containers Build
passed debian #410841

00:00:19

 
  Build+Test
passed meson-clang #410843

00:10:00

passed meson-clover #410847

00:07:16

passed meson-main #410846

00:04:27

passed meson-swr-glvnd #410842

00:05:40

passed meson-vulkan #410848

00:02:47

passed scons-llvm #410850

00:07:18

passed scons-nollvm #410849

00:06:51

passed scons-swr #410844

00:09:26

passed scons-win64 #410845

00:09:58