diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/video_core/vulkan_common/vulkan_device.cpp | 17 |
1 files changed, 3 insertions, 14 deletions
diff --git a/src/video_core/vulkan_common/vulkan_device.cpp b/src/video_core/vulkan_common/vulkan_device.cpp index 24fb50db9..c2ec9f76a 100644 --- a/src/video_core/vulkan_common/vulkan_device.cpp +++ b/src/video_core/vulkan_common/vulkan_device.cpp | |||
| @@ -243,7 +243,6 @@ Device::Device(VkInstance instance_, vk::PhysicalDevice physical_, VkSurfaceKHR | |||
| 243 | SetupFamilies(surface); | 243 | SetupFamilies(surface); |
| 244 | SetupFeatures(); | 244 | SetupFeatures(); |
| 245 | SetupProperties(); | 245 | SetupProperties(); |
| 246 | CollectTelemetryParameters(); | ||
| 247 | 246 | ||
| 248 | const auto queue_cis = GetDeviceQueueCreateInfos(); | 247 | const auto queue_cis = GetDeviceQueueCreateInfos(); |
| 249 | const std::vector extensions = LoadExtensions(surface != nullptr); | 248 | const std::vector extensions = LoadExtensions(surface != nullptr); |
| @@ -369,20 +368,9 @@ Device::Device(VkInstance instance_, vk::PhysicalDevice physical_, VkSurfaceKHR | |||
| 369 | }; | 368 | }; |
| 370 | SetNext(next, demote); | 369 | SetNext(next, demote); |
| 371 | 370 | ||
| 372 | if (driver_id == VK_DRIVER_ID_AMD_PROPRIETARY || driver_id == VK_DRIVER_ID_AMD_OPEN_SOURCE) { | 371 | VkPhysicalDeviceFloat16Int8FeaturesKHR float16_int8; |
| 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 | |||
| 384 | if (is_int8_supported || is_float16_supported) { | 372 | if (is_int8_supported || is_float16_supported) { |
| 385 | VkPhysicalDeviceFloat16Int8FeaturesKHR float16_int8{ | 373 | float16_int8 = { |
| 386 | .sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR, | 374 | .sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR, |
| 387 | .pNext = nullptr, | 375 | .pNext = nullptr, |
| 388 | .shaderFloat16 = is_float16_supported, | 376 | .shaderFloat16 = is_float16_supported, |
| @@ -573,6 +561,7 @@ Device::Device(VkInstance instance_, vk::PhysicalDevice physical_, VkSurfaceKHR | |||
| 573 | logical = vk::Device::Create(physical, queue_cis, extensions, first_next, dld); | 561 | logical = vk::Device::Create(physical, queue_cis, extensions, first_next, dld); |
| 574 | 562 | ||
| 575 | CollectPhysicalMemoryInfo(); | 563 | CollectPhysicalMemoryInfo(); |
| 564 | CollectTelemetryParameters(); | ||
| 576 | CollectToolingInfo(); | 565 | CollectToolingInfo(); |
| 577 | 566 | ||
| 578 | if (driver_id == VK_DRIVER_ID_NVIDIA_PROPRIETARY_KHR) { | 567 | if (driver_id == VK_DRIVER_ID_NVIDIA_PROPRIETARY_KHR) { |