diff options
| author | 2022-08-23 18:37:40 -0500 | |
|---|---|---|
| committer | 2022-08-23 18:38:34 -0500 | |
| commit | 0c8aeb09d2cdbfaeea84a61e3e904543ae928a4f (patch) | |
| tree | 81703a4fec195a660507eadb8d15ee0410ef493b /src | |
| parent | Merge pull request #8799 from liamwhite/where-did-the-padding-go (diff) | |
| download | yuzu-0c8aeb09d2cdbfaeea84a61e3e904543ae928a4f.tar.gz yuzu-0c8aeb09d2cdbfaeea84a61e3e904543ae928a4f.tar.xz yuzu-0c8aeb09d2cdbfaeea84a61e3e904543ae928a4f.zip | |
video_core: vulkan: rasterizer: Workaround on viewport swizzle on AMD
Diffstat (limited to '')
| -rw-r--r-- | src/video_core/renderer_vulkan/vk_rasterizer.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/video_core/renderer_vulkan/vk_rasterizer.cpp b/src/video_core/renderer_vulkan/vk_rasterizer.cpp index 16e46d3e5..7e40c2df1 100644 --- a/src/video_core/renderer_vulkan/vk_rasterizer.cpp +++ b/src/video_core/renderer_vulkan/vk_rasterizer.cpp | |||
| @@ -69,10 +69,17 @@ VkViewport GetViewportState(const Device& device, const Maxwell& regs, size_t in | |||
| 69 | const float width = conv(src.scale_x * 2.0f); | 69 | const float width = conv(src.scale_x * 2.0f); |
| 70 | float y = conv(src.translate_y - src.scale_y); | 70 | float y = conv(src.translate_y - src.scale_y); |
| 71 | float height = conv(src.scale_y * 2.0f); | 71 | float height = conv(src.scale_y * 2.0f); |
| 72 | if (regs.screen_y_control.y_negate) { | 72 | bool y_negate = regs.screen_y_control.y_negate; |
| 73 | |||
| 74 | if (!device.IsNvViewportSwizzleSupported()) { | ||
| 75 | y_negate = y_negate != (src.swizzle.y == Maxwell::ViewportSwizzle::NegativeY); | ||
| 76 | } | ||
| 77 | |||
| 78 | if (y_negate) { | ||
| 73 | y += height; | 79 | y += height; |
| 74 | height = -height; | 80 | height = -height; |
| 75 | } | 81 | } |
| 82 | |||
| 76 | const float reduce_z = regs.depth_mode == Maxwell::DepthMode::MinusOneToOne ? 1.0f : 0.0f; | 83 | const float reduce_z = regs.depth_mode == Maxwell::DepthMode::MinusOneToOne ? 1.0f : 0.0f; |
| 77 | VkViewport viewport{ | 84 | VkViewport viewport{ |
| 78 | .x = x, | 85 | .x = x, |