diff --git a/rpcs3/Emu/RSX/GL/glutils/blitter.cpp b/rpcs3/Emu/RSX/GL/glutils/blitter.cpp index 0d3bf16267..e5a36d11cf 100644 --- a/rpcs3/Emu/RSX/GL/glutils/blitter.cpp +++ b/rpcs3/Emu/RSX/GL/glutils/blitter.cpp @@ -96,7 +96,18 @@ namespace gl ensure(real_src->aspect() == real_dst->aspect()); - if (src_rect.width() == dst_rect.width() && src_rect.height() == dst_rect.height() && + if (xfer_info.flip_horizontal) + { + src_rect.flip_horizontal(); + } + + if (xfer_info.flip_vertical) + { + src_rect.flip_vertical(); + } + + if (src_rect.width() == dst_rect.width() && + src_rect.height() == dst_rect.height() && !src_rect.is_flipped() && !dst_rect.is_flipped()) { copy_image(cmd, real_src, real_dst, 0, 0, position3i{ src_rect.x1, src_rect.y1, 0 }, position3i{ dst_rect.x1, dst_rect.y1, 0 }, size3i{ src_rect.width(), src_rect.height(), 1 }); @@ -137,16 +148,6 @@ namespace gl gl::fbo::attachment dst_att{ blit_dst, static_cast(attachment) }; dst_att = *real_dst; - if (xfer_info.flip_horizontal) - { - src_rect.flip_horizontal(); - } - - if (xfer_info.flip_vertical) - { - src_rect.flip_vertical(); - } - blit_src.blit(blit_dst, src_rect, dst_rect, target, interp); // Release the attachments explicitly (not doing so causes glitches, e.g Journey Menu)