From acf51f0ead97f03aa629714baa80027aec1a61ef Mon Sep 17 00:00:00 2001 From: kd-11 Date: Thu, 2 Jul 2020 20:45:30 +0300 Subject: [PATCH] rsx: Fix transfer descriptors for partially overlapping slices in head - Height must be corrected to skip the piece that exists before the current slice --- rpcs3/Emu/RSX/Common/texture_cache_helpers.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/rpcs3/Emu/RSX/Common/texture_cache_helpers.h b/rpcs3/Emu/RSX/Common/texture_cache_helpers.h index 63f34dfb87..236ffaf607 100644 --- a/rpcs3/Emu/RSX/Common/texture_cache_helpers.h +++ b/rpcs3/Emu/RSX/Common/texture_cache_helpers.h @@ -306,12 +306,15 @@ namespace rsx const u16 delta = u16(-rebased); src_y += delta; dst_y += delta; + + verify(HERE), dst_y == slice_begin; } verify(HERE), dst_y >= slice_begin; + + const auto h = std::min(section_end, slice_end) - dst_y; dst_y = (dst_y - slice_begin); - const auto h = std::min(section_end, slice_end) - section.dst_area.y; const auto src_width = rsx::apply_resolution_scale(section.src_area.width, true); const auto src_height = rsx::apply_resolution_scale(h, true); const auto dst_width = rsx::apply_resolution_scale(section.dst_area.width, true);