diff --git a/gdk/gdkvulkancontext.c b/gdk/gdkvulkancontext.c index f44253479e..3fd697a8af 100644 --- a/gdk/gdkvulkancontext.c +++ b/gdk/gdkvulkancontext.c @@ -599,10 +599,9 @@ gdk_display_create_vulkan_device (GdkDisplay *display, { uint32_t i, j; - uint32_t n_devices; + uint32_t n_devices = 0; GDK_VK_CHECK(vkEnumeratePhysicalDevices, display->vk_instance, &n_devices, NULL); - VkPhysicalDevice *devices = g_newa (VkPhysicalDevice, n_devices); - GDK_VK_CHECK(vkEnumeratePhysicalDevices, display->vk_instance, &n_devices, devices); + VkPhysicalDevice *devices; if (n_devices == 0) { @@ -612,6 +611,9 @@ gdk_display_create_vulkan_device (GdkDisplay *display, return FALSE; } + devices = g_newa (VkPhysicalDevice, n_devices); + GDK_VK_CHECK(vkEnumeratePhysicalDevices, display->vk_instance, &n_devices, devices); + for (i = 0; i < n_devices; i++) { VkPhysicalDeviceProperties props;