diff options
| author | CrossVR <jules.blok@gmail.com> | 2025-07-21 05:48:04 +0900 |
|---|---|---|
| committer | CrossVR <jules.blok@gmail.com> | 2025-07-21 14:07:26 +0900 |
| commit | 0ace5f5d3db86e3f98e421c0ed3495ffe39a02fc (patch) | |
| tree | 14581223c7ae0fe9d0f0554d3aa6647fb06cfe45 /Source/Core/VideoBackends/Vulkan/VulkanContext.cpp | |
| parent | dccd8709d8c8df70493def8813dd8039dfe5ba16 (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.cpp | 11 |
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; } |
