Sfoglia il codice sorgente

gpu: Move device ranking to the bottom of IsDeviceSuitable.

This prevents devices without presentation/graphics support from getting ranked.
Ethan Lee 4 mesi fa
parent
commit
6976b57988
1 ha cambiato i file con 9 aggiunte e 9 eliminazioni
  1. 9 9
      src/gpu/vulkan/SDL_gpu_vulkan.c

+ 9 - 9
src/gpu/vulkan/SDL_gpu_vulkan.c

@@ -11425,15 +11425,6 @@ static Uint8 VULKAN_INTERNAL_IsDeviceSuitable(
         return 0;
     }
 
-    // Device rank depends on extension support, do NOT move this block any higher!
-    if (!VULKAN_INTERNAL_GetDeviceRank(
-            renderer,
-            physicalDevice,
-            physicalDeviceExtensions,
-            deviceRank)) {
-        return 0;
-    }
-
     renderer->vkGetPhysicalDeviceQueueFamilyProperties(
         physicalDevice,
         &queueFamilyCount,
@@ -11508,6 +11499,15 @@ static Uint8 VULKAN_INTERNAL_IsDeviceSuitable(
         return 0;
     }
 
+    // Now that we know this device supports what we need, rank it against any other devices
+    if (!VULKAN_INTERNAL_GetDeviceRank(
+            renderer,
+            physicalDevice,
+            physicalDeviceExtensions,
+            deviceRank)) {
+        return 0;
+    }
+
     // FIXME: Need better structure for checking vs storing swapchain support details
     return 1;
 }