diff --git a/src/imagination/vulkan/pvr_device.c b/src/imagination/vulkan/pvr_device.c index faf46b505c4..3cf7d611887 100644 --- a/src/imagination/vulkan/pvr_device.c +++ b/src/imagination/vulkan/pvr_device.c @@ -721,15 +721,6 @@ static VkResult pvr_physical_device_init(struct pvr_physical_device *pdevice, char *render_path; VkResult result; - if (!getenv("PVR_I_WANT_A_BROKEN_VULKAN_DRIVER")) { - return vk_errorf(instance, - VK_ERROR_INCOMPATIBLE_DRIVER, - "WARNING: powervr is not a conformant Vulkan " - "implementation. Pass " - "PVR_I_WANT_A_BROKEN_VULKAN_DRIVER=1 if you know " - "what you're doing."); - } - render_path = vk_strdup(&instance->vk.alloc, drm_render_device->nodes[DRM_NODE_RENDER], VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE); @@ -755,6 +746,16 @@ static VkResult pvr_physical_device_init(struct pvr_physical_device *pdevice, if (result != VK_SUCCESS) goto err_vk_free_display_path; + if (!getenv("PVR_I_WANT_A_BROKEN_VULKAN_DRIVER")) { + result = vk_errorf(instance, + VK_ERROR_INCOMPATIBLE_DRIVER, + "WARNING: powervr is not a conformant Vulkan " + "implementation. Pass " + "PVR_I_WANT_A_BROKEN_VULKAN_DRIVER=1 if you know " + "what you're doing."); + goto err_pvr_winsys_destroy; + } + pdevice->instance = instance; pdevice->render_path = render_path; pdevice->display_path = display_path;