diff options
| author | TellowKrinkle <tellowkrinkle@gmail.com> | 2022-06-12 21:43:00 -0500 |
|---|---|---|
| committer | TellowKrinkle <tellowkrinkle@gmail.com> | 2022-06-14 00:48:47 -0500 |
| commit | db6e928c8d4dab785cb7ea2c04e8f03325badc8d (patch) | |
| tree | 281f3bef5a0e3eed83e91d13d0a55d8d6c040030 /Source/Core | |
| parent | 70bf89fa59e3bd48633677374ca26124d36ff7e5 (diff) | |
VideoCommon: Fix Intel GPUs on Metal/Vulkan locking up in ubershaders
Diffstat (limited to 'Source/Core')
| -rw-r--r-- | Source/Core/VideoBackends/Vulkan/VulkanContext.cpp | 4 | ||||
| -rw-r--r-- | Source/Core/VideoCommon/DriverDetails.cpp | 2 | ||||
| -rw-r--r-- | Source/Core/VideoCommon/DriverDetails.h | 6 |
3 files changed, 12 insertions, 0 deletions
diff --git a/Source/Core/VideoBackends/Vulkan/VulkanContext.cpp b/Source/Core/VideoBackends/Vulkan/VulkanContext.cpp index 0a82d6451f..1dc02e689a 100644 --- a/Source/Core/VideoBackends/Vulkan/VulkanContext.cpp +++ b/Source/Core/VideoBackends/Vulkan/VulkanContext.cpp @@ -377,6 +377,10 @@ void VulkanContext::PopulateBackendInfoFeatures(VideoConfig* config, VkPhysicalD // We will use shader blending, so disable hardware dual source blending. config->backend_info.bSupportsDualSourceBlend = false; } + + // Dynamic sampler indexing locks up Intel GPUs on MoltenVK/Metal + if (DriverDetails::HasBug(DriverDetails::BUG_BROKEN_DYNAMIC_SAMPLER_INDEXING)) + config->backend_info.bSupportsDynamicSamplerIndexing = false; } void VulkanContext::PopulateBackendInfoMultisampleModes( diff --git a/Source/Core/VideoCommon/DriverDetails.cpp b/Source/Core/VideoCommon/DriverDetails.cpp index 6d7749c949..35e0808469 100644 --- a/Source/Core/VideoCommon/DriverDetails.cpp +++ b/Source/Core/VideoCommon/DriverDetails.cpp @@ -142,6 +142,8 @@ constexpr BugInfo m_known_bugs[] = { -1.0, -1.0, true}, {API_VULKAN, OS_OSX, VENDOR_APPLE, DRIVER_PORTABILITY, Family::UNKNOWN, BUG_BROKEN_DISCARD_WITH_EARLY_Z, -1.0, -1.0, true}, + {API_VULKAN, OS_OSX, VENDOR_INTEL, DRIVER_PORTABILITY, Family::UNKNOWN, + BUG_BROKEN_DYNAMIC_SAMPLER_INDEXING, -1.0, -1.0, true}, }; static std::map<Bug, BugInfo> m_bugs; diff --git a/Source/Core/VideoCommon/DriverDetails.h b/Source/Core/VideoCommon/DriverDetails.h index 70c39450c9..80159495ee 100644 --- a/Source/Core/VideoCommon/DriverDetails.h +++ b/Source/Core/VideoCommon/DriverDetails.h @@ -328,6 +328,12 @@ enum Bug // Started version: -1 // Ended version: -1 BUG_BROKEN_DISCARD_WITH_EARLY_Z, + + // BUG: Using dynamic sampler indexing locks up the GPU + // Affected devices: Intel (macOS Metal) + // Started version: -1 + // Ended version: -1 + BUG_BROKEN_DYNAMIC_SAMPLER_INDEXING, }; // Initializes our internal vendor, device family, and driver version |
