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 #410841
debian

00:00:19

 
  Build+Test
passed #410843
meson-clang

00:10:00

passed #410847
meson-clover

00:07:16

passed #410846
meson-main

00:04:27

passed #410842
meson-swr-glvnd

00:05:40

passed #410848
meson-vulkan

00:02:47

passed #410850
scons-llvm

00:07:18

passed #410849
scons-nollvm

00:06:51

passed #410844
scons-swr

00:09:26

passed #410845
scons-win64

00:09:58