diff options
| author | lat9nq <22451773+lat9nq@users.noreply.github.com> | 2023-05-17 22:15:08 -0400 | 
|---|---|---|
| committer | lat9nq <22451773+lat9nq@users.noreply.github.com> | 2023-05-17 22:19:57 -0400 | 
| commit | c1a8a508bc9bd01449412e08f5b06f74a560d9d3 (patch) | |
| tree | 20f9d86148548458bb384f10b7791883b943e364 | |
| parent | 9d4a2de72b8a56a9fe2d6a7982fea812d3c36160 (diff) | |
vulkan_device: Disable VK_KHR_push_descriptor on ANV
Mesa commit ff91c5ca42bc80aa411cb3fd8f550aa6fdd16bdc breaks
VK_KHR_push_descriptor usage on ANV drivers 22.3.0, so disable it
and allow games to boot.
| -rw-r--r-- | src/video_core/vulkan_common/vulkan_device.cpp | 11 | 
1 files changed, 11 insertions, 0 deletions
| diff --git a/src/video_core/vulkan_common/vulkan_device.cpp b/src/video_core/vulkan_common/vulkan_device.cpp index 9a8763e6a..f6e6f2736 100644 --- a/src/video_core/vulkan_common/vulkan_device.cpp +++ b/src/video_core/vulkan_common/vulkan_device.cpp @@ -471,6 +471,17 @@ Device::Device(VkInstance instance_, vk::PhysicalDevice physical_, VkSurfaceKHR          LOG_WARNING(Render_Vulkan, "ANV driver does not support native BGR format");          must_emulate_bgr565 = true;      } +    if (extensions.push_descriptor && is_intel_anv) { +        const u32 version = (properties.properties.driverVersion << 3) >> 3; +        if (version >= VK_MAKE_API_VERSION(0, 22, 3, 0)) { +            // Disable VK_KHR_push_descriptor due to +            // mesa/mesa/-/commit/ff91c5ca42bc80aa411cb3fd8f550aa6fdd16bdc +            LOG_WARNING(Render_Vulkan, +                        "ANV drivers 22.3.0 and later have broken VK_KHR_push_descriptor"); +            extensions.push_descriptor = false; +            loaded_extensions.erase(VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME); +        } +    }      if (is_mvk) {          LOG_WARNING(Render_Vulkan,                      "MVK driver breaks when using more than 16 vertex attributes/bindings"); | 
