summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMorph <39850852+Morph1984@users.noreply.github.com>2021-09-13 23:25:56 +0200
committerGitHub <noreply@github.com>2021-09-13 23:25:56 +0200
commit62e88d0e7455e37840db7e2a8e199bc6ca176966 (patch)
treecf15674ea1ed3c6be239f52c409e628d1dba1787
parentMerge pull request #7005 from Morph1984/enum-bitwise-shift-ops (diff)
parentVulkan: Blacklist Int8Float16 Extension on AMD on driver 21.9.1 (diff)
downloadyuzu-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
-rw-r--r--src/video_core/vulkan_common/vulkan_device.cpp14
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) {