summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Marek <jonathan@marek.ca>2020-09-28 23:02:53 -0400
committerMarge Bot <eric+marge@anholt.net>2020-09-30 00:32:40 +0000
commit0497c9cb6ccd54e07a1ddb5777ecf383a988f806 (patch)
treeca0a13b9c95bcd6fec1c9e8e53cc78408be47705
parentc4d5010c54d83f102f07a98575189a5f1429b6a1 (diff)
turnip: remove remaining uses of drmSyncobj helpers
Signed-off-by: Jonathan Marek <jonathan@marek.ca> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6719>
-rw-r--r--src/freedreno/vulkan/tu_drm.c18
1 files 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);
}