我们都知道内置 POWER-VR SGX 5 系列 GPU(3GS 或更高版本)的 iOS 设备。
POWER VR GPU 基于 TBDR 技术进行 opengl 渲染,这意味着硬件不会立即执行绘图命令,而是将它们缓存到某个点,然后将它们全部执行。
这可以执行早期的 HSR,因为所有绘图数据都在执行点提交给 opengl,硬件在每个正在处理的 tile 中都有全局可见性信息,这很好我们都知道。
但我很困惑,除了 Opengl 对象(tex、着色器、缓冲区对象......)修改操作之外,WHEN 或 WHAT 使硬件停止缓存并执行先前作为应用程序调用 glDrawArray 或 glDrawElement 一次又一次提交的命令和 glFlush、glFinish 函数?
PS 我也知道当 PB(帮助执行 HSR 的参数缓冲区)已满时,硬件将刷新之前提交的命令。