我试图了解 DRM(直接渲染管理器)和图形驱动程序(例如 AMD 或 Nvidia GPU 驱动程序)之间的区别。
阅读 DRM wiki[1],在我看来,DRM 基本上是一个图形硬件驱动程序,但这并不能解释独立 GPU 的专有或 FOSS 图形驱动程序的存在。
那么,DRM 与 mesa 或 Nvidia 驱动程序有什么区别或用例呢?安装 AMD 驱动程序后 DRM 会发生什么情况?它们用于不同的任务吗?专有驱动程序是否围绕 DRM 构建?
答案1
“图形驱动程序”可以有多种含义。
X(图形窗口系统)的工作方式是有一个中央X服务器,它可以加载不同硬件的模块(“X驱动程序”)。喜欢vesa
,fbdev
,nvidia
,nouveau
,amdgpu
。
其中一些驱动程序可以独立工作 ( vesa
)。有些需要Linux内核驱动程序。其中许多内核驱动程序遵循“直接渲染管理器 API”,因此它们被称为“DRM 驱动程序”。其他驱动程序,例如专有nvidia
驱动程序(需要 X 驱动程序和内核驱动程序)则不需要。
它变得更加复杂:硬件由读取帧缓冲区并以不同分辨率显示它等的部分组成。这称为“模式设置”。现代显卡还具有 GPU,用于加速 3D 绘图(OpenGL)。 “DRM 内核驱动程序”为两者提供了接口。
“Mesa”是一个理解 OpenGL 的软件库,但渲染要么在 CPU 上,要么在某些(但不是全部)GPU 上进行(请参阅这里以获得列表)。因此,Mesa 库可以为没有或没有足够的硬件的显卡提供此功能,或者可以充当一些 GPU 的 OpenGL 库。
您可能可以将这张复杂图片中的任何内容称为“图形驱动程序”。