目录
一:GPU 和 硬件
现代 GPU 功能概览:
硬件结构:
屏幕驱动:
屏幕连接器:
屏幕 CRT 控制器:
CPU与GPU通信:
现代主机通信总线介绍:
通信方法:
GPU 编程:通过 MMIO 访问寄存器
CPU 和 GPU 内存请求路由:
GPU 可访问的内存区域:
GTT/GART 是 CPU 与 GPU 共享的通信缓冲区:
GTT/GART 的使用:
事件报告:中断请求(IRQ):
二:GPU驱动:
GPU 需要主机(Host)执行的操作:
图形堆栈的组成部分:
Linux 图形栈的组成部分:
三:DRM:
直接渲染管理器(DRM)功能:
libDRM功能:
内核模式设置 (KMS):
图形缓冲区管理器:
缓冲区管理的约束条件:
检测何时需要缓冲区:
自动重新分配缓冲区:
DMA-Buf:
四: Mesa:
Mesa 功能概览:
mesa 经典:
Gallium3D:
五:X11 和 XServer:
X11:X 协议版本 11
XLib: 使用 X11 绘制应用程序:
XCB:X 协议 C 语言绑定:
XServer 目标:
XServer基本加速功能:
XServer 结构:
XServer 2D 加速:
XRandR(X 大小调整、旋转)
OpenGL X 扩展 (GLX)
GLX 直接渲染:
GLX 间接渲染:
XServer事件处理流程:
六:Wayland:
Wayland协议概述:
Wayland 合成器:
Wayland 缓冲区共享的实现:
Wayland事件处理流程:
一:GPU 和 硬件
现代 GPU 功能概览:
1. 在屏幕上显示内容加速
2. 2D 运算加速
3. 3D 运算解码视频
4. 加速科学计算
硬件结构:
硬件结构概览:
1. 图形处理器: 进行所有计算的地方
2. VRAM: 存储纹理或通用数据
3. 视频输出: 连接屏幕
4. 电源模块: 降低电压,调节电流
5. 主机通信总线: 与 CPU 通信