[PATCH v2 0/2] Add sync object UAPI support to VirtIO-GPU driver
Dmitry Osipenko
dmitry.osipenko at collabora.com
Sun Mar 19 16:08:00 UTC 2023
We have multiple Vulkan context types that are awaiting for the addition
of the sync object DRM UAPI support to the VirtIO-GPU kernel driver:
1. Venus context
2. Native contexts (virtio-freedreno, virtio-intel, virtio-amdgpu)
Mesa core supports DRM sync object UAPI, providing Vulkan drivers with a
generic fencing implementation that we want to utilize.
This patch adds initial sync objects support. It creates fundament for a
further fencing improvements. Later on we will want to extend the VirtIO-GPU
fencing API with passing fence IDs to host for waiting, it will be a new
additional VirtIO-GPU IOCTL and more. Today we have several VirtIO-GPU context
drivers in works that require VirtIO-GPU to support sync objects UAPI.
The patch is heavily inspired by the sync object UAPI implementation of the
MSM driver.
Changelog:
v2: - Fixed chain-fence context matching by making use of
dma_fence_chain_contained().
- Fixed potential uninitialized var usage in error code patch of
parse_post_deps(). MSM driver had a similar issue that is fixed
already in upstream.
- Added new patch that refactors job submission code path. I found
that it was very difficult to add a new/upcoming host-waits feature
because of how variables are passed around the code, the virtgpu_ioctl.c
also was growing to unmanageable size.
Dmitry Osipenko (2):
drm/virtio: Refactor job submission code path
drm/virtio: Support sync objects
drivers/gpu/drm/virtio/Makefile | 2 +-
drivers/gpu/drm/virtio/virtgpu_drv.c | 3 +-
drivers/gpu/drm/virtio/virtgpu_drv.h | 4 +
drivers/gpu/drm/virtio/virtgpu_ioctl.c | 182 ---------
drivers/gpu/drm/virtio/virtgpu_submit.c | 510 ++++++++++++++++++++++++
include/uapi/drm/virtgpu_drm.h | 16 +-
6 files changed, 532 insertions(+), 185 deletions(-)
create mode 100644 drivers/gpu/drm/virtio/virtgpu_submit.c
--
2.39.2
More information about the dri-devel
mailing list