panvk: Track blit src/dst using pan_kmod_bo objects
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com> Reviewed-by: Constantine Shablya <constantine.shablya@collabora.com> Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26698>
This commit is contained in:

committed by
Marge Bot

parent
01c7abf56f
commit
00cdd1d743
@@ -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;
|
||||
|
@@ -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);
|
||||
|
@@ -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);
|
||||
|
@@ -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);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user