summaryrefslogtreecommitdiff
path: root/Source/Core/VideoBackends/Vulkan/VulkanContext.cpp
diff options
context:
space:
mode:
authorCrossVR <jules.blok@gmail.com>2025-07-21 05:48:04 +0900
committerCrossVR <jules.blok@gmail.com>2025-07-21 14:07:26 +0900
commit0ace5f5d3db86e3f98e421c0ed3495ffe39a02fc (patch)
tree14581223c7ae0fe9d0f0554d3aa6647fb06cfe45 /Source/Core/VideoBackends/Vulkan/VulkanContext.cpp
parentdccd8709d8c8df70493def8813dd8039dfe5ba16 (diff)
Vulkan: Add support for unrestricted depth range.
Diffstat (limited to 'Source/Core/VideoBackends/Vulkan/VulkanContext.cpp')
-rw-r--r--Source/Core/VideoBackends/Vulkan/VulkanContext.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/Source/Core/VideoBackends/Vulkan/VulkanContext.cpp b/Source/Core/VideoBackends/Vulkan/VulkanContext.cpp
index c6ff5e148d..60580aff40 100644
--- a/Source/Core/VideoBackends/Vulkan/VulkanContext.cpp
+++ b/Source/Core/VideoBackends/Vulkan/VulkanContext.cpp
@@ -459,6 +459,7 @@ void VulkanContext::PopulateBackendInfo(BackendInfo* backend_info)
backend_info->bSupportsDynamicVertexLoader = true; // Assumed support.
backend_info->bSupportsVSLinePointExpand = true; // Assumed support.
backend_info->bSupportsHDROutput = true; // Assumed support.
+ backend_info->bSupportsUnrestrictedDepthRange = false; // Dependent on features.
}
void VulkanContext::PopulateBackendInfoAdapters(BackendInfo* backend_info, const GPUList& gpu_list)
@@ -663,6 +664,16 @@ bool VulkanContext::SelectDeviceExtensions(bool enable_surface)
AddExtension(VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME, false);
AddExtension(VK_EXT_MEMORY_BUDGET_EXTENSION_NAME, false);
+ if (!DriverDetails::HasBug(DriverDetails::BUG_BROKEN_D32F_CLEAR))
+ {
+ // Unrestricted depth range is one of the few extensions that changes the behavior
+ // of Vulkan just by being enabled, so we rely on lazy evaluation to ensure it is
+ // not enabled unless depth clamp control is supported.
+ g_backend_info.bSupportsUnrestrictedDepthRange =
+ AddExtension(VK_EXT_DEPTH_CLAMP_CONTROL_EXTENSION_NAME, false) &&
+ AddExtension(VK_EXT_DEPTH_RANGE_UNRESTRICTED_EXTENSION_NAME, false);
+ }
+
return true;
}