summaryrefslogtreecommitdiffstats
path: root/src/video_core/renderer_vulkan/vk_swapchain.h
diff options
context:
space:
mode:
authorameerj <52414509+ameerj@users.noreply.github.com>2021-09-13 02:32:23 +0200
committerameerj <52414509+ameerj@users.noreply.github.com>2021-09-13 02:32:23 +0200
commit35e5a67a839c5b1b5f12d21b2d4e3911e1af33b7 (patch)
tree97277e9d79845b83fdde1f938b68932e69067f6b /src/video_core/renderer_vulkan/vk_swapchain.h
parentMerge pull request #7002 from ameerj/vk-state-unused (diff)
downloadyuzu-35e5a67a839c5b1b5f12d21b2d4e3911e1af33b7.tar
yuzu-35e5a67a839c5b1b5f12d21b2d4e3911e1af33b7.tar.gz
yuzu-35e5a67a839c5b1b5f12d21b2d4e3911e1af33b7.tar.bz2
yuzu-35e5a67a839c5b1b5f12d21b2d4e3911e1af33b7.tar.lz
yuzu-35e5a67a839c5b1b5f12d21b2d4e3911e1af33b7.tar.xz
yuzu-35e5a67a839c5b1b5f12d21b2d4e3911e1af33b7.tar.zst
yuzu-35e5a67a839c5b1b5f12d21b2d4e3911e1af33b7.zip
Diffstat (limited to '')
-rw-r--r--src/video_core/renderer_vulkan/vk_swapchain.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/video_core/renderer_vulkan/vk_swapchain.h b/src/video_core/renderer_vulkan/vk_swapchain.h
index 5bce41e21..61a6d959e 100644
--- a/src/video_core/renderer_vulkan/vk_swapchain.h
+++ b/src/video_core/renderer_vulkan/vk_swapchain.h
@@ -33,6 +33,11 @@ public:
/// Presents the rendered image to the swapchain.
void Present(VkSemaphore render_semaphore);
+ /// Returns true when the swapchain needs to be recreated.
+ bool NeedsRecreation(bool is_srgb) const {
+ return HasColorSpaceChanged(is_srgb) || IsSubOptimal() || NeedsPresentModeUpdate();
+ }
+
/// Returns true when the color space has changed.
bool HasColorSpaceChanged(bool is_srgb) const {
return current_srgb != is_srgb;
@@ -84,6 +89,10 @@ private:
void Destroy();
+ bool HasFpsUnlockChanged() const;
+
+ bool NeedsPresentModeUpdate() const;
+
const VkSurfaceKHR surface;
const Device& device;
VKScheduler& scheduler;
@@ -102,8 +111,10 @@ private:
VkFormat image_view_format{};
VkExtent2D extent{};
+ VkPresentModeKHR present_mode{};
bool current_srgb{};
+ bool current_fps_unlocked{};
bool is_outdated{};
bool is_suboptimal{};
};