diff options
author | Lukas Feller <mail@luckyxxl.de> | 2021-03-08 07:54:40 +0100 |
---|---|---|
committer | Marge Bot <eric+marge@anholt.net> | 2021-03-17 06:42:34 +0000 |
commit | 164a51c80f52795da26ce180758232269f098587 (patch) | |
tree | f77291f3fe73e690d2c58b93d466412c91d758d6 | |
parent | 99a11f25b2367e2aa8681b5f17fb8747d659ca49 (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.c | 15 |
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); |