From 9406438d51a3d827c2d6b6bc77dc36734ec2f991 Mon Sep 17 00:00:00 2001 From: crueter Date: Wed, 5 Nov 2025 05:46:23 +0100 Subject: [PATCH] [vk] disable VK_EXT_vertex_input_dynamic_state again (#2954) DO NOT REMOVE THIS! EVER! EVEN IF MESA CLAIMS TO FIX IT! A few months ago, Aleksandr and I did extensive testing on a 6600 and 6950XT and were able to confirm that VK_EXT_vertex_input_dynamic_state is indeed broken beyond repair on RADV. MESA has claimed multiple times to fix this, yet it's never budged once (average GitLab users) Most games literally do not work without this. DO. NOT. REMOVE. EVER! Signed-off-by: crueter Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2954 Reviewed-by: Caio Oliveira --- src/video_core/vulkan_common/vulkan_device.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/video_core/vulkan_common/vulkan_device.cpp b/src/video_core/vulkan_common/vulkan_device.cpp index 9b7f426266..170627ea1b 100644 --- a/src/video_core/vulkan_common/vulkan_device.cpp +++ b/src/video_core/vulkan_common/vulkan_device.cpp @@ -611,6 +611,24 @@ Device::Device(VkInstance instance_, vk::PhysicalDevice physical_, VkSurfaceKHR dynamic_state3_enables = false; } } + + // DO NOT REMOVE THIS!!!!!!!!!!!!!!!!! + // We have confirmed on multiple different occasions that this is completely broken on RADV + // Apparently very old versions of RADV on RDNA3 as well + // RDNA1 status is unknown + // https://gitlab.freedesktop.org/mesa/mesa/-/issues/6577 + // MESA claims to have fixed it multiple times yet they haven't (expected for a project that uses GitLab) + if (extensions.vertex_input_dynamic_state && is_radv) { + const bool is_rdna2 = + supported_extensions.contains(VK_KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME); + if (is_rdna2 && !force_extensions) { + LOG_WARNING(Render_Vulkan, + "RADV has broken VK_EXT_vertex_input_dynamic_state on RDNA2 hardware"); + RemoveExtensionFeature(extensions.vertex_input_dynamic_state, + features.vertex_input_dynamic_state, + VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAME); + } + } if (extensions.extended_dynamic_state3 && (is_amd_driver || driver_id == VK_DRIVER_ID_SAMSUNG_PROPRIETARY) && !force_extensions) { // AMD and Samsung drivers have broken extendedDynamicState3ColorBlendEquation