From 1c9b13119e743e7384b42671f51c945cc6d01fd1 Mon Sep 17 00:00:00 2001 From: Paulo Zanoni Date: Wed, 27 Mar 2024 16:56:02 -0700 Subject: [PATCH] anv/xe: de-duplicate xe_exec_fill_sync() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit I had accidentally hardcoded an alternative implementation in xe_vm_bind_op(). Reviewed-by: José Roberto de Souza Signed-off-by: Paulo Zanoni Part-of: --- src/intel/vulkan/xe/anv_batch_chain.c | 2 +- src/intel/vulkan/xe/anv_batch_chain.h | 5 +++++ src/intel/vulkan/xe/anv_kmd_backend.c | 32 +++++++-------------------- 3 files changed, 14 insertions(+), 25 deletions(-) diff --git a/src/intel/vulkan/xe/anv_batch_chain.c b/src/intel/vulkan/xe/anv_batch_chain.c index 8624593b9708d..55d34a5256b6d 100644 --- a/src/intel/vulkan/xe/anv_batch_chain.c +++ b/src/intel/vulkan/xe/anv_batch_chain.c @@ -87,7 +87,7 @@ exec_error: #define TYPE_SIGNAL true #define TYPE_WAIT false -static void +void xe_exec_fill_sync(struct drm_xe_sync *xe_sync, struct vk_sync *vk_sync, uint64_t value, bool signal) { diff --git a/src/intel/vulkan/xe/anv_batch_chain.h b/src/intel/vulkan/xe/anv_batch_chain.h index 06e8968bc5386..7f40563c00667 100644 --- a/src/intel/vulkan/xe/anv_batch_chain.h +++ b/src/intel/vulkan/xe/anv_batch_chain.h @@ -25,6 +25,7 @@ #include +#include "drm-uapi/xe_drm.h" #include "vulkan/vulkan_core.h" #include "vk_sync.h" @@ -59,3 +60,7 @@ xe_queue_exec_locked(struct anv_queue *queue, VkResult xe_queue_exec_utrace_locked(struct anv_queue *queue, struct anv_utrace_submit *utrace_submit); + +void +xe_exec_fill_sync(struct drm_xe_sync *xe_sync, struct vk_sync *vk_sync, + uint64_t value, bool signal); diff --git a/src/intel/vulkan/xe/anv_kmd_backend.c b/src/intel/vulkan/xe/anv_kmd_backend.c index a229312498b73..6836e9f816a2a 100644 --- a/src/intel/vulkan/xe/anv_kmd_backend.c +++ b/src/intel/vulkan/xe/anv_kmd_backend.c @@ -185,32 +185,16 @@ xe_vm_bind_op(struct anv_device *device, int sync_idx = 0; for (int s = 0; s < submit->wait_count; s++) { - const struct vk_drm_syncobj *syncobj = - vk_sync_as_drm_syncobj(submit->waits[s].sync); - assert(syncobj); - uint64_t val = submit->waits[s].wait_value; - - xe_syncs[sync_idx++] = (struct drm_xe_sync) { - .type = val ? DRM_XE_SYNC_TYPE_TIMELINE_SYNCOBJ : - DRM_XE_SYNC_TYPE_SYNCOBJ, - .flags = 0, - .handle = syncobj->syncobj, - .timeline_value = val, - }; + xe_exec_fill_sync(&xe_syncs[sync_idx++], + submit->waits[s].sync, + submit->waits[s].wait_value, + false); } for (int s = 0; s < submit->signal_count; s++) { - const struct vk_drm_syncobj *syncobj = - vk_sync_as_drm_syncobj(submit->signals[s].sync); - assert(syncobj); - uint64_t val = submit->signals[s].signal_value; - - xe_syncs[sync_idx++] = (struct drm_xe_sync) { - .type = val ? DRM_XE_SYNC_TYPE_TIMELINE_SYNCOBJ : - DRM_XE_SYNC_TYPE_SYNCOBJ, - .flags = DRM_XE_SYNC_FLAG_SIGNAL, - .handle = syncobj->syncobj, - .timeline_value = val, - }; + xe_exec_fill_sync(&xe_syncs[sync_idx++], + submit->signals[s].sync, + submit->signals[s].signal_value, + true); } if (signal_bind_timeline) { xe_syncs[sync_idx++] = (struct drm_xe_sync) {