From b6422c9a338976ba5684dd39be547ff65016d694 Mon Sep 17 00:00:00 2001 From: kd-11 Date: Tue, 4 Feb 2020 21:26:54 +0300 Subject: [PATCH] rsx: Fixup - Destination Y coordinate must be 'rebased' onto the current slice by subtracting its offset. Only the local path was affected this time --- rpcs3/Emu/RSX/Common/texture_cache_helpers.h | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/rpcs3/Emu/RSX/Common/texture_cache_helpers.h b/rpcs3/Emu/RSX/Common/texture_cache_helpers.h index 329bad2e55..3b8cf0ce5d 100644 --- a/rpcs3/Emu/RSX/Common/texture_cache_helpers.h +++ b/rpcs3/Emu/RSX/Common/texture_cache_helpers.h @@ -304,7 +304,7 @@ namespace rsx const u16 dst_w = static_cast(std::get<2>(clipped).width); const u16 src_w = static_cast(dst_w * attr.bpp) / section_bpp; - const u16 height = static_cast(std::get<2>(clipped).height); + const u16 height = static_cast(dst_h); if (scaling) { @@ -314,10 +314,10 @@ namespace rsx section->get_raw_texture(), surface_transform::identity, 0, - static_cast(std::get<0>(clipped).x), - static_cast(std::get<0>(clipped).y), - rsx::apply_resolution_scale(static_cast(std::get<1>(clipped).x), true), - rsx::apply_resolution_scale(static_cast(std::get<1>(clipped).y), true), + static_cast(std::get<0>(clipped).x), // src.x + static_cast(std::get<0>(clipped).y), // src.y + rsx::apply_resolution_scale(static_cast(std::get<1>(clipped).x), true), // dst.x + rsx::apply_resolution_scale(static_cast(dst_y - slice_begin), true), // dst.y slice, src_w, height, @@ -332,10 +332,10 @@ namespace rsx section->get_raw_texture(), surface_transform::identity, 0, - static_cast(std::get<0>(clipped).x), - static_cast(std::get<0>(clipped).y), - static_cast(std::get<1>(clipped).x), - static_cast(std::get<1>(clipped).y), + static_cast(std::get<0>(clipped).x), // src.x + static_cast(std::get<0>(clipped).y), // src.y + static_cast(std::get<1>(clipped).x), // dst.x + static_cast(dst_y - slice_begin), // dst.y 0, src_w, height,