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@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11709>
This commit is contained in:
Tomeu Vizoso 2021-07-05 11:57:35 +02:00
parent 839eeaf306
commit 5997f18d8a
1 changed files with 4 additions and 5 deletions

View File

@ -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;