summaryrefslogtreecommitdiff
path: root/src/video_core/renderer_vulkan
diff options
context:
space:
mode:
Diffstat (limited to 'src/video_core/renderer_vulkan')
-rw-r--r--src/video_core/renderer_vulkan/vk_rasterizer.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/video_core/renderer_vulkan/vk_rasterizer.cpp b/src/video_core/renderer_vulkan/vk_rasterizer.cpp
index 83f2b6045..61d03daae 100644
--- a/src/video_core/renderer_vulkan/vk_rasterizer.cpp
+++ b/src/video_core/renderer_vulkan/vk_rasterizer.cpp
@@ -975,6 +975,19 @@ void RasterizerVulkan::UpdateScissorsState(Tegra::Engines::Maxwell3D::Regs& regs
975 if (!state_tracker.TouchScissors()) { 975 if (!state_tracker.TouchScissors()) {
976 return; 976 return;
977 } 977 }
978 if (!regs.viewport_scale_offset_enabled) {
979 const auto x = static_cast<float>(regs.surface_clip.x);
980 const auto y = static_cast<float>(regs.surface_clip.y);
981 const auto width = static_cast<float>(regs.surface_clip.width);
982 const auto height = static_cast<float>(regs.surface_clip.height);
983 VkRect2D scissor;
984 scissor.offset.x = static_cast<u32>(x);
985 scissor.offset.y = static_cast<u32>(y);
986 scissor.extent.width = static_cast<u32>(width != 0.0f ? width : 1.0f);
987 scissor.extent.height = static_cast<u32>(height != 0.0f ? height : 1.0f);
988 scheduler.Record([scissor](vk::CommandBuffer cmdbuf) { cmdbuf.SetScissor(0, scissor); });
989 return;
990 }
978 u32 up_scale = 1; 991 u32 up_scale = 1;
979 u32 down_shift = 0; 992 u32 down_shift = 0;
980 if (texture_cache.IsRescaling()) { 993 if (texture_cache.IsRescaling()) {