mesa/src/virtio
Yiwei Zhang 7f9381782f venus: ensure object id is unique
Currently driver side heap alloc obj ptr is used as object id, which is
used on the renderer side for actual vk obj mapping. However, this adds
an implicit dependency between any driver obj destroy/free and new obj
create/allocate because the heap obj freed up can be immediately
reallocated out.

With venus moving to multi-ring, the ordering between asynchronous obj
destroy/free and new obj create/allocate has to be guaranteed via driver
side non-primary ring submission always waiting for primary ring idle.
This can defeat the purpose of multi-ring in certain scenarios. So this
change adds a way to assign unique id to object.

Even before multi-ring, the unique object id can make device and queue
object alloc/free more robust without hidden ordering requirements. This
also fixes some oom cts which can intentionally fail the submission of
an object destroy (renderer side obj is still present) while the driver
side freed object ptr being reused for another object creating, causing
object id reuse at renderer side object table.

Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27083>
2024-01-18 01:13:59 +00:00
..
ci ci: drop containers, builds, and tests from post-merge pipeline 2023-12-06 08:26:04 +00:00
vdrm virtio/vdrm: Fix lockup in vdrm_host_sync() 2024-01-12 16:53:59 +00:00
venus-protocol venus: switch to vn_ring as the protocol interface - part 3 2023-12-08 04:06:37 +00:00
virtio-gpu virgl: Only send the same amount of data than declared in pipe_sampler_state 2024-01-04 11:00:12 +00:00
vtest venus: rename sync_queue -> timeline 2022-12-16 21:12:38 +00:00
vulkan venus: ensure object id is unique 2024-01-18 01:13:59 +00:00
meson.build virtio: Add vdrm native-context helper 2023-11-04 03:00:04 +00:00