diff --git a/helpers/check-vulkan.c b/helpers/check-vulkan.c
index da4145408517ec19f42e1b80d9031867d5430e21..1fd68ae41f2f8d0059bebd4cd55bf97c491508a7 100644
--- a/helpers/check-vulkan.c
+++ b/helpers/check-vulkan.c
@@ -1372,11 +1372,20 @@ int main (int argc,
   for (i = 0; i < physical_device_count; i++)
     print_physical_device_info (physical_devices[i], stderr);
 
-  result = draw_test_triangle (vk_instance, physical_devices[0], error);
-  print_draw_test_result (0, result, local_error, stderr);
+  for (i = 0; i < physical_device_count; i++)
+    {
+      result = draw_test_triangle (vk_instance, physical_devices[i], error);
+      print_draw_test_result (i, result, local_error, stderr);
+
+      if (local_error != NULL)
+        g_printerr ("%s", local_error->message);
 
-  if (result)
-    ret = EXIT_SUCCESS;
+      g_clear_error (error);
+
+      /* Return exit success if we are able to draw with at least one device */
+      if (result)
+        ret = EXIT_SUCCESS;
+    }
 
 out:
   if (local_error != NULL)