diff options
| author | 2021-09-13 22:22:50 +0200 | |
|---|---|---|
| committer | 2021-09-13 23:17:37 +0200 | |
| commit | e7c8a0bb23aa0183bbfcb616d09131e825ac8d04 (patch) | |
| tree | 6dfca90edd1da79c9c7f71ea79886f5ca39f3673 | |
| parent | Merge pull request #6900 from ameerj/attr-reorder (diff) | |
| download | yuzu-e7c8a0bb23aa0183bbfcb616d09131e825ac8d04.tar.gz yuzu-e7c8a0bb23aa0183bbfcb616d09131e825ac8d04.tar.xz yuzu-e7c8a0bb23aa0183bbfcb616d09131e825ac8d04.zip | |
Vulkan: Blacklist Int8Float16 Extension on AMD on driver 21.9.1
| -rw-r--r-- | src/video_core/vulkan_common/vulkan_device.cpp | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/video_core/vulkan_common/vulkan_device.cpp b/src/video_core/vulkan_common/vulkan_device.cpp index 86ca4be54..c7f0d26ce 100644 --- a/src/video_core/vulkan_common/vulkan_device.cpp +++ b/src/video_core/vulkan_common/vulkan_device.cpp | |||
| @@ -243,6 +243,7 @@ Device::Device(VkInstance instance_, vk::PhysicalDevice physical_, VkSurfaceKHR | |||
| 243 | SetupFamilies(surface); | 243 | SetupFamilies(surface); |
| 244 | SetupFeatures(); | 244 | SetupFeatures(); |
| 245 | SetupProperties(); | 245 | SetupProperties(); |
| 246 | CollectTelemetryParameters(); | ||
| 246 | 247 | ||
| 247 | const auto queue_cis = GetDeviceQueueCreateInfos(); | 248 | const auto queue_cis = GetDeviceQueueCreateInfos(); |
| 248 | const std::vector extensions = LoadExtensions(surface != nullptr); | 249 | const std::vector extensions = LoadExtensions(surface != nullptr); |
| @@ -368,6 +369,18 @@ Device::Device(VkInstance instance_, vk::PhysicalDevice physical_, VkSurfaceKHR | |||
| 368 | }; | 369 | }; |
| 369 | SetNext(next, demote); | 370 | SetNext(next, demote); |
| 370 | 371 | ||
| 372 | if (driver_id == VK_DRIVER_ID_AMD_PROPRIETARY || driver_id == VK_DRIVER_ID_AMD_OPEN_SOURCE) { | ||
| 373 | const u32 version = properties.driverVersion; | ||
| 374 | // Broken in this driver | ||
| 375 | if (version > VK_MAKE_API_VERSION(0, 2, 0, 193)) { | ||
| 376 | LOG_WARNING(Render_Vulkan, "AMD proprietary driver versions newer than 21.9.1 " | ||
| 377 | "(windows) / 0.2.0.194 (amdvlk) have " | ||
| 378 | "broken VkPhysicalDeviceFloat16Int8FeaturesKHR"); | ||
| 379 | is_int8_supported = false; | ||
| 380 | is_float16_supported = false; | ||
| 381 | } | ||
| 382 | } | ||
| 383 | |||
| 371 | if (is_int8_supported || is_float16_supported) { | 384 | if (is_int8_supported || is_float16_supported) { |
| 372 | VkPhysicalDeviceFloat16Int8FeaturesKHR float16_int8{ | 385 | VkPhysicalDeviceFloat16Int8FeaturesKHR float16_int8{ |
| 373 | .sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR, | 386 | .sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR, |
| @@ -560,7 +573,6 @@ Device::Device(VkInstance instance_, vk::PhysicalDevice physical_, VkSurfaceKHR | |||
| 560 | logical = vk::Device::Create(physical, queue_cis, extensions, first_next, dld); | 573 | logical = vk::Device::Create(physical, queue_cis, extensions, first_next, dld); |
| 561 | 574 | ||
| 562 | CollectPhysicalMemoryInfo(); | 575 | CollectPhysicalMemoryInfo(); |
| 563 | CollectTelemetryParameters(); | ||
| 564 | CollectToolingInfo(); | 576 | CollectToolingInfo(); |
| 565 | 577 | ||
| 566 | if (driver_id == VK_DRIVER_ID_NVIDIA_PROPRIETARY_KHR) { | 578 | if (driver_id == VK_DRIVER_ID_NVIDIA_PROPRIETARY_KHR) { |