Arch Linux 更新后 OpenGL 渲染错误

Arch Linux 更新后 OpenGL 渲染错误

我正在使用运行 Arch Linux 的配​​备英特尔酷睿 i5 vPro 的 Dell Optioplex 7010。我最近(2021 年 4 月)定期将操作系统更新到版本 5.11.9-arch1-1,并注意到使用 OpenGL 的任何东西都显示表面填充不完整,因此您会得到多个“透明”三角形和矩形。这张图片说明了问题: X 屏幕保护程序测地线齿轮显示 OpenGL 问题 对于如何诊断和解决这个问题有什么想法吗?

以下是我迄今为止尝试过的:

  • 查看不同的软件,看看是否是某个特定软件包的问题。结果:这不仅限于 X-Screen 保护程序或任何特定软件包 - Cura、FreeCAD 等任何使用 openGL 的软件中都会发生同样的损坏。
  • 使用“export MESA_LOADER_DRIVER_OVERRIDE”手动覆盖 mesa 加载程序驱动程序,但所有可用的驱动程序都无法解决问题。
  • 检查我的显卡状态。结果:
$ sudo lspci -vnn | grep VGA -A 12
 00:02.0 VGA compatible controller [0300]: Intel Corporation Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller [8086:0152] (rev 09) (prog-if 00 [VGA controller])


    DeviceName:  Onboard IGD
     Subsystem: Dell Device [1028:0577]
     Flags: bus master, fast devsel, latency 0, IRQ 30
     Memory at f7800000 (64-bit, non-prefetchable) [size=4M]
     Memory at e0000000 (64-bit, prefetchable) [size=256M]
     I/O ports at f000 [size=64]
     Expansion ROM at 000c0000 [virtual] [disabled] [size=128K]
     Capabilities: [90] MSI: Enable+ Count=1/1 Maskable- 64bit-
     Capabilities: [d0] Power Management version 2
     Capabilities: [a4] PCI Advanced Features
     Kernel driver in use: i915
     Kernel modules: i915
  • 检查我的 OpenGL 状态。结果:
$ sudo glxinfo | grep OpenGL
OpenGL vendor string: Intel Open Source Technology Center
OpenGL renderer string: Mesa DRI Intel(R) HD Graphics 2500 (IVB GT1)
OpenGL core profile version string: 4.2 (Core Profile) Mesa 20.3.4
OpenGL core profile shading language version string: 4.20
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 3.0 Mesa 20.3.4
OpenGL shading language version string: 1.30
OpenGL context flags: (none)
OpenGL extensions:
OpenGL ES profile version string:
OpenGL ES 3.0 Mesa 20.3.4
OpenGL ES profile shading language version string:
OpenGL ES GLSL ES 3.00
OpenGL ES profile extensions:

在操作系统更新之前,一切都运行良好。我在上面看不到任何错误或需要修复的内容。任何帮助都非常感谢。

[编辑-回应评论]

我还检查了 pacman 日志,以查看上次 -Syyu 更新中更改或添加了哪些软件包。我发现以下内容可能与 OpenGL 图形渲染有关:

  • 安装 box2d(2.4.1-1)
  • 已安装 gts (0.7.6.121130-2)
  • 升级了英特尔媒体驱动程序(20.4.5-1 -> 21.1.2-1)
  • 升级 glslang(11.1.0-1 -> 11.2.0-3)
  • 升级 gegl (0.4.26-1 -> 0.4.28-2)
  • 升级 gd (2.3.0-1 -> 2.3.2-2)
  • 升级 mesa(20.3.3-1 -> 20.3.4-3)

因此我降级了升级的软件包(一个接一个,每次升级后重新启动),并卸载了新安装的软件包pacman -Rsc。不幸的是,这些都无法解决问题。

答案1

我也从 Arch 论坛寻求帮助。多亏了那里的一篇帖子,我找到了答案。原来我需要为 i915 模块设置一个内核参数。具体来说:(i915.mitigations=off 在我的设置中,它之前设置为“自动”)。当我将此内核参数附加到我的 /boot/loader/entries/arch.conf 文件并重新启动时,问题不再存在。不知道为什么以前运行良好,现在却突然需要这样做。

相关内容