diff options
author | Morph <39850852+Morph1984@users.noreply.github.com> | 2021-09-13 23:25:56 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-09-13 23:25:56 +0200 |
commit | 62e88d0e7455e37840db7e2a8e199bc6ca176966 (patch) | |
tree | cf15674ea1ed3c6be239f52c409e628d1dba1787 /src/video_core | |
parent | Merge pull request #7005 from Morph1984/enum-bitwise-shift-ops (diff) | |
parent | Vulkan: Blacklist Int8Float16 Extension on AMD on driver 21.9.1 (diff) | |
download | yuzu-62e88d0e7455e37840db7e2a8e199bc6ca176966.tar yuzu-62e88d0e7455e37840db7e2a8e199bc6ca176966.tar.gz yuzu-62e88d0e7455e37840db7e2a8e199bc6ca176966.tar.bz2 yuzu-62e88d0e7455e37840db7e2a8e199bc6ca176966.tar.lz yuzu-62e88d0e7455e37840db7e2a8e199bc6ca176966.tar.xz yuzu-62e88d0e7455e37840db7e2a8e199bc6ca176966.tar.zst yuzu-62e88d0e7455e37840db7e2a8e199bc6ca176966.zip |
Diffstat (limited to 'src/video_core')
-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 40b7ea90f..2caf98c7c 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 SetupFamilies(surface); SetupFeatures(); SetupProperties(); + CollectTelemetryParameters(); const auto queue_cis = GetDeviceQueueCreateInfos(); const std::vector extensions = LoadExtensions(surface != nullptr); @@ -368,6 +369,18 @@ Device::Device(VkInstance instance_, vk::PhysicalDevice physical_, VkSurfaceKHR }; SetNext(next, demote); + if (driver_id == VK_DRIVER_ID_AMD_PROPRIETARY || driver_id == VK_DRIVER_ID_AMD_OPEN_SOURCE) { + const u32 version = properties.driverVersion; + // Broken in this driver + if (version > VK_MAKE_API_VERSION(0, 2, 0, 193)) { + LOG_WARNING(Render_Vulkan, "AMD proprietary driver versions newer than 21.9.1 " + "(windows) / 0.2.0.194 (amdvlk) have " + "broken VkPhysicalDeviceFloat16Int8FeaturesKHR"); + is_int8_supported = false; + is_float16_supported = false; + } + } + if (is_int8_supported || is_float16_supported) { VkPhysicalDeviceFloat16Int8FeaturesKHR float16_int8{ .sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR, @@ -560,7 +573,6 @@ Device::Device(VkInstance instance_, vk::PhysicalDevice physical_, VkSurfaceKHR logical = vk::Device::Create(physical, queue_cis, extensions, first_next, dld); CollectPhysicalMemoryInfo(); - CollectTelemetryParameters(); CollectToolingInfo(); if (driver_id == VK_DRIVER_ID_NVIDIA_PROPRIETARY_KHR) { |