Mesa (master): v3dv: fix stride in buffer copy

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed Mar 17 06:54:04 UTC 2021


Module: Mesa
Branch: master
Commit: 164a51c80f52795da26ce180758232269f098587
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=164a51c80f52795da26ce180758232269f098587

Author: Lukas Feller <mail at luckyxxl.de>
Date:   Mon Mar  8 07:54:40 2021 +0100

v3dv: fix stride in buffer copy

Reviewed-by: Iago Toral Quiroga <itoral at igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9402>

---

 src/broadcom/vulkan/v3dv_meta_copy.c | 15 ++++++++++-----
 1 file 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);
 



More information about the mesa-commit mailing list