From cc7a70cb6d87ddd462d542439098037b85e3d779 Mon Sep 17 00:00:00 2001 From: Alessio Date: Fri, 15 Mar 2024 13:28:41 +0000 Subject: [PATCH] AMD still has broken extendedDynamicState3ColorBlendEquation on RDNA3. --- .../vulkan_common/vulkan_device.cpp | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/src/video_core/vulkan_common/vulkan_device.cpp b/src/video_core/vulkan_common/vulkan_device.cpp index 7dbe1b7a2b..ebe9cd4a67 100644 --- a/src/video_core/vulkan_common/vulkan_device.cpp +++ b/src/video_core/vulkan_common/vulkan_device.cpp @@ -595,16 +595,15 @@ Device::Device(VkInstance instance_, vk::PhysicalDevice physical_, VkSurfaceKHR dynamic_state3_enables = false; } } - // In the past, AMD proprietary drivers had broken extendedDynamicState3ColorBlendEquation - // support. It should work now, even with MSAA surfaces. Uncomment the following code any new - // drivers by AMD bring back the issue as a regression. - // if (extensions.extended_dynamic_state3 && is_amd_driver) { - // LOG_WARNING(Render_Vulkan, - // "AMD drivers have broken extendedDynamicState3ColorBlendEquation"); - // features.extended_dynamic_state3.extendedDynamicState3ColorBlendEnable = false; - // features.extended_dynamic_state3.extendedDynamicState3ColorBlendEquation = false; - // dynamic_state3_blending = false; - //} + // AMD still has broken extendedDynamicState3ColorBlendEquation on RDNA3. + // TODO: distinguis RDNA3 from other uArchs. + if (extensions.extended_dynamic_state3 && is_amd_driver) { + LOG_WARNING(Render_Vulkan, + "AMD drivers have broken extendedDynamicState3ColorBlendEquation"); + features.extended_dynamic_state3.extendedDynamicState3ColorBlendEnable = false; + features.extended_dynamic_state3.extendedDynamicState3ColorBlendEquation = false; + dynamic_state3_blending = false; + } if (extensions.vertex_input_dynamic_state && is_radv) { // TODO(ameerj): Blacklist only offending driver versions // TODO(ameerj): Confirm if RDNA1 is affected