summaryrefslogtreecommitdiff
path: root/Source/Core
diff options
context:
space:
mode:
authorCrossVR <jules.blok@gmail.com>2025-07-27 05:43:17 +0900
committerCrossVR <jules.blok@gmail.com>2025-07-29 08:42:22 +0900
commit59e9267e3d33cb29f06d8a4f583e7633360ef259 (patch)
treeed456b7b1e4a1b036e6cc8fd4f041a768b2152dc /Source/Core
parent4d0cf1315e599bbeed67ef9eca993874869e3e85 (diff)
DriverDetails: Disable depth_clamp_control on AMD official drivers
Diffstat (limited to 'Source/Core')
-rw-r--r--Source/Core/VideoBackends/Vulkan/VulkanContext.cpp2
-rw-r--r--Source/Core/VideoCommon/DriverDetails.cpp3
-rw-r--r--Source/Core/VideoCommon/DriverDetails.h9
3 files changed, 12 insertions, 2 deletions
diff --git a/Source/Core/VideoBackends/Vulkan/VulkanContext.cpp b/Source/Core/VideoBackends/Vulkan/VulkanContext.cpp
index 60580aff40..93cd5a969b 100644
--- a/Source/Core/VideoBackends/Vulkan/VulkanContext.cpp
+++ b/Source/Core/VideoBackends/Vulkan/VulkanContext.cpp
@@ -664,7 +664,7 @@ 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))
+ if (!DriverDetails::HasBug(DriverDetails::BUG_BROKEN_DEPTH_CLAMP_CONTROL))
{
// 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
diff --git a/Source/Core/VideoCommon/DriverDetails.cpp b/Source/Core/VideoCommon/DriverDetails.cpp
index 037c5c0439..41f49f490a 100644
--- a/Source/Core/VideoCommon/DriverDetails.cpp
+++ b/Source/Core/VideoCommon/DriverDetails.cpp
@@ -158,6 +158,8 @@ constexpr BugInfo m_known_bugs[] = {
BUG_BROKEN_DYNAMIC_SAMPLER_INDEXING, -1.0, -1.0, true},
{API_VULKAN, OS_ANDROID, VENDOR_QUALCOMM, DRIVER_QUALCOMM, Family::UNKNOWN,
BUG_SLOW_OPTIMAL_IMAGE_TO_BUFFER_COPY, -1.0, -1.0, true},
+ {API_VULKAN, OS_WINDOWS, VENDOR_ATI, DRIVER_ATI, Family::UNKNOWN,
+ BUG_BROKEN_DEPTH_CLAMP_CONTROL, -1.0, -1.0, true},
};
static std::map<Bug, BugInfo> m_bugs;
@@ -297,6 +299,7 @@ static const char* to_string(Bug bug)
case BUG_BROKEN_DISCARD_WITH_EARLY_Z: return "broken-discard-with-early-z";
case BUG_BROKEN_DYNAMIC_SAMPLER_INDEXING: return "broken-dynamic-sampler-indexing";
case BUG_SLOW_OPTIMAL_IMAGE_TO_BUFFER_COPY: return "slow-optimal-image-to-buffer-copy";
+ case BUG_BROKEN_DEPTH_CLAMP_CONTROL: return "broken-depth-clamp-control";
}
return "Unknown";
}
diff --git a/Source/Core/VideoCommon/DriverDetails.h b/Source/Core/VideoCommon/DriverDetails.h
index 5d45da43a3..fbf36928e1 100644
--- a/Source/Core/VideoCommon/DriverDetails.h
+++ b/Source/Core/VideoCommon/DriverDetails.h
@@ -342,7 +342,14 @@ enum Bug
// Affected devices: Adreno
// Started Version: -1
// Ended Version: -1
- BUG_SLOW_OPTIMAL_IMAGE_TO_BUFFER_COPY
+ BUG_SLOW_OPTIMAL_IMAGE_TO_BUFFER_COPY,
+
+ // BUG: Incorrect implementation of VK_EXT_depth_clamp_control causes incorrect depth values to
+ // be written to the depth buffer.
+ // Affected devices: AMD (Windows)
+ // Started Version: -1
+ // Ended Version: -1
+ BUG_BROKEN_DEPTH_CLAMP_CONTROL
};
// Initializes our internal vendor, device family, and driver version