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