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:

The required kernel bits can be found here:

Cc: Chad Versace <>
Cc: Chris Wilson <>

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/ |   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(-)


mesa-dev mailing list

Reply via email to