diff options
author | Fernando Sahmkow <fsahmkow27@gmail.com> | 2021-09-13 22:22:50 +0200 |
---|---|---|
committer | Fernando Sahmkow <fsahmkow27@gmail.com> | 2021-09-13 23:17:37 +0200 |
commit | e7c8a0bb23aa0183bbfcb616d09131e825ac8d04 (patch) | |
tree | 6dfca90edd1da79c9c7f71ea79886f5ca39f3673 /src/video_core | |
parent | Merge pull request #6900 from ameerj/attr-reorder (diff) | |
download | yuzu-e7c8a0bb23aa0183bbfcb616d09131e825ac8d04.tar yuzu-e7c8a0bb23aa0183bbfcb616d09131e825ac8d04.tar.gz yuzu-e7c8a0bb23aa0183bbfcb616d09131e825ac8d04.tar.bz2 yuzu-e7c8a0bb23aa0183bbfcb616d09131e825ac8d04.tar.lz yuzu-e7c8a0bb23aa0183bbfcb616d09131e825ac8d04.tar.xz yuzu-e7c8a0bb23aa0183bbfcb616d09131e825ac8d04.tar.zst yuzu-e7c8a0bb23aa0183bbfcb616d09131e825ac8d04.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 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 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) { |