Module: Mesa Branch: master Commit: b93b5935a71279a4b9dc58b01eab8a49e91b815b URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=b93b5935a71279a4b9dc58b01eab8a49e91b815b
Author: Jason Ekstrand <[email protected]> Date: Tue May 24 12:06:35 2016 -0700 anv: Try the first 8 render nodes instead of just renderD128 This way, if you have other cards installed, the Vulkan driver will still work. No guarantees about WSI working correctly but offscreen should at least work. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=95537 --- src/intel/vulkan/anv_device.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/intel/vulkan/anv_device.c b/src/intel/vulkan/anv_device.c index 1ab6c74..da7a394 100644 --- a/src/intel/vulkan/anv_device.c +++ b/src/intel/vulkan/anv_device.c @@ -73,8 +73,7 @@ anv_physical_device_init(struct anv_physical_device *device, device->chipset_id = anv_gem_get_param(fd, I915_PARAM_CHIPSET_ID); if (!device->chipset_id) { - result = vk_errorf(VK_ERROR_INITIALIZATION_FAILED, - "failed to get chipset id: %m"); + result = VK_ERROR_INITIALIZATION_FAILED; goto fail; } @@ -314,8 +313,15 @@ VkResult anv_EnumeratePhysicalDevices( VkResult result; if (instance->physicalDeviceCount < 0) { - result = anv_physical_device_init(&instance->physicalDevice, - instance, "/dev/dri/renderD128"); + char path[20]; + for (unsigned i = 0; i < 8; i++) { + snprintf(path, sizeof(path), "/dev/dri/renderD%d", 128 + i); + result = anv_physical_device_init(&instance->physicalDevice, + instance, path); + if (result == VK_SUCCESS) + break; + } + if (result == VK_ERROR_INCOMPATIBLE_DRIVER) { instance->physicalDeviceCount = 0; } else if (result == VK_SUCCESS) { _______________________________________________ mesa-commit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-commit
