From fd5aaa096c18609e4c22e583611907e9712978c7 Mon Sep 17 00:00:00 2001 From: Stenzek Date: Tue, 8 May 2018 23:19:38 +1000 Subject: [PATCH] RenderBase: Ensure the draw size does not exceed the window size This was happening when crop was enabled, causing blank outputs for some Vulkan drivers (namely radv), as the draw rectangle is used as the viewport. --- Source/Core/VideoCommon/RenderBase.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Source/Core/VideoCommon/RenderBase.cpp b/Source/Core/VideoCommon/RenderBase.cpp index 76d40f5aa3..97b666cbe3 100644 --- a/Source/Core/VideoCommon/RenderBase.cpp +++ b/Source/Core/VideoCommon/RenderBase.cpp @@ -539,6 +539,10 @@ void Renderer::UpdateDrawRectangle() crop_width = win_width; } + // Clamp the draw width/height to the screen size, to ensure we don't render off-screen. + draw_width = std::min(draw_width, win_width); + draw_height = std::min(draw_height, win_height); + // ensure divisibility by 4 to make it compatible with all the video encoders draw_width = std::ceil(draw_width) - static_cast(std::ceil(draw_width)) % 4; draw_height = std::ceil(draw_height) - static_cast(std::ceil(draw_height)) % 4;