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++;
