diff options
| author | Jules Blok <jules.blok@gmail.com> | 2017-07-06 01:26:06 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-07-06 01:26:06 +0200 |
| commit | 29cc009706f133aac39ebaa7003d37555b926109 (patch) | |
| tree | e95a51c7ea5abd471be45e00c98f11b308c21537 /Source/Core/VideoBackends/Vulkan/Renderer.cpp | |
| parent | 421a2c57761d4f51f8bcaf866e17a8c8b38b4cd2 (diff) | |
| parent | 8476d0271d56ef2d49657d31d97d42395585ad3b (diff) | |
Merge pull request #5697 from Armada651/quad-buffer
Implement Quad-Buffered stereoscopy support
Diffstat (limited to 'Source/Core/VideoBackends/Vulkan/Renderer.cpp')
| -rw-r--r-- | Source/Core/VideoBackends/Vulkan/Renderer.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/Source/Core/VideoBackends/Vulkan/Renderer.cpp b/Source/Core/VideoBackends/Vulkan/Renderer.cpp index 4800d99424..9a26df8548 100644 --- a/Source/Core/VideoBackends/Vulkan/Renderer.cpp +++ b/Source/Core/VideoBackends/Vulkan/Renderer.cpp @@ -949,6 +949,10 @@ void Renderer::BlitScreen(VkRenderPass render_pass, const TargetRectangle& dst_r post_processor->BlitFromTexture(left_rect, src_rect, src_tex, 0, render_pass); post_processor->BlitFromTexture(right_rect, src_rect, src_tex, 1, render_pass); } + else if (g_ActiveConfig.iStereoMode == STEREO_QUADBUFFER) + { + post_processor->BlitFromTexture(dst_rect, src_rect, src_tex, -1, render_pass); + } else { post_processor->BlitFromTexture(dst_rect, src_rect, src_tex, 0, render_pass); @@ -1186,6 +1190,11 @@ void Renderer::CheckForConfigChanges() m_swap_chain->SetVSync(g_ActiveConfig.IsVSync()); } + // For quad-buffered stereo we need to change the layer count, so recreate the swap chain. + if (m_swap_chain && + (g_ActiveConfig.iStereoMode == STEREO_QUADBUFFER) != m_swap_chain->IsStereoEnabled()) + ResizeSwapChain(); + // Wipe sampler cache if force texture filtering or anisotropy changes. if (anisotropy_changed || force_texture_filtering_changed) ResetSamplerStates(); |
