Linux

如何檢查您的 GPU 目前是否正在使用 Mesa 渲染 OpenGL/Vulkan?

  • November 15, 2022

作為一個 Linux 愛好者,我想將 OpenGL 開發作為我的愛好。

我知道 OpenGL 只是 GPU 供應商必須實現的 API。

一些 GPU 供應商的 OpenGL/Vulkan 實現是專有的,而有些是開源的(如英特爾)。

因為我喜歡開源,所以我想確保我在開發東西時不使用任何專有的東西,那麼我該如何檢查我的 GPU 目前是否正在使用 Mesa 進行渲染?

我問的原因是因為我在網上收到了混合資訊,因為我聽說您顯然仍然可以安裝 Mesa,但 GPU 將使用其他專有的東西,這就是我想問這個問題的原因。

任何幫助,將不勝感激。

長話短說

在您的終端中執行:

glxinfo | grep -i mesa

如果你確實在輸出中看到了一些東西,那麼你應該使用 mesa。如果什麼都沒有出現,那就是另一回事。

如果是別的東西,glxinfo | grep -i vendor應該告訴你它是什麼。


完整解釋:

所以首先,這並不是關於選擇哪種 OpenGL/Vulkan 實現。您使用的實現取決於您使用的 GPU 驅動程序。所以你真正想做的是確保你使用的是 Mesa 支持的 GPU 驅動程序。

話雖如此,無論如何,GPU 驅動程序的選擇並不多。如果您使用的是 Intel 或 AMD,您很可能已經在使用與 Mesa 兼容的開源驅動程序。Intel 沒有其他選擇,而且 AMD 的專有驅動程序已被棄用。

如果您使用的是 Nvidia,則情況會稍微複雜一些。截至目前,共有三種驅動程序 - 官方專有 Nvidia 驅動程序、官方 Nvidia 驅動程序的開源版本和 nouveau。

  • 第一個提供最好的性能,但是,正如我所說,它是專有的,並且它提供了自己專有的 OpenGL 實現。你不能用它來使用檯面。
  • 第二個是今年五月發布的一個非常新的東西。它是他們專有驅動程序的開源版本。它也有自己的 OpenGL 實現,而不是 Mesa。但它是開源的,並且提供與專有軟體相當的性能。
  • 最後一個 nouveau 是 Nvidia 的舊開源驅動程序,由社區通過對專有 Nvidia 驅動程序進行逆向工程編寫。如果你真的想在 Nvidia 的 GPU 上使用開源驅動程序,這曾經是唯一的選擇,它確實適用於 Mesa。由於它基於逆向工程,因此性能很差。

因此,總而言之,如果您碰巧使用 Nvidia 的 GPU,並且必須使用 MESA,您可以選擇 nouveau,但我不建議這樣做,因為它的性能很差。如果您只是想開源,請安裝官方 Nvidia 驅動程序的開源版本。(記得解除安裝所有其他驅動程序,只安裝您要使用的驅動程序。)


然而,話雖如此,有一件事應該澄清。

我想確保我在開發東西時不使用任何專有的東西

您是否真的在嘗試確保“您自己在開發和/或使用您的電腦時沒有使用任何專有的東西”,或者只是“您開發的軟體中沒有任何東西會使用專有的東西”?

如果是後一種情況,你甚至不需要關心你使用的是哪個驅動程序或實現。不管怎樣,它們都是 OpenGL,並且由於 OpenGL 本身是開放的,所以您不會在自己的程式碼中使用任何專有的東西。如果是前一種情況,那麼正如我所說,只需安裝正確的驅動程序就可以了。

引用自:https://unix.stackexchange.com/questions/724912