Module: Mesa
Branch: staging/23.2
Commit: 14783f1d4f0f60a9a17b3e6817b39929df39901b
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=14783f1d4f0f60a9a17b3e6817b39929df39901b

Author: Karmjit Mahil <[email protected]>
Date:   Mon Sep 18 15:36:29 2023 +0100

pvr: Fix `for` loop itarator usage

The `i` iteration variable was being used instead of `k` when
appending new mappings, and getting the current source rect.

dEQP test fixed:
  dEQP-VK.pipeline.monolithic.image.suballocation.sampling_type
    .combined.view_type.3d.format.*.count_1.
    .{3x3x3,5x5x5,...(odd dimensions)}

Fixes: 060c3db4efd6 ("pvr: Complete pvr_generate_custom_mapping()")

Reported-by: James Glanville <[email protected]>
Signed-off-by: Karmjit Mahil <[email protected]>
Reviewed-by: Frank Binns <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25321>
(cherry picked from commit bf17e4fe330379408ebaed7a2509cd603edd8917)

---

 .pick_status.json                         | 2 +-
 src/imagination/vulkan/pvr_job_transfer.c | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/.pick_status.json b/.pick_status.json
index 19b1653d2d0..bc66da0de4b 100644
--- a/.pick_status.json
+++ b/.pick_status.json
@@ -384,7 +384,7 @@
         "description": "pvr: Fix `for` loop itarator usage",
         "nominated": true,
         "nomination_type": 1,
-        "resolution": 0,
+        "resolution": 1,
         "main_sha": null,
         "because_sha": "060c3db4efd6ed766331a8cd1c9536265390a58f",
         "notes": null
diff --git a/src/imagination/vulkan/pvr_job_transfer.c 
b/src/imagination/vulkan/pvr_job_transfer.c
index 1dbe9aa1447..5dc44edf43d 100644
--- a/src/imagination/vulkan/pvr_job_transfer.c
+++ b/src/imagination/vulkan/pvr_job_transfer.c
@@ -5043,7 +5043,7 @@ pvr_generate_custom_mapping(uint32_t src_stride,
             struct pvr_transfer_wa_source *src = &pass->sources[j];
 
             for (uint32_t k = 0; k < src->mapping_count; k++) {
-               VkRect2D *src_rect = &src->mappings[i].src_rect;
+               VkRect2D *src_rect = &src->mappings[k].src_rect;
                bool extend_height =
                   pvr_extend_height(src_rect,
                                     src_height,
@@ -5058,7 +5058,7 @@ pvr_generate_custom_mapping(uint32_t src_stride,
                   new_src->mappings[new_src->mapping_count] = src->mappings[k];
                   new_src->src_offset = src->src_offset;
 
-                  for (uint32_t l = i + 1; l < src->mapping_count; l++)
+                  for (uint32_t l = k + 1; l < src->mapping_count; l++)
                      src->mappings[l - 1] = src->mappings[l];
 
                   new_src->mapping_count++;

Reply via email to