diff options
| author | Stenzek <stenzek@gmail.com> | 2018-05-08 23:19:38 +1000 |
|---|---|---|
| committer | Stenzek <stenzek@gmail.com> | 2018-05-08 23:19:38 +1000 |
| commit | fd5aaa096c18609e4c22e583611907e9712978c7 (patch) | |
| tree | 5fc6b8b971e2c0b0ac56f4112850c06bceeb86b6 /Source/Core/VideoCommon/RenderBase.cpp | |
| parent | 90f869e9408a1b8509bafb8800998e439bb3d9af (diff) | |
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.
Diffstat (limited to 'Source/Core/VideoCommon/RenderBase.cpp')
| -rw-r--r-- | Source/Core/VideoCommon/RenderBase.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
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<int>(std::ceil(draw_width)) % 4; draw_height = std::ceil(draw_height) - static_cast<int>(std::ceil(draw_height)) % 4; |
