Mesa与OpenGL驱动程序有何不同?

use*_*220 14 opengl mesa

说Mesa是OpenGL的实现到底是什么意思?我的Nvidia卡的驱动程序不能实现所有OpenGL功能等吗?因此,鉴于我的Nvidia卡的驱动程序正在接受Opengl调用并将其交给硬件,Mesa究竟做了什么?有人可以澄清梅萨和司机之间的区别吗?

dat*_*olf 21

有人可以澄清梅萨和司机之间的区别吗?

Mesa为基于DRI2/DRM架构的开源GPU驱动程序提供客户端OpenGL接口.换句话说:它也是司机的一部分.

如果您安装了NVidia或AMD的专有驱动程序,则不需要Mesa.如果你想使用开源驱动程序(nouveau,radeon,radeonhd,intel),你需要 Mesa.


Wal*_*cio 9

相信 LinuxQuestions.org 论坛成员 geeman2.0 对此事给出了很好的解释:

OpenGL 和 Mesa 实际上并不是两个独立的选择,而是 Mesa 是一种特定类型的 OpenGL。

OpenGL 只是一个接口,它定义了绘制 3d 图形所需的一组标准函数。它不涉及使这些函数发生的实际代码,它只指定调用哪些函数以及它们应该做什么。

openGL 实现提供了运行 OpenGL 标准指定的方法的实际代码。如果没有安装实现,就不能运行任何 opengl 程序。

Mesa 只是众多 OpenGL 实现中的一种,并且是 linux 发行版中包含的最标准的一种。它在软件中完成所有工作,这就是为什么它很慢。

当您为精美的显卡安装 Nvidia 或 ATI 驱动程序时,这些驱动程序会提供在显卡上运行的新 OpenGL 实现。这个实现将取代 Mesa 实现,但它仍然是一个 openGL 实现。也就是说,所有的 Mesa/ATI/NVidia 驱动都实现了同一套功能,只是方式不同,都是 openGL。

来源

  • “它在软件中完成所有工作,这就是为什么它很慢。” 不完全正确。Mesa 提供了一组使用硬件加速(GPU 和/或 SSE 等...)的软件实现和实现。 (3认同)