![Mesa 重新安装后,OpenGL 应用程序显示可怕的错误消息](https://linux22.com/image/120609/Mesa%20%E9%87%8D%E6%96%B0%E5%AE%89%E8%A3%85%E5%90%8E%EF%BC%8COpenGL%20%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E6%98%BE%E7%A4%BA%E5%8F%AF%E6%80%95%E7%9A%84%E9%94%99%E8%AF%AF%E6%B6%88%E6%81%AF.png)
在尝试了一些 PPA 来尝试在我的 Lenovo Ideapad 上的 Linux Mint 17.3 KDE 下升级 Mesa 驱动程序后,我似乎设法使一切恢复正常工作。然而现在,每当我尝试运行 OpenGL 程序时,我都会得到如下输出:
$ glxgears
libGL error: pci id for fd 4: 8086:1916, driver (null)
i965_dri.so does not support the 0x1916 PCI ID.
libGL error: failed to create dri screen
libGL error: failed to load driver: i965
退出后,会出现这样的情况(或者是一个不寻常的段错误,与我自己的 allegro 相关项目):
XIO: fatal IO error 11 (Resource temporarily unavailable) on X server ":0"
after 13936 requests (13934 known processed) with 0 events remaining.
而程序显然运行正常。 (除此之外,glxgears 似乎不再像之前那样将自身限制在 60fps。)
以下是一些希望相关的输出:
$ lspci | grep VGA
00:02.0 VGA compatible controller: Intel Corporation Sky Lake Integrated Graphics (rev 07)
$ dpkg -l | grep mesa
ii libegl1-mesa:amd64 10.1.3-0ubuntu0.6 amd64 free implementation of the EGL API -- runtime
ii libegl1-mesa-dev 10.1.3-0ubuntu0.6 amd64 free implementation of the EGL API -- development files
ii libegl1-mesa-drivers:amd64 10.1.3-0ubuntu0.6 amd64 free implementation of the EGL API -- hardware drivers
rc libegl1-mesa-lts-vivid:amd64 10.5.9-2ubuntu1~trusty2 amd64 free implementation of the EGL API -- runtime
ii libgl1-mesa-dev 10.1.3-0ubuntu0.6 amd64 free implementation of the OpenGL API -- GLX development files
ii libgl1-mesa-dri:amd64 10.1.3-0ubuntu0.6 amd64 free implementation of the OpenGL API -- DRI modules
rc libgl1-mesa-dri-lts-vivid:amd64 10.5.9-2ubuntu1~trusty2 amd64 free implementation of the OpenGL API -- DRI modules
rc libgl1-mesa-dri-lts-vivid:i386 10.5.9-2ubuntu1~trusty2 i386 free implementation of the OpenGL API -- DRI modules
ii libgl1-mesa-glx:amd64 10.1.3-0ubuntu0.6 amd64 free implementation of the OpenGL API -- GLX runtime
ii libgl1-mesa-glx:i386 10.1.3-0ubuntu0.6 i386 free implementation of the OpenGL API -- GLX runtime
rc libgl1-mesa-glx-lts-vivid:amd64 10.5.9-2ubuntu1~trusty2 amd64 free implementation of the OpenGL API -- GLX runtime
rc libgl1-mesa-glx-lts-vivid:i386 10.5.9-2ubuntu1~trusty2 i386 free implementation of the OpenGL API -- GLX runtime
ii libglapi-mesa:amd64 10.1.3-0ubuntu0.6 amd64 free implementation of the GL API -- shared library
ii libglapi-mesa:i386 10.1.3-0ubuntu0.6 i386 free implementation of the GL API -- shared library
rc libglapi-mesa-lts-vivid:amd64 10.5.9-2ubuntu1~trusty2 amd64 free implementation of the GL API -- shared library
rc libglapi-mesa-lts-vivid:i386 10.5.9-2ubuntu1~trusty2 i386 free implementation of the GL API -- shared library
rc libgles1-mesa-lts-vivid:amd64 10.5.9-2ubuntu1~trusty2 amd64 free implementation of the OpenGL|ES 1.x API -- runtime
ii libgles2-mesa:amd64 10.1.3-0ubuntu0.6 amd64 free implementation of the OpenGL|ES 2.x API -- runtime
ii libgles2-mesa-dev 10.1.3-0ubuntu0.6 amd64 free implementation of the OpenGL|ES 2.x API -- development files
rc libgles2-mesa-lts-vivid:amd64 10.5.9-2ubuntu1~trusty2 amd64 free implementation of the OpenGL|ES 2.x API -- runtime
ii libglu1-mesa:amd64 9.0.0-2 amd64 Mesa OpenGL utility library (GLU)
ii libglu1-mesa:i386 9.0.0-2 i386 Mesa OpenGL utility library (GLU)
ii libglu1-mesa-dev 9.0.0-2 amd64 Mesa OpenGL utility library -- development files
ii libmirclientplatform-mesa:amd64 0.1.8+14.04.20140411-0ubuntu1 amd64 Display server for Ubuntu - client platform library for Mesa
ii libopenvg1-mesa:amd64 10.1.3-0ubuntu0.6 amd64 free implementation of the OpenVG API -- runtime
ii libwayland-egl1-mesa:amd64 10.1.3-0ubuntu0.6 amd64 implementation of the Wayland EGL platform -- runtime
rc libwayland-egl1-mesa-lts-vivid:amd64 10.5.9-2ubuntu1~trusty2 amd64 implementation of the Wayland EGL platform -- runtime
ii mesa-common-dev 10.1.3-0ubuntu0.6 amd64 Developer documentation for Mesa
ii mesa-utils 8.1.0-2 amd64 Miscellaneous Mesa GL utilities
编辑:lspci -v 显示“正在使用的内核驱动程序”是“i915_bpo”。这应该是 i965 吗?
编辑:这是一些清理后的 glxinfo 输出:
name of display: :0
libGL error: pci id for fd 4: 8086:1916, driver (null)
i965_dri.so does not support the 0x1916 PCI ID.
libGL error: failed to create dri screen
libGL error: failed to load driver: i965
display: :0 screen: 0
direct rendering: Yes
server glx vendor string: SGI
server glx version string: 1.4
server glx extensions:
...
client glx vendor string: Mesa Project and SGI
client glx version string: 1.4
client glx extensions:
...
GLX version: 1.4
GLX extensions:
...
OpenGL vendor string: VMware, Inc.
OpenGL renderer string: Gallium 0.4 on llvmpipe (LLVM 3.4, 256 bits)
OpenGL version string: 2.1 Mesa 10.1.3
OpenGL shading language version string: 1.30
OpenGL extensions:
...
编辑:这是一些格式化的 inxi 输出:
$ inxi -Gi
Graphics:
Card: Intel Sky Lake Integrated Graphics
Display Server: X.Org 1.15.1 drivers: intel (unloaded: fbdev,vesa)
Resolution: [email protected]
GLX Renderer: Gallium 0.4 on llvmpipe (LLVM 3.4, 256 bits)
GLX Version: 2.1 Mesa 10.1.3
编辑:更相关的输出
$ lsmod | grep 'i9'
i915_bpo 1138688 3
intel_ips 20480 1 i915_bpo
i2c_algo_bit 16384 1 i915_bpo
drm_kms_helper 126976 1 i915_bpo
drm 344064 4 i915_bpo,drm_kms_helper
video 20480 1 i915_bpo
$ modinfo i915_bpo
filename: /lib/modules/3.19.0-32-generic/kernel/ubuntu/i915/i915_bpo.ko
license: GPL and additional rights
description: Intel Graphics
author: Intel Corporation
author: Tungsten Graphics, Inc.
firmware: i915/skl_dmc_ver1.bin
srcversion: 55E14C24236445DE1BF5F67
编辑:实际上每个与 GL 相关的应用程序都以某种方式出现了行为不当;尤其是 GIMP。这些绝对不是我之前的驱动程序。尽管我早已手动删除了 ppa 文件,但 ppa-purge 也没有帮助。