radv: Fix WSI & PCI bus info initialization order.
authorBas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Fri, 19 Oct 2018 09:51:47 +0000 (11:51 +0200)
committerBas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Fri, 19 Oct 2018 11:24:19 +0000 (13:24 +0200)
Trying to access the bus info before it is initialized is not going
to work.

Fixes: baa38c144f6 "vulkan/wsi: Use VK_EXT_pci_bus_info for DRM fd matching"
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=108491
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Tested-by: Andre Heider <a.heider@gmail.com>
src/amd/vulkan/radv_device.c

index e7d511bdb97d22c386dbb472a6f0856c69883f96..cf1132098d26f455db56335c6e27e069b6e54c7a 100644 (file)
@@ -379,6 +379,15 @@ radv_physical_device_init(struct radv_physical_device *device,
        radv_physical_device_init_mem_types(device);
        radv_fill_device_extension_table(device, &device->supported_extensions);
 
+       device->bus_info = *drm_device->businfo.pci;
+
+       if ((device->instance->debug_flags & RADV_DEBUG_INFO))
+               ac_print_gpu_info(&device->rad_info);
+
+       /* The WSI is structured as a layer on top of the driver, so this has
+        * to be the last part of initialization (at least until we get other
+        * semi-layers).
+        */
        result = radv_init_wsi(device);
        if (result != VK_SUCCESS) {
                device->ws->destroy(device->ws);
@@ -386,10 +395,6 @@ radv_physical_device_init(struct radv_physical_device *device,
                goto fail;
        }
 
-       if ((device->instance->debug_flags & RADV_DEBUG_INFO))
-               ac_print_gpu_info(&device->rad_info);
-
-       device->bus_info = *drm_device->businfo.pci;
        return VK_SUCCESS;
 
 fail: