summaryrefslogtreecommitdiff
path: root/Source/Core/VideoBackends/Vulkan/Renderer.cpp
diff options
context:
space:
mode:
authorJules Blok <jules.blok@gmail.com>2017-07-06 01:26:06 +0200
committerGitHub <noreply@github.com>2017-07-06 01:26:06 +0200
commit29cc009706f133aac39ebaa7003d37555b926109 (patch)
treee95a51c7ea5abd471be45e00c98f11b308c21537 /Source/Core/VideoBackends/Vulkan/Renderer.cpp
parent421a2c57761d4f51f8bcaf866e17a8c8b38b4cd2 (diff)
parent8476d0271d56ef2d49657d31d97d42395585ad3b (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.cpp9
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();