diff --git a/src/video_core/renderer_vulkan/vk_rasterizer.cpp b/src/video_core/renderer_vulkan/vk_rasterizer.cpp index f43bea1220..c87c68b64a 100644 --- a/src/video_core/renderer_vulkan/vk_rasterizer.cpp +++ b/src/video_core/renderer_vulkan/vk_rasterizer.cpp @@ -82,7 +82,12 @@ VkViewport GetViewportState(const Device& device, const Maxwell& regs, size_t in if (lower_left) { // Flip by surface clip height - y += conv(static_cast(regs.surface_clip.height)); + const float clip_height = conv(static_cast(regs.surface_clip.height)); + if (src.scale_y < 0.0f && y >= clip_height) { + y = clip_height - y; + } else { + y += clip_height; + } height = -height; }