Explorar el Código

Vulkan: Update blacklisting to latest driver versions.

Fernando Sahmkow hace 3 años
padre
commit
ddbf851ef6
Se han modificado 1 ficheros con 12 adiciones y 5 borrados
  1. 12 5
      src/video_core/vulkan_common/vulkan_device.cpp

+ 12 - 5
src/video_core/vulkan_common/vulkan_device.cpp

@@ -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");
-            khr_push_descriptor = false;
+            if (nv_major_version < 527) {
+                LOG_WARNING(Render_Vulkan,
+                            "Blacklisting Volta and older from VK_KHR_push_descriptor");
+                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,8 +838,11 @@ 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) {
-        LOG_WARNING(Render_Vulkan, "Blacklisting Intel for VK_EXT_vertex_input_dynamic_state");
-        ext_vertex_input_dynamic_state = false;
+        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");
+            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.