diff options
| author | Connor McLaughlin <stenzek@gmail.com> | 2019-04-28 23:37:51 +1000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-04-28 23:37:51 +1000 |
| commit | 1b1662773eff56d4c25818b7470ff2d6de19cb53 (patch) | |
| tree | 94e95f47b04119d90fb68e62fdecae3e9995e41d /Source/Core/VideoBackends/Vulkan/Renderer.cpp | |
| parent | d2d8d7ce90f92bb45e2d8b645ec72f104fee5e6b (diff) | |
| parent | 53af27b1338827d6f08ef87a8f360dc1ceb550f8 (diff) | |
Merge pull request #8048 from stenzek/vulkan-negative-scissor-rect
Vulkan: Don't set a negative offset in scissor rect
Diffstat (limited to 'Source/Core/VideoBackends/Vulkan/Renderer.cpp')
| -rw-r--r-- | Source/Core/VideoBackends/Vulkan/Renderer.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/Source/Core/VideoBackends/Vulkan/Renderer.cpp b/Source/Core/VideoBackends/Vulkan/Renderer.cpp index 8d702adb45..ac3dbe4c2a 100644 --- a/Source/Core/VideoBackends/Vulkan/Renderer.cpp +++ b/Source/Core/VideoBackends/Vulkan/Renderer.cpp @@ -561,6 +561,19 @@ void Renderer::SetScissorRect(const MathUtil::Rectangle<int>& rc) { VkRect2D scissor = {{rc.left, rc.top}, {static_cast<u32>(rc.GetWidth()), static_cast<u32>(rc.GetHeight())}}; + + // See Vulkan spec for vkCmdSetScissor: + // The x and y members of offset must be greater than or equal to 0. + if (scissor.offset.x < 0) + { + scissor.extent.width -= -scissor.offset.x; + scissor.offset.x = 0; + } + if (scissor.offset.y < 0) + { + scissor.extent.height -= -scissor.offset.y; + scissor.offset.y = 0; + } StateTracker::GetInstance()->SetScissor(scissor); } |
