Created attachment 140732 [details] [review] xf86drm: Correctly parse pci device information for virtio gpu Mesa 18.1.3-201.1 kernel 4.17.5-1-default libdrm 2.4.92-1.2 glxinfo | grep -i renderer OpenGL renderer string: virgl LIBGL_DEBUG=verbose glxgears libGL error: MESA-LOADER: failed to retrieve device information libGL: using driver virtio_gpu for 4 libGL: OpenDriver: trying /usr/lib64/dri/tls/virtio_gpu_dri.so libGL: OpenDriver: trying /usr/lib64/dri/virtio_gpu_dri.so Adding some debug drmMsg() prints, I found that the MESA-LOADER error message happens because drmGetDevice2() returns -ENODEV. And that happens because drmParseSubsystemType() returns -EINVAL. drmParseSubsystemType() expects /sys/dev/char/DRM_MAJOR\:0/device/subsystem to be one of pci, usb, platform, hostix. But virtio-gpu has bus subsystem virtio: ls -al /sys/dev/char/226\:0/device/subsystem lrwxrwxrwx 1 root root 0 Jul 19 17:39 /sys/dev/char/226:0/device/subsystem -> ../../../../bus/virtio ls -al /sys/dev/char/226\:128/device/subsystem lrwxrwxrwx 1 root root 0 Jul 19 17:39 /sys/dev/char/226:128/device/subsystem -> ../../../../bus/virtio I am not sure if this is a cosmetic error, or if it matters. I am attaching a proposed patch. Since the virtio-gpu device is actually a pci device, we can still parse the correct information from the corresponding pci device: ls -al /sys/dev/char/226\:0 lrwxrwxrwx 1 root root 0 Jul 20 13:30 /sys/dev/char/226:0 -> ../../devices/pci0000:00/0000:00:02.0/virtio0/drm/card0 i.e. use /sys/dev/char/226\:128/../../../ instead of /sys/dev/char/226\:128/ for virtio devices. to parse subsystem, and subsequently pci bus and pci device information. (Let me know if bugzilla is still the place to report bugs, or if https://gitlab.freedesktop.org/mesa/drm is now the preferred location)
The message is harmless since Mesa falls back to use the DRM driver name. That said, a slightly better (I'm obviously biased) solution has been on the list for ~month [1]. Just double-checked and pushed it to master. [1] https://lists.freedesktop.org/archives/dri-devel/2018-June/181067.html
Cool, thanks!
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.