Vulkan: Update blacklisting to latest driver versions.

master
Fernando Sahmkow 2022-12-27 22:14:36 +07:00
parent a045e860dd
commit ddbf851ef6
1 changed files with 12 additions and 5 deletions

@ -756,6 +756,8 @@ Device::Device(VkInstance instance_, vk::PhysicalDevice physical_, VkSurfaceKHR
CollectToolingInfo(); CollectToolingInfo();
if (driver_id == VK_DRIVER_ID_NVIDIA_PROPRIETARY_KHR) { if (driver_id == VK_DRIVER_ID_NVIDIA_PROPRIETARY_KHR) {
const u32 nv_major_version = (properties.driverVersion >> 22) & 0x3ff;
const auto arch = GetNvidiaArchitecture(physical, supported_extensions); const auto arch = GetNvidiaArchitecture(physical, supported_extensions);
switch (arch) { switch (arch) {
case NvidiaArchitecture::AmpereOrNewer: case NvidiaArchitecture::AmpereOrNewer:
@ -765,11 +767,13 @@ Device::Device(VkInstance instance_, vk::PhysicalDevice physical_, VkSurfaceKHR
case NvidiaArchitecture::Turing: case NvidiaArchitecture::Turing:
break; break;
case NvidiaArchitecture::VoltaOrOlder: case NvidiaArchitecture::VoltaOrOlder:
LOG_WARNING(Render_Vulkan, "Blacklisting Volta and older from VK_KHR_push_descriptor"); if (nv_major_version < 527) {
LOG_WARNING(Render_Vulkan,
"Blacklisting Volta and older from VK_KHR_push_descriptor");
khr_push_descriptor = false; khr_push_descriptor = false;
}
break; break;
} }
const u32 nv_major_version = (properties.driverVersion >> 22) & 0x3ff;
if (nv_major_version >= 510) { if (nv_major_version >= 510) {
LOG_WARNING(Render_Vulkan, "NVIDIA Drivers >= 510 do not support MSAA image blits"); LOG_WARNING(Render_Vulkan, "NVIDIA Drivers >= 510 do not support MSAA image blits");
cant_blit_msaa = true; cant_blit_msaa = true;
@ -834,9 +838,12 @@ Device::Device(VkInstance instance_, vk::PhysicalDevice physical_, VkSurfaceKHR
const bool is_intel_windows = driver_id == VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS; const bool is_intel_windows = driver_id == VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS;
const bool is_intel_anv = driver_id == VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA; const bool is_intel_anv = driver_id == VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA;
if (ext_vertex_input_dynamic_state && is_intel_windows) { if (ext_vertex_input_dynamic_state && is_intel_windows) {
const u32 version = (properties.driverVersion << 3) >> 3;
if (version < VK_MAKE_API_VERSION(27, 20, 100, 0)) {
LOG_WARNING(Render_Vulkan, "Blacklisting Intel for VK_EXT_vertex_input_dynamic_state"); LOG_WARNING(Render_Vulkan, "Blacklisting Intel for VK_EXT_vertex_input_dynamic_state");
ext_vertex_input_dynamic_state = false; ext_vertex_input_dynamic_state = false;
} }
}
if (is_float16_supported && is_intel_windows) { if (is_float16_supported && is_intel_windows) {
// Intel's compiler crashes when using fp16 on Astral Chain, disable it for the time being. // Intel's compiler crashes when using fp16 on Astral Chain, disable it for the time being.
LOG_WARNING(Render_Vulkan, "Blacklisting Intel proprietary from float16 math"); LOG_WARNING(Render_Vulkan, "Blacklisting Intel proprietary from float16 math");