summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLukas Feller <mail@luckyxxl.de>2021-03-08 07:54:40 +0100
committerMarge Bot <eric+marge@anholt.net>2021-03-17 06:42:34 +0000
commit164a51c80f52795da26ce180758232269f098587 (patch)
treef77291f3fe73e690d2c58b93d466412c91d758d6
parent99a11f25b2367e2aa8681b5f17fb8747d659ca49 (diff)
v3dv: fix stride in buffer copy
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9402>
-rw-r--r--src/broadcom/vulkan/v3dv_meta_copy.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/src/broadcom/vulkan/v3dv_meta_copy.c b/src/broadcom/vulkan/v3dv_meta_copy.c
index de71f2da189..f934c5891d3 100644
--- a/src/broadcom/vulkan/v3dv_meta_copy.c
+++ b/src/broadcom/vulkan/v3dv_meta_copy.c
@@ -2212,9 +2212,10 @@ emit_copy_buffer(struct v3dv_job *job,
uint32_t dst_offset,
uint32_t src_offset,
struct framebuffer_data *framebuffer,
- uint32_t format)
+ uint32_t format,
+ uint32_t item_size)
{
- const uint32_t stride = job->frame_tiling.width * 4;
+ const uint32_t stride = job->frame_tiling.width * item_size;
emit_copy_buffer_per_tile_list(job, dst, src,
dst_offset, src_offset,
stride, format);
@@ -2228,13 +2229,17 @@ emit_copy_buffer_rcl(struct v3dv_job *job,
uint32_t dst_offset,
uint32_t src_offset,
struct framebuffer_data *framebuffer,
- uint32_t format)
+ uint32_t format,
+ uint32_t item_size)
{
struct v3dv_cl *rcl = emit_rcl_prologue(job, framebuffer, NULL);
v3dv_return_if_oom(NULL, job);
emit_frame_setup(job, 0, NULL);
- emit_copy_buffer(job, dst, src, dst_offset, src_offset, framebuffer, format);
+
+ emit_copy_buffer(job, dst, src, dst_offset, src_offset,
+ framebuffer, format, item_size);
+
cl_emit(rcl, END_OF_RENDERING, end);
}
@@ -2337,7 +2342,7 @@ copy_buffer(struct v3dv_cmd_buffer *cmd_buffer,
v3dv_job_emit_binning_flush(job);
emit_copy_buffer_rcl(job, dst, src, dst_offset, src_offset,
- &framebuffer, format);
+ &framebuffer, format, item_size);
v3dv_cmd_buffer_finish_job(cmd_buffer);