要安裝哪個軟體包: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 任意組合。
但是,我仍然不知道該選擇哪個選項。
我在整理將我的項目連結到哪個共享庫以在 Linux 上提供合理可移植的 OpenGL 支持時偶然發現了您的問題。我的(有限的)理解是,此時所有常見的 OpenGL 實現都與供應商中立的 GLVND 調度層兼容,因此它應該是預設選擇。
正如您引用的包描述中所述,GLVND 是一個包裝器,它在執行時將 API 使用分派給適當的供應商提供的實現(即安裝的 GPU 驅動程序堆棧)。我的理解是,供應商提供的 API 庫在歷史上相互破壞。
Mesa提供建立在供應商特定驅動程序之上的開源圖形 API 實現(而不是供應商在其之上提供驅動程序和 API 實現)。據我所知,Mesa 最初與 GLVND 包裝器不兼容。但是,他們似乎至少在兩年前獲得了支持。我只能假設該
lib32-mesa-libgl-noglvnd
軟體包是之前的保留。官方 GLVND 儲存庫可能對更多資訊感興趣,以及您可能已經看到的這個執行緒。對於好奇的人,這些幻燈片提供了有關最初推動 GLVND 發展的更多資訊。