AMD GPU Vulkan Drivers for Linux
AMD 在 Linux 下维护着两套开源 Vulkan 驱动:
- AMDVLK
- 从闭源 Windows Vulkan 驱动适配而来,主要不同在 shader 编译后端, AMDVLK 使用基于 LLVM 的 LLPC
- RADV
- 是 Mesa 项目的一部分,主要由社区驱动。使用的 shader 编译后端是基于 NIR 的 ACO (AMD COmpiler)
这里主要是记录一下两者的异同点,学习两者不同的设计策略及其作出选择的背后理念。
AMDVLK
AMDVLK 的 README 有一张架构图, 非常清晰地展示了整个驱动包含的组件和层次结构。
AMDVLK 驱动由 5 个代码仓库构建:
- LLVM
- XGL Vulkan API Translator
- LLPC LLVM-based Pipeline Compiler
- GPURT GPU Ray Tracing Library
- PAL Platform Abstraction Library
其中 XGL, LLPC, GPURT 都与 PAL 有关联。