Mesa (master): radv: Fix host->host signalling with legacy timeline semaphores.
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Tue Jul 28 09:44:12 UTC 2020
Module: Mesa
Branch: master
Commit: 05b278327066304d8822eb6414a89120c816e14a
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=05b278327066304d8822eb6414a89120c816e14a
Author: Bas Nieuwenhuizen <bas at basnieuwenhuizen.nl>
Date: Tue Jul 28 04:14:23 2020 +0200
radv: Fix host->host signalling with legacy timeline semaphores.
Fixes: 88d41367b8a "radv: Add timelines with a VK_KHR_timeline_semaphore impl."
Reviewed-by: Dave Airlie <airlied at redhat.com>
Tested-by: Andres Rodriguez <andresx7 at gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6097>
---
src/amd/vulkan/radv_device.c | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/src/amd/vulkan/radv_device.c b/src/amd/vulkan/radv_device.c
index 4dac1be0495..2e9cf32aa4b 100644
--- a/src/amd/vulkan/radv_device.c
+++ b/src/amd/vulkan/radv_device.c
@@ -6143,7 +6143,16 @@ radv_SignalSemaphore(VkDevice _device,
radv_timeline_trigger_waiters_locked(&part->timeline, &processing_list);
pthread_mutex_unlock(&part->timeline.mutex);
- return radv_process_submissions(&processing_list);
+ VkResult result = radv_process_submissions(&processing_list);
+
+ /* This needs to happen after radv_process_submissions, so
+ * that any submitted submissions that are now unblocked get
+ * processed before we wake the application. This way we
+ * ensure that any binary semaphores that are now unblocked
+ * are usable by the application. */
+ pthread_cond_broadcast(&device->timeline_cond);
+
+ return result;
}
case RADV_SEMAPHORE_TIMELINE_SYNCOBJ: {
part->timeline_syncobj.max_point = MAX2(part->timeline_syncobj.max_point, pSignalInfo->value);
More information about the mesa-commit
mailing list