summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-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 910e63a25..24fb50db9 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) {