gallium
drivers
- r300:这是一个用于 ATI R300 系列 GPU 的驱动程序。这些 GPU 是 AMD 的 Radeon R300 系列1。
- r600:该驱动程序支持 ATI/AMD 的 Radeon HD 2000 系列 GPU,是硬件的两个 Linux 驱动程序之一1。
- radeonsi:这是一个支持 AMD Southern Island GPU 及更高版本的 RadeonSI OpenGL 和
OpenCL 驱动程序1。 - crocus:Crocus 是一个用于 Intel Gen4+ GPU 的 Mesa 驱动程序。
- v3d:V3D 驱动程序用于 Broadcom VideoCore V3D GPU。
- vc4:VC4 驱动程序用于 Broadcom VideoCore IV GPU。
- freedreno:Freedreno 驱动程序支持 Qualcomm Adreno GPU。
- etnaviv:Etnaviv 驱动程序用于 Vivante GCxxx 系列 GPU。
- nouveau:Nouveau 驱动程序支持 NVIDIA GPU。
- svga:SVGA 驱动程序用于 VMware 虚拟 GPU。
- tegra:Tegra 驱动程序支持 NVIDIA Tegra 系列 GPU。
- virgl:Virgl 驱动程序用于虚拟 QEMU GPU。
- lima:Lima 驱动程序用于 ARM Mali-400 (Utgard) 系列 GPU。
- panfrost:Panfrost 驱动程序用于 ARM Mali Txxx (Midgard) 和 Gxx (Bifrost) 系列
GPU。它在 Mali-G52 和 Mali-G57 上符合规范,但在其他 GPU 上不符合规范2。 - swrast:SWRast 是一个使用 LLVM 进行运行时代码生成的软件驱动程序。
- iris:Iris 驱动程序支持 Intel Gen8+ GPU。
- zink:Zink 是一个将 OpenGL 应用程序映射到 Vulkan 的 Mesa 驱动程序。
- d3d12:D3D12 驱动程序用于 Windows Direct3D 12 API。
- asahi:Asahi 驱动程序用于 Apple M1 GPU。
frontends
在Mesa 3D项目中,Gallium文件夹下的frontends目录包含了一系列前端接口,这些接口允许Mesa与不同的图形API进行交云。以下是一些关键的前端组件及其功能的详细介绍:
- Clover:实现Khronos OpenCL标准的跟踪器。
- DRI (Direct Rendering Infrastructure):这个前端实现了DRI协议,它是与X服务器交云的标准方法,允许直接访问图形硬件,从而提高性能。
- GLX 和 MesaGL:这些前端实现了OpenGL的状态机,它们是Mesa用来处理OpenGL命令和状态的组件。
- VDPAU (Video Decode and Presentation API for Unix):这是一个视频解码和呈现API的前端,它允许Mesa处理视频内容的硬件加速解码。
- WGL 和 Xorg DDX:这些前端为Xorg X11服务器提供设备依赖的模式设置和加速。
- XvMC (X-Video Motion Compensation):这是一个用于视频运动补偿的前端,它允许视频播放时的硬件加速。
- lavapipe是一个Vulkan驱动的CPU实现。它是一个纯软件实现的Vulkan驱动,意味着它完全在CPU上运行,不依赖于任何GPU硬件。lavapipe的目的是为没有Vulkan硬件支持的系统提供Vulkan功能,或者用于开发和测试目的。
这些前端组件是Mesa 3D图形库的重要部分,它们使得Mesa能够与各种硬件和软件环境交云,提供灵活的图形和计算功能。
Ubuntu下编译mesa
meson setup build -D gallium-drivers=auto -D buildtype=debug -Dprefix="/home/zym/mesa-project/installmesa"
meson install -C build