panvk: add panvk_queue_submit_ioctl

It makes the DRM_IOCTL_PANTHOR_GROUP_SUBMIT ioctl call.

No functional change.

Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32341>
This commit is contained in:
Chia-I Wu 2024-11-24 00:18:11 -08:00 committed by Marge Bot
parent 9679150ed9
commit 934fafe90c

View file

@ -714,6 +714,26 @@ panvk_queue_submit_init_signals(struct panvk_queue_submit *submit,
}
}
static VkResult
panvk_queue_submit_ioctl(struct panvk_queue_submit *submit)
{
const struct panvk_device *dev = submit->dev;
struct panvk_queue *queue = submit->queue;
int ret;
struct drm_panthor_group_submit gsubmit = {
.group_handle = queue->group_handle,
.queue_submits =
DRM_PANTHOR_OBJ_ARRAY(submit->qsubmit_count, submit->qsubmits),
};
ret = drmIoctl(dev->vk.drm_fd, DRM_IOCTL_PANTHOR_GROUP_SUBMIT, &gsubmit);
if (ret)
return vk_queue_set_lost(&queue->vk, "GROUP_SUBMIT: %m");
return VK_SUCCESS;
}
static VkResult
panvk_queue_submit(struct vk_queue *vk_queue, struct vk_queue_submit *submit)
{
@ -744,16 +764,9 @@ panvk_queue_submit(struct vk_queue *vk_queue, struct vk_queue_submit *submit)
panvk_queue_submit_init_cmdbufs(&psubmit, submit);
panvk_queue_submit_init_signals(&psubmit, submit);
struct drm_panthor_group_submit gsubmit = {
.group_handle = queue->group_handle,
.queue_submits = DRM_PANTHOR_OBJ_ARRAY(qsubmit_count, qsubmits),
};
ret = drmIoctl(dev->vk.drm_fd, DRM_IOCTL_PANTHOR_GROUP_SUBMIT, &gsubmit);
if (ret) {
result = vk_queue_set_lost(&queue->vk, "GROUP_SUBMIT: %m");
result = panvk_queue_submit_ioctl(&psubmit);
if (result != VK_SUCCESS)
goto out;
}
if (submit->signal_count || force_sync) {
if (force_sync) {