Browse Source

[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 <crueter@eden-emu.dev>

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2954
Reviewed-by: Caio Oliveira <caiooliveirafarias0@gmail.com>
pull/2955/head
crueter 2 months ago
parent
commit
9406438d51
No known key found for this signature in database GPG Key ID: 425ACD2D4830EBC6
  1. 18
      src/video_core/vulkan_common/vulkan_device.cpp

18
src/video_core/vulkan_common/vulkan_device.cpp

@ -611,6 +611,24 @@ Device::Device(VkInstance instance_, vk::PhysicalDevice physical_, VkSurfaceKHR
dynamic_state3_enables = false; 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 && if (extensions.extended_dynamic_state3 &&
(is_amd_driver || driver_id == VK_DRIVER_ID_SAMSUNG_PROPRIETARY) && !force_extensions) { (is_amd_driver || driver_id == VK_DRIVER_ID_SAMSUNG_PROPRIETARY) && !force_extensions) {
// AMD and Samsung drivers have broken extendedDynamicState3ColorBlendEquation // AMD and Samsung drivers have broken extendedDynamicState3ColorBlendEquation

Loading…
Cancel
Save