This little series adds support for the VK_KHR_external_fence family of
extensions.  Most of the real work in implementing these extensions is
actually in the kernel.  Once we have a DRM_SYNCOBJ_IOCTL_WAIT that does
what we need, the userspace bits are fairly straightforward.  This series
can be found as a branch here:

https://cgit.freedesktop.org/~jekstrand/mesa/log/?h=wip/anv-external-fence

The required kernel bits can be found here:

https://cgit.freedesktop.org/~jekstrand/linux/log/?h=drm-syncobj-wait-submit-v1

Cc: Chad Versace <chadvers...@chromium.org>
Cc: Chris Wilson <ch...@chris-wilson.co.uk>

Jason Ekstrand (10):
  anv: Rework fences to work more like BO semaphores
  anv/wsi: Use QueueSubmit to trigger the fence in AcquireNextImage
  anv: Pull the guts of anv_fence into anv_fence_impl
  anv: Rename anv_fence_state to anv_bo_fence_state
  vulkan/util: Add a vk_zalloc helper
  drm-uapi/drm: Add DRM_IOCTL_SYNCOBJ_WAIT and RESET
  anv/gem: Add support for syncobj wait and reset
  anv: Use DRM sync objects to back fences whenever possible
  anv: Implement VK_KHR_external_fence
  anv: Add support for the SYNC_FD handle type for fences

 include/drm-uapi/drm.h             |  19 ++
 src/intel/vulkan/anv_batch_chain.c |  59 ++++-
 src/intel/vulkan/anv_device.c      |   1 +
 src/intel/vulkan/anv_extensions.py |   5 +
 src/intel/vulkan/anv_gem.c         |  56 ++++
 src/intel/vulkan/anv_gem_stubs.c   |  27 ++
 src/intel/vulkan/anv_private.h     |  67 ++++-
 src/intel/vulkan/anv_queue.c       | 513 +++++++++++++++++++++++++++++--------
 src/intel/vulkan/anv_wsi.c         |   9 +-
 src/vulkan/util/vk_alloc.h         |  14 +
 10 files changed, 651 insertions(+), 119 deletions(-)

-- 
2.5.0.400.gff86faf

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to