Linux GPU系列-GPU驱动到底做什么

GPU驱动和其他设备驱动其实差异不大,主要就两个面:

  • 控制面:设置state,通过fence做同步等
  • 数据面:把数据从CPU搬到GPU,这里主要涉及到数据格式和数据layout,类似网卡的描述符,以及设备内存的管理。

high level

opengl_workflow

opengl_workflow

opengl_workflow

数据面

本文以OpenGL为例,主要讲数据如何搬到GPU的。

cpu_gpu_data

cpu_gpu_data

cpu_gpu_data

cpu_gpu_data

cpu_gpu_data

cpu_gpu_data

cpu_gpu_data

cpu_gpu_data

cpu_gpu_data

cpu_gpu_data

cpu_gpu_data

cpu_gpu_data

cpu_gpu_data

cpu_gpu_data

cpu_gpu_data

cpu_gpu_data

cpu_gpu_data

cpu_gpu_data

控制面

Todo

参考

cpu-gpu
OpenGL ES渲染管线流程图

知道是不会有人点的,但万一有人呢:)