本文将会介绍GPU tiling

初始化步骤:

  1. 完成tiled region(不同tiled region之间不能有overlap)中物理page的分配;
  2. 将tiled memory映射到ggtt的logical address(fence regions must be aligned to a 4KB page);
  3. 将fence region的开始地址与结束地址的偏移量(这些地址位于ggtt中)写入fence register。

CPU访问Tiling时的步骤:

  1. 计算logical address ggtt的offset;
  2. 比较offset与所有fence register中开始地址与结束地址;
  3. 如果offset位于某个fence register中开始地址与结束地址之间,那么要访问的内容是位于tiled region之内的;
  4. gpu根据fence register中的信息,将logical(linear) address转换为tiled address,这样CPU就能访问tile了。