diff --git a/rpcs3/Emu/RSX/GL/GLGSRender.cpp b/rpcs3/Emu/RSX/GL/GLGSRender.cpp index 5762d4d60b..6e9db11391 100644 --- a/rpcs3/Emu/RSX/GL/GLGSRender.cpp +++ b/rpcs3/Emu/RSX/GL/GLGSRender.cpp @@ -1627,8 +1627,8 @@ void GLGSRender::flip(int buffer) if (image) { - buffer_width = render_target_texture->width(); - buffer_height = render_target_texture->height(); + buffer_width = rsx::apply_resolution_scale(buffer_width, true); + buffer_height = rsx::apply_resolution_scale(buffer_height, true); } } else if (auto surface = m_gl_texture_cache.find_texture_from_dimensions(absolute_address, buffer_width, buffer_height)) diff --git a/rpcs3/Emu/RSX/VK/VKGSRender.cpp b/rpcs3/Emu/RSX/VK/VKGSRender.cpp index f408549e48..f42278bfa6 100644 --- a/rpcs3/Emu/RSX/VK/VKGSRender.cpp +++ b/rpcs3/Emu/RSX/VK/VKGSRender.cpp @@ -3247,6 +3247,12 @@ void VKGSRender::flip(int buffer) image_to_flip = render_target_texture; } } + + if (image_to_flip) + { + buffer_width = rsx::apply_resolution_scale(buffer_width, true); + buffer_height = rsx::apply_resolution_scale(buffer_height, true); + } } else if (auto surface = m_texture_cache.find_texture_from_dimensions(absolute_address, buffer_width, buffer_height)) { @@ -3300,7 +3306,7 @@ void VKGSRender::flip(int buffer) } vk::copy_scaled_image(*m_current_command_buffer, image_to_flip->value, target_image, image_to_flip->current_layout, target_layout, - 0, 0, image_to_flip->width(), image_to_flip->height(), aspect_ratio.x, aspect_ratio.y, aspect_ratio.width, aspect_ratio.height, 1, VK_IMAGE_ASPECT_COLOR_BIT, false); + 0, 0, buffer_width, buffer_height, aspect_ratio.x, aspect_ratio.y, aspect_ratio.width, aspect_ratio.height, 1, VK_IMAGE_ASPECT_COLOR_BIT, false); if (target_layout != present_layout) {