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

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

作为一名 Linux 爱好者,我想将 OpenGL 开发作为我的爱好。

我知道OpenGL只是GPU供应商必须实现的一个API。

一些 GPU 供应商的 OpenGL/Vulkan 实现是专有的,而另一些则是开源的(例如英特尔)。

因为我喜欢开源,所以我想确保在开发东西时不使用任何专有的东西,那么我该如何检查我的 GPU 当前是否正在使用 Mesa 进行渲染?

我之所以问这个问题,是因为我在网上收到了各种各样的信息,因为我听说你显然仍然可以安装 Mesa,但 GPU 将使用其他专有的东西,这就是我想问这个问题的原因。

任何帮助,将不胜感激。

答案1

长话短说

在你的终端中运行:

glxinfo | grep -i mesa

如果您确实在输出中看到某些内容,那么您应该使用 mesa。如果什么也没有出现,那就是别的事情了。

如果是其他东西,glxinfo | grep -i vendor应该告诉你它是什么。


完整解释:

因此,首先,这并不是选择哪种 OpenGL/Vulkan 实现。您使用的实现取决于您使用的 GPU 驱动程序。因此,您真正想做的是确保您使用的是 Mesa 支持的 GPU 驱动程序。

话虽如此,GPU 驱动程序的选择并不多。如果您使用的是 Intel 或 AMD,您很可能已经在使用与 Mesa 配合使用的开源驱动程序。英特尔根本没有其他选择,AMD 的专有驱动程序已被弃用。

如果你使用 Nvidia,那就有点复杂了。截至目前,共有三种驱动程序:官方和专有的 Nvidia 驱动程序、官方 Nvidia 驱动程序的开源版本以及 nouveau。

  • 第一个提供了最好的性能,但是,正如我所说,它是专有的,并且它提供了自己专有的 OpenGL 实现。你不能用它来使用台面。

  • 第二个是今年五月发布的一个非常新的东西。它是其专有驱动程序的开源版本。它也有自己的 OpenGL 实现,但不是 Mesa。但它是开源的,并且提供与专有软件相当的性能。

  • 最后一个是 nouveau,是 Nvidia 的旧开源驱动程序,由社区通过对 Nvidia 专有驱动程序进行逆向工程而编写。如果您确实想在 Nvidia 的 GPU 上使用开源驱动程序,这曾经是唯一的选择,而且它确实可以与 Mesa 配合使用。由于它基于逆向工程,因此性能很差。

所以,总而言之,如果你碰巧使用 Nvidia 的 GPU,并且必须使用 MESA,你可以选择 nouveau,尽管我不建议这样做,因为它的性能较差。如果您只是寻求开源,请安装 Nvidia 官方驱动程序的开源版本。 (请记住卸载所有其他驱动程序并仅安装您要使用的驱动程序。)


然而,尽管如此,还是应该澄清一件事。

我想确保在开发东西时不使用任何专有内容

您是否真的想确保“您自己在开发和/或使用计算机时没有使用任何专有内容”,或者只是“您开发的软件中没有任何内容会使用专有内容”?

如果是后一种情况,您甚至不需要关心您正在使用哪个驱动程序或实现。无论如何,它们都是 OpenGL,并且由于 OpenGL 本身是开放的,因此您不会在自己的代码中使用任何专有的东西。如果是前一种情况,那么,正如我所说,只需安装正确的驱动程序就可以了。

相关内容