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