要安装哪个软件包:lib32-libglvnd-git 或 lib32-mesa-libgl-noglvnd?

要安装哪个软件包:lib32-libglvnd-git 或 lib32-mesa-libgl-noglvnd?

我正在一台带有集成 Intel HD 520 显卡的笔记本电脑上安装交叉。它运行 64 位 Arch Linux,64 位显示驱动程序是mesa(版本 19.3.3-1)。

我正在安装交叉,我有以下选择:

:: There are 8 providers available for lib32-libgl:
:: Repository AUR
    1) catalyst-test 2) lib32-amdgpu-pro-libgl 3) lib32-catalyst-libgl 4) lib32-libglvnd-git 5) lib32-mesa-libgl-noglvnd 6) lib32-nvidia-340xx-utils 7) lib32-nvidia-libgl-352 8) lib32-nvidia-libgl-llb

我应该选择哪个选项?

我相信选择是在lib32-libglvnd-git或之间lib32-mesa-libgl-noglvnd

这是我所知道的libglvnd

libglvnd 是一个供应商中立的调度层,用于仲裁多个供应商之间的 OpenGL API 调用。它允许来自不同供应商的多个驱动程序在同一文件系统上共存,并确定在运行时将每个 API 调用分派给哪个供应商。支持 GLX 和 EGL,可与 OpenGL 和 OpenGL ES 任意组合。

但是,我仍然不知道该选择哪个选项。

答案1

我在整理哪个共享库来链接我的项目以在 Linux 上提供合理可移植的 OpenGL 支持时偶然发现了你的问题。我(有限)的理解是,此时所有常见的 OpenGL 实现都与供应商中立的 GLVND 调度层兼容,因此它应该是默认选择。

正如您引用的包描述中所述,GLVND 是一个包装器,它在运行时将 API 使用分派给适当的供应商提供的实现(即已安装的 GPU 驱动程序堆栈)。我的理解是,供应商提供的 API 库在历史上是互相破坏的。

台面提供构建在供应商特定驱动程序之上的开源图形 API 实现(而不是供应商在其之上提供驱动程序和 API 实现)。据我所知,Mesa 最初与 GLVND 包装器不兼容。然而,看来他们至少两年前获得支持。我只能假设该lib32-mesa-libgl-noglvnd包是之前的遗留物。

官方 GLVND 存储库可能有兴趣了解更多信息,以及这个线程您可能已经看到了。对于好奇的人来说,这些幻灯片提供有关 GLVND 开发最初动机的更多信息。

相关内容