Mesa (master): turnip: remove remaining uses of drmSyncobj helpers

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed Sep 30 00:46:35 UTC 2020


Module: Mesa
Branch: master
Commit: 0497c9cb6ccd54e07a1ddb5777ecf383a988f806
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=0497c9cb6ccd54e07a1ddb5777ecf383a988f806

Author: Jonathan Marek <jonathan at marek.ca>
Date:   Mon Sep 28 23:02:53 2020 -0400

turnip: remove remaining uses of drmSyncobj helpers

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 | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

diff --git a/src/freedreno/vulkan/tu_drm.c b/src/freedreno/vulkan/tu_drm.c
index 15e9c4f568e..5213125d667 100644
--- a/src/freedreno/vulkan/tu_drm.c
+++ b/src/freedreno/vulkan/tu_drm.c
@@ -439,8 +439,10 @@ tu_enumerate_devices(struct tu_instance *instance)
 static void
 semaphore_set_temporary(struct tu_device *device, struct tu_semaphore *sem, uint32_t syncobj)
 {
-   if (sem->temporary)
-      drmSyncobjDestroy(device->fd, sem->temporary);
+   if (sem->temporary) {
+      ioctl(device->fd, DRM_IOCTL_SYNCOBJ_DESTROY,
+            &(struct drm_syncobj_destroy) { .handle = sem->temporary });
+   }
    sem->temporary = syncobj;
 }
 
@@ -458,11 +460,14 @@ tu_CreateSemaphore(VkDevice _device,
    if (!sem)
       return vk_error(device->instance, VK_ERROR_OUT_OF_HOST_MEMORY);
 
-   if (drmSyncobjCreate(device->fd, 0, &sem->permanent) < 0) {
-         vk_free2(&device->vk.alloc, pAllocator, sem);
-         return VK_ERROR_OUT_OF_HOST_MEMORY;
+   struct drm_syncobj_create create = {};
+   int ret = ioctl(device->fd, DRM_IOCTL_SYNCOBJ_CREATE, &create);
+   if (ret) {
+      vk_free2(&device->vk.alloc, pAllocator, sem);
+      return VK_ERROR_OUT_OF_HOST_MEMORY;
    }
 
+   sem->permanent = create.handle;
    sem->temporary = 0;
 
    *pSemaphore = tu_semaphore_to_handle(sem);
@@ -480,7 +485,8 @@ tu_DestroySemaphore(VkDevice _device,
       return;
 
    semaphore_set_temporary(device, sem, 0);
-   drmSyncobjDestroy(device->fd, sem->permanent);
+   ioctl(device->fd, DRM_IOCTL_SYNCOBJ_DESTROY,
+         &(struct drm_syncobj_destroy) { .handle = sem->permanent });
 
    vk_object_free(&device->vk, pAllocator, sem);
 }



More information about the mesa-commit mailing list