From 279d81c0835234e97de20544a7162455412a244b Mon Sep 17 00:00:00 2001 From: Faith Ekstrand Date: Mon, 30 Jan 2023 20:12:00 -0600 Subject: [PATCH] nvk: Reset semaphore syncs on wait Vulkan semaphores are spec'd to auto-reset on wait but we currently assert on signal that the state is RESET. Without this, semaphores used more than once assert which isn't what we want. Part-of: --- src/nouveau/vulkan/nvk_queue_drm_nouveau.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/nouveau/vulkan/nvk_queue_drm_nouveau.c b/src/nouveau/vulkan/nvk_queue_drm_nouveau.c index df9dc01..9f043e9 100644 --- a/src/nouveau/vulkan/nvk_queue_drm_nouveau.c +++ b/src/nouveau/vulkan/nvk_queue_drm_nouveau.c @@ -203,6 +203,11 @@ nvk_queue_submit_drm_nouveau(struct nvk_queue *queue, result = push_submit(&pb, queue, sync); if (result == VK_SUCCESS) { + for (uint32_t i = 0; i < submit->wait_count; i++) { + struct nvk_bo_sync *bo_sync = + container_of(submit->waits[i].sync, struct nvk_bo_sync, sync); + bo_sync->state = NVK_BO_SYNC_STATE_RESET; + } for (uint32_t i = 0; i < submit->signal_count; i++) { struct nvk_bo_sync *bo_sync = container_of(submit->signals[i].sync, struct nvk_bo_sync, sync); -- 2.7.4