Mesa (main): panvk: Make panvk_queue_transfer_sync more generic
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Mon Jul 5 14:13:29 UTC 2021
Module: Mesa
Branch: main
Commit: 5997f18d8a316fb87db36a51d08bab844db9b5ea
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=5997f18d8a316fb87db36a51d08bab844db9b5ea
Author: Tomeu Vizoso <tomeu.vizoso at collabora.com>
Date: Mon Jul 5 11:57:35 2021 +0200
panvk: Make panvk_queue_transfer_sync more generic
Have it accept a syncobj so it can be used in a future commit.
Signed-off-by: Tomeu Vizoso <tomeu.vizoso at collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon at collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11709>
---
src/panfrost/vulkan/panvk_device.c | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)
diff --git a/src/panfrost/vulkan/panvk_device.c b/src/panfrost/vulkan/panvk_device.c
index 68f518ae32e..ddd146cb244 100644
--- a/src/panfrost/vulkan/panvk_device.c
+++ b/src/panfrost/vulkan/panvk_device.c
@@ -1164,8 +1164,7 @@ panvk_queue_submit_batch(struct panvk_queue *queue,
}
static void
-panvk_queue_transfer_sync(struct panvk_queue *queue,
- struct panvk_syncobj *dst)
+panvk_queue_transfer_sync(struct panvk_queue *queue, uint32_t syncobj)
{
const struct panfrost_device *pdev = &queue->device->physical_device->pdev;
int ret;
@@ -1180,7 +1179,7 @@ panvk_queue_transfer_sync(struct panvk_queue *queue,
assert(!ret);
assert(handle.fd >= 0);
- handle.handle = dst->temporary ? : dst->permanent;
+ handle.handle = syncobj;
ret = drmIoctl(pdev->fd, DRM_IOCTL_SYNCOBJ_FD_TO_HANDLE, &handle);
assert(!ret);
@@ -1258,13 +1257,13 @@ panvk_QueueSubmit(VkQueue _queue,
/* Transfer the out fence to signal semaphores */
for (unsigned i = 0; i < submit->signalSemaphoreCount; i++) {
VK_FROM_HANDLE(panvk_semaphore, sem, submit->pSignalSemaphores[i]);
- panvk_queue_transfer_sync(queue, &sem->syncobj);
+ panvk_queue_transfer_sync(queue, sem->syncobj.temporary ? : sem->syncobj.permanent);
}
}
if (fence) {
/* Transfer the last out fence to the fence object */
- panvk_queue_transfer_sync(queue, &fence->syncobj);
+ panvk_queue_transfer_sync(queue, fence->syncobj.temporary ? : fence->syncobj.permanent);
}
return VK_SUCCESS;
More information about the mesa-commit
mailing list