Mesa (master): turnip: always create permanent syncobj for semaphore
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Wed Sep 30 00:46:34 UTC 2020
Module: Mesa
Branch: master
Commit: 2a3f6e0267f1be7c0290eb0c14e5ca6f1c387cab
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=2a3f6e0267f1be7c0290eb0c14e5ca6f1c387cab
Author: Jonathan Marek <jonathan at marek.ca>
Date: Mon Sep 28 22:38:24 2020 -0400
turnip: always create permanent syncobj for semaphore
This allows non-exported semaphores to behave correctly instead of being
ignored in QueueSubmit().
Signed-off-by: Jonathan Marek <jonathan at marek.ca>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6719>
---
src/freedreno/vulkan/tu_drm.c | 17 +++++------------
1 file changed, 5 insertions(+), 12 deletions(-)
diff --git a/src/freedreno/vulkan/tu_drm.c b/src/freedreno/vulkan/tu_drm.c
index 4d50ecf3410..7ec10d9e552 100644
--- a/src/freedreno/vulkan/tu_drm.c
+++ b/src/freedreno/vulkan/tu_drm.c
@@ -486,21 +486,14 @@ tu_CreateSemaphore(VkDevice _device,
if (!sem)
return vk_error(device->instance, VK_ERROR_OUT_OF_HOST_MEMORY);
- const VkExportSemaphoreCreateInfo *export =
- vk_find_struct_const(pCreateInfo->pNext, EXPORT_SEMAPHORE_CREATE_INFO);
- VkExternalSemaphoreHandleTypeFlags handleTypes =
- export ? export->handleTypes : 0;
-
- sem->permanent.kind = TU_SEMAPHORE_NONE;
sem->temporary.kind = TU_SEMAPHORE_NONE;
+ sem->permanent.kind = TU_SEMAPHORE_SYNCOBJ;
- if (handleTypes) {
- if (drmSyncobjCreate(device->fd, 0, &sem->permanent.syncobj) < 0) {
- vk_free2(&device->vk.alloc, pAllocator, sem);
- return VK_ERROR_OUT_OF_HOST_MEMORY;
- }
- sem->permanent.kind = TU_SEMAPHORE_SYNCOBJ;
+ if (drmSyncobjCreate(device->fd, 0, &sem->permanent.syncobj) < 0) {
+ vk_free2(&device->vk.alloc, pAllocator, sem);
+ return VK_ERROR_OUT_OF_HOST_MEMORY;
}
+
*pSemaphore = tu_semaphore_to_handle(sem);
return VK_SUCCESS;
}
More information about the mesa-commit
mailing list