一:概述
Intel 的 Iris 驱动是 Mesa 中的 Gallium 驱动,主要用于 Intel Gen8+ GPU(Broadwell 及更新架构)。它负责与 i915 内核 DRM 驱动交互,并通过 Vulkan(ANV)、OpenGL(Iris Gallium)、或 OpenCL(Clover)来提供 3D 加速。在 Iris 驱动中,GPU Pipeline 设置 涉及多个部分,包括 编译和上传着色器、设置渲染目标、绑定缓冲区、配置固定功能单元 等。
二: 创建GPU上下文
Iris 驱动使用 Gallium3D 框架,因此 GPU 的 pipeline 配置是通过 iris_context
来管理的。下面结合代码来看看GPU上下文的创建过程:
/**
* 上传渲染上下文的初始 GPU 状态。
*
* 该函数设置了一些固定的状态,这些状态在整个渲染过程中保持不变。
*/
static void
iris_init_render_context(struct iri