Understanding GPU Tiling
本文将会介绍GPU tiling。
初始化步骤:
- 完成tiled region(不同tiled region之间不能有overlap)中物理page的分配;
- 将tiled memory映射到ggtt的logical address(fence regions must be aligned to a 4KB page);
- 将fence region的开始地址与结束地址的偏移量(这些地址位于ggtt中)写入fence register。
CPU访问Tiling时的步骤:
- 计算logical address ggtt的offset;
- 比较offset与所有fence register中开始地址与结束地址;
- 如果offset位于某个fence register中开始地址与结束地址之间,那么要访问的内容是位于tiled region之内的;
- gpu根据fence register中的信息,将logical(linear) address转换为tiled address,这样CPU就能访问tile了。