diff options
| author | 2021-01-24 20:21:11 -0300 | |
|---|---|---|
| committer | 2021-01-24 20:21:11 -0300 | |
| commit | 6a0143400fe427012baed198a88946de73ab63c6 (patch) | |
| tree | 87b8a9b9e183367f4e23850cd0b083da88210361 /src/video_core/vulkan_common | |
| parent | Merge pull request #5796 from ReinUsesLisp/vertex-a-bypass-vk (diff) | |
| download | yuzu-6a0143400fe427012baed198a88946de73ab63c6.tar.gz yuzu-6a0143400fe427012baed198a88946de73ab63c6.tar.xz yuzu-6a0143400fe427012baed198a88946de73ab63c6.zip | |
vulkan_device: Lift VK_EXT_extended_dynamic_state blacklist on RDNA
It seems to be safe to use this on new drivers.
Diffstat (limited to 'src/video_core/vulkan_common')
| -rw-r--r-- | src/video_core/vulkan_common/vulkan_device.cpp | 23 |
1 files changed, 0 insertions, 23 deletions
diff --git a/src/video_core/vulkan_common/vulkan_device.cpp b/src/video_core/vulkan_common/vulkan_device.cpp index 37d7b45a3..5b4209c72 100644 --- a/src/video_core/vulkan_common/vulkan_device.cpp +++ b/src/video_core/vulkan_common/vulkan_device.cpp | |||
| @@ -84,21 +84,6 @@ VkFormatFeatureFlags GetFormatFeatures(VkFormatProperties properties, FormatType | |||
| 84 | } | 84 | } |
| 85 | } | 85 | } |
| 86 | 86 | ||
| 87 | [[nodiscard]] bool IsRDNA(std::string_view device_name, VkDriverIdKHR driver_id) { | ||
| 88 | static constexpr std::array RDNA_DEVICES{ | ||
| 89 | "5700", | ||
| 90 | "5600", | ||
| 91 | "5500", | ||
| 92 | "5300", | ||
| 93 | }; | ||
| 94 | if (driver_id != VK_DRIVER_ID_AMD_PROPRIETARY_KHR) { | ||
| 95 | return false; | ||
| 96 | } | ||
| 97 | return std::any_of(RDNA_DEVICES.begin(), RDNA_DEVICES.end(), [device_name](const char* name) { | ||
| 98 | return device_name.find(name) != std::string_view::npos; | ||
| 99 | }); | ||
| 100 | } | ||
| 101 | |||
| 102 | std::unordered_map<VkFormat, VkFormatProperties> GetFormatProperties(vk::PhysicalDevice physical) { | 87 | std::unordered_map<VkFormat, VkFormatProperties> GetFormatProperties(vk::PhysicalDevice physical) { |
| 103 | static constexpr std::array formats{ | 88 | static constexpr std::array formats{ |
| 104 | VK_FORMAT_A8B8G8R8_UNORM_PACK32, | 89 | VK_FORMAT_A8B8G8R8_UNORM_PACK32, |
| @@ -436,14 +421,6 @@ Device::Device(VkInstance instance_, vk::PhysicalDevice physical_, VkSurfaceKHR | |||
| 436 | "Blacklisting RADV for VK_EXT_extended_dynamic state, likely due to a bug in yuzu"); | 421 | "Blacklisting RADV for VK_EXT_extended_dynamic state, likely due to a bug in yuzu"); |
| 437 | ext_extended_dynamic_state = false; | 422 | ext_extended_dynamic_state = false; |
| 438 | } | 423 | } |
| 439 | if (ext_extended_dynamic_state && IsRDNA(properties.deviceName, driver_id)) { | ||
| 440 | // AMD's proprietary driver supports VK_EXT_extended_dynamic_state but on RDNA devices it | ||
| 441 | // seems to cause stability issues | ||
| 442 | LOG_WARNING( | ||
| 443 | Render_Vulkan, | ||
| 444 | "Blacklisting AMD proprietary on RDNA devices from VK_EXT_extended_dynamic_state"); | ||
| 445 | ext_extended_dynamic_state = false; | ||
| 446 | } | ||
| 447 | 424 | ||
| 448 | graphics_queue = logical.GetQueue(graphics_family); | 425 | graphics_queue = logical.GetQueue(graphics_family); |
| 449 | present_queue = logical.GetQueue(present_family); | 426 | present_queue = logical.GetQueue(present_family); |