Просмотр исходного кода

Merge pull request #10262 from liamwhite/depth-clamp

vulkan_common: disable depth clamp dynamic state for older radv
bunnei 3 лет назад
Родитель
Сommit
9d4a2de72b
1 измененных файлов с 8 добавлено и 0 удалено
  1. 8 0
      src/video_core/vulkan_common/vulkan_device.cpp

+ 8 - 0
src/video_core/vulkan_common/vulkan_device.cpp

@@ -406,6 +406,14 @@ Device::Device(VkInstance instance_, vk::PhysicalDevice physical_, VkSurfaceKHR
         features.extended_dynamic_state3.extendedDynamicState3ColorBlendEnable = false;
         features.extended_dynamic_state3.extendedDynamicState3ColorBlendEnable = false;
         features.extended_dynamic_state3.extendedDynamicState3ColorBlendEquation = false;
         features.extended_dynamic_state3.extendedDynamicState3ColorBlendEquation = false;
         dynamic_state3_blending = false;
         dynamic_state3_blending = false;
+
+        const u32 version = (properties.properties.driverVersion << 3) >> 3;
+        if (version < VK_MAKE_API_VERSION(0, 23, 1, 0)) {
+            LOG_WARNING(Render_Vulkan,
+                        "RADV versions older than 23.1.0 have broken depth clamp dynamic state");
+            features.extended_dynamic_state3.extendedDynamicState3DepthClampEnable = false;
+            dynamic_state3_enables = false;
+        }
     }
     }
     if (extensions.vertex_input_dynamic_state && is_radv) {
     if (extensions.vertex_input_dynamic_state && is_radv) {
         // TODO(ameerj): Blacklist only offending driver versions
         // TODO(ameerj): Blacklist only offending driver versions