From 00cdd1d74365ebb57598a5e82d9b2d59f0c96d95 Mon Sep 17 00:00:00 2001 From: Boris Brezillon Date: Mon, 11 Dec 2023 15:28:30 +0100 Subject: [PATCH] panvk: Track blit src/dst using pan_kmod_bo objects Signed-off-by: Boris Brezillon Reviewed-by: Constantine Shablya Reviewed-by: Erik Faye-Lund Part-of: --- src/panfrost/vulkan/panvk_private.h | 2 +- src/panfrost/vulkan/panvk_vX_device.c | 4 ++-- src/panfrost/vulkan/panvk_vX_meta_blit.c | 4 ++-- src/panfrost/vulkan/panvk_vX_meta_copy.c | 20 ++++++++++---------- 4 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/panfrost/vulkan/panvk_private.h b/src/panfrost/vulkan/panvk_private.h index afed3ac2fb2..3726d79cc59 100644 --- a/src/panfrost/vulkan/panvk_private.h +++ b/src/panfrost/vulkan/panvk_private.h @@ -323,7 +323,7 @@ struct panvk_batch { struct panfrost_ptr desc; } fb; struct { - struct panfrost_bo *src, *dst; + struct pan_kmod_bo *src, *dst; } blit; struct panfrost_ptr tls; mali_ptr fragment_job; diff --git a/src/panfrost/vulkan/panvk_vX_device.c b/src/panfrost/vulkan/panvk_vX_device.c index 5db2a40ae15..bd861d7d5f6 100644 --- a/src/panfrost/vulkan/panvk_vX_device.c +++ b/src/panfrost/vulkan/panvk_vX_device.c @@ -255,10 +255,10 @@ panvk_per_arch(queue_submit)(struct vk_queue *vk_queue, } if (batch->blit.src) - bos[bo_idx++] = panfrost_bo_handle(batch->blit.src); + bos[bo_idx++] = pan_kmod_bo_handle(batch->blit.src); if (batch->blit.dst) - bos[bo_idx++] = panfrost_bo_handle(batch->blit.dst); + bos[bo_idx++] = pan_kmod_bo_handle(batch->blit.dst); if (batch->jc.first_tiler) bos[bo_idx++] = panfrost_bo_handle(pdev->tiler_heap); diff --git a/src/panfrost/vulkan/panvk_vX_meta_blit.c b/src/panfrost/vulkan/panvk_vX_meta_blit.c index 2cedd6359c7..585c50599e3 100644 --- a/src/panfrost/vulkan/panvk_vX_meta_blit.c +++ b/src/panfrost/vulkan/panvk_vX_meta_blit.c @@ -127,8 +127,8 @@ panvk_meta_blit(struct panvk_cmd_buffer *cmdbuf, views[0].first_layer = views[0].last_layer = ctx.dst.cur_layer; views[1].first_layer = views[1].last_layer = views[0].first_layer; - batch->blit.src = src_img->bo; - batch->blit.dst = dst_img->bo; + batch->blit.src = src_img->bo->kmod_bo; + batch->blit.dst = dst_img->bo->kmod_bo; panvk_per_arch(cmd_alloc_tls_desc)(cmdbuf, true); panvk_per_arch(cmd_alloc_fb_desc)(cmdbuf); panvk_per_arch(cmd_prepare_tiler_context)(cmdbuf); diff --git a/src/panfrost/vulkan/panvk_vX_meta_copy.c b/src/panfrost/vulkan/panvk_vX_meta_copy.c index 47c390095be..d68da0fd59a 100644 --- a/src/panfrost/vulkan/panvk_vX_meta_copy.c +++ b/src/panfrost/vulkan/panvk_vX_meta_copy.c @@ -669,8 +669,8 @@ panvk_meta_copy_img2img(struct panvk_cmd_buffer *cmdbuf, struct panvk_batch *batch = panvk_cmd_open_batch(cmdbuf); dstview.first_layer = dstview.last_layer = l + first_dst_layer; - batch->blit.src = src->bo; - batch->blit.dst = dst->bo; + batch->blit.src = src->bo->kmod_bo; + batch->blit.dst = dst->bo->kmod_bo; panvk_per_arch(cmd_alloc_tls_desc)(cmdbuf, true); panvk_per_arch(cmd_alloc_fb_desc)(cmdbuf); panvk_per_arch(cmd_prepare_tiler_context)(cmdbuf); @@ -1106,8 +1106,8 @@ panvk_meta_copy_buf2img(struct panvk_cmd_buffer *cmdbuf, struct panvk_batch *batch = panvk_cmd_open_batch(cmdbuf); view.first_layer = view.last_layer = l + first_layer; - batch->blit.src = buf->bo; - batch->blit.dst = img->bo; + batch->blit.src = buf->bo->kmod_bo; + batch->blit.dst = img->bo->kmod_bo; panvk_per_arch(cmd_alloc_tls_desc)(cmdbuf, true); panvk_per_arch(cmd_alloc_fb_desc)(cmdbuf); panvk_per_arch(cmd_prepare_tiler_context)(cmdbuf); @@ -1522,8 +1522,8 @@ panvk_meta_copy_img2buf(struct panvk_cmd_buffer *cmdbuf, struct pan_tls_info tlsinfo = {0}; - batch->blit.src = img->bo; - batch->blit.dst = buf->bo; + batch->blit.src = img->bo->kmod_bo; + batch->blit.dst = buf->bo->kmod_bo; batch->tls = pan_pool_alloc_desc(&cmdbuf->desc_pool.base, LOCAL_STORAGE); GENX(pan_emit_tls)(&tlsinfo, batch->tls.cpu); @@ -1718,8 +1718,8 @@ panvk_meta_copy_buf2buf(struct panvk_cmd_buffer *cmdbuf, util_dynarray_append(&batch->jobs, void *, job.cpu); - batch->blit.src = src->bo; - batch->blit.dst = dst->bo; + batch->blit.src = src->bo->kmod_bo; + batch->blit.dst = dst->bo->kmod_bo; panvk_per_arch(cmd_close_batch)(cmdbuf); } @@ -1863,7 +1863,7 @@ panvk_meta_fill_buf(struct panvk_cmd_buffer *cmdbuf, util_dynarray_append(&batch->jobs, void *, job.cpu); - batch->blit.dst = dst->bo; + batch->blit.dst = dst->bo->kmod_bo; panvk_per_arch(cmd_close_batch)(cmdbuf); } @@ -1913,7 +1913,7 @@ panvk_meta_update_buf(struct panvk_cmd_buffer *cmdbuf, util_dynarray_append(&batch->jobs, void *, job.cpu); - batch->blit.dst = dst->bo; + batch->blit.dst = dst->bo->kmod_bo; panvk_per_arch(cmd_close_batch)(cmdbuf); }