From 8b02f46e676f74b523adb9e9c9c665d857091e42 Mon Sep 17 00:00:00 2001 From: kd-11 Date: Tue, 28 Apr 2026 22:36:17 +0300 Subject: [PATCH] rsx: Handle edge case where window size falls outside memory range --- rpcs3/Emu/RSX/VK/vkutils/data_heap.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/rpcs3/Emu/RSX/VK/vkutils/data_heap.h b/rpcs3/Emu/RSX/VK/vkutils/data_heap.h index 4836db9356..a8aa8e5141 100644 --- a/rpcs3/Emu/RSX/VK/vkutils/data_heap.h +++ b/rpcs3/Emu/RSX/VK/vkutils/data_heap.h @@ -85,7 +85,9 @@ namespace vk if (start_partition == end_partition) [[ likely ]] { - m_cached_buffer_range = utils::address_range64::start_length(start_partition * aligned_window_size, aligned_window_size); + const u64 block_addr = start_partition * aligned_window_size; + const u64 block_end = std::min(block_addr + aligned_window_size, size()); + m_cached_buffer_range = utils::address_range64::start_end(block_addr, block_end - 1); return { *heap, m_cached_buffer_range.start, m_cached_buffer_range.length() }; }