venus: support external fencing with multiple timelines
authorRyan Neph <ryanneph@google.com>
Wed, 24 Aug 2022 17:38:51 +0000 (10:38 -0700)
committerMarge Bot <emma+marge@anholt.net>
Fri, 16 Dec 2022 21:12:38 +0000 (21:12 +0000)
commit929e52c35afb4109493837596fc8010a25b8fdd1
treeda1c70368fc6c3926d70e7de18d61175645ae466
parent2c1a7f877cc55471a06660ab07273a589f8bafd7
venus: support external fencing with multiple timelines

Without globalFencing, exportable fences and semaphores must instead
have their proxy vn_renderer_sync installed in the same renderer
ring_idx as ther last queue submissions to ensure they signal after
all work previously submitted to the same ring_idx. Exportable
fences/semaphores with a temporary (imported) payload don't need a proxy
vn_renderer_sync, since they already have a `poll()`able fd available.

Signed-off-by: Ryan Neph <ryanneph@google.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19691>
src/virtio/vulkan/vn_physical_device.c
src/virtio/vulkan/vn_queue.c
src/virtio/vulkan/vn_queue.h