aboutsummaryrefslogtreecommitdiff
path: root/src/video_core/vulkan_common/vulkan_device.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/video_core/vulkan_common/vulkan_device.cpp')
-rw-r--r--src/video_core/vulkan_common/vulkan_device.cpp18
1 files changed, 18 insertions, 0 deletions
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