Adreno GPU上的DirectX平台优化 (1)

Adreno GPU上的DirectX平台优化 (1)

5 平台优化

5.1 需要考虑的硬件特性

Adreno GPU 还支持某些在深入研究优化指南之前需要了解的重要硬件功能。 以下是其中一些硬件功能。

统一着色器模型
Adreno GPU 支持统一着色器模型,该模型允许在所有着色器类型(顶点和片段着色器)中使用一致的指令集。 在硬件方面,Adreno GPU 具有支持片段和顶点着色器的计算单元,即算术逻辑单元或 ALU。 移动 GPU 行业中常见的另一种着色器架构使用专用的顶点和片段计算单元。 统一着色器架构允许更灵活地使用 ALU。

Adreno GPU 使用共享资源架构,允许顶点着色器、像素或片段着色器和通用处理共享相同的 ALU 和获取资源。 着色器处理在统一着色器架构内完成,如图 5-1 所示。

在这里插入图片描述
图 5-1 显示顶点和像素作为向量或线程以四组为一组进行处理。 当线程停止时,可以重新分配着色器 ALU。

在统一着色器架构中,顶点着色器和片段着色器没有单独的硬件,如图 5-2 所示。 这允许像素/顶点负载平衡的更大灵活性。

在这里插入图片描述Adreno 着色器架构也是多线程的。 例如,如果片段着色器的执行因纹理获取而停止,则执行将交给另一个着色器。 只要硬件中有空间,就会累积多个着色器。

除了性能优势之外,统一着色器的一个与性能无关的优势是着色器可以访问所有着色器资源,特别是顶点纹理访问,这将在本节中进一步讨论。

无需特殊步骤即可利用统一着色器架构。 Adreno GPU 根据场景组合智能地最有效地利用着色器资源。

Early Z 拒绝
作为 Adreno GPU 中重要的硬件功能之一,Early Z 拒绝提供了一种快速遮挡方法,并为从视图位置不可见(隐藏)的对象拒绝了不需要的渲染通道。 图 5-3 将红色圆圈显示为一个隐藏在绿色对象后面的对象,这里用绿色块表示。 使用早期 Z 拒绝功能避免了此隐藏对象的渲染过程,该对象从相机视点看不可见。
在这里插入图片描述考虑图 5-4 中的示例,它显示了一个表示为网格的颜色缓冲区,每个块表示为一个像素。 此网格上渲染的像素区域为黑色。 这些渲染黑色像素的 Z 缓冲区值为 1。如果您尝试将新图元渲染到 Z 缓冲区值为 2 的现有颜色缓冲区的相同像素上(如第二个带有绿色块的网格所示) ),这个新基元中的冲突像素将被拒绝,如代表最终颜色缓冲区的第三个网格所示。 Adreno GPU 可以拒绝被遮挡的像素,最高可达绘制像素填充率的四倍。

在这里插入图片描述
为了从这个功能中获得最大的好处,我们建议使用从前到后排序的图元来绘制场景; 即,近到远。 这确保了远基元的 Z 拒绝率更高,这对于具有高深度复杂性的应用程序非常有用。

基于图块的渲染 (TBR) 优化
Adreno GPU 的另一个重要架构亮点是基于图块的渲染,有时也称为分箱。 TBR 是一种将场景帧缓冲区分解成小区域进行渲染的机制,从而优化整体渲染。 Adreno GPU 的基于图块的渲染机制使用两遍算法来渲染场景。 第一遍将每个原语与一组 BinID 和背面信息相关联。 此传递每帧执行一次。 在第二遍中,这些 BinID 用于简单地拒绝落在正在渲染的当前 bin 之外的图元,并执行早期背面剔除。

第二遍每个 bin 运行一次。 每个 tile 或 bin 都被渲染到 GMEM。 然后,每个 bin 被解析为内存中的渲染表面。 图 5-5 中更详细地显示了基于图块的渲染机制。

在这里插入图片描述在传统的桌面风格渲染方法(也称为直接渲染)中,消除了处理和渲染每个 bin 的场景的中间步骤。 几何图形直接渲染到最终帧缓冲区中,即系统内存中。

基于平铺的渲染对于具有相当大的深度复杂性或使用 alpha 混合过度绘制的情况非常有用。 通过处理从内部快速访问内存到这些混合操作的图形的每个 bin 下的像素,基于平铺的渲染显着降低了内存带宽要求。 使用直接渲染来执行这些相同的混合操作,需要为正在处理混合的每个像素读取和写入系统内存(最终帧缓冲区所在的位置)。 读取和写入系统存储器以处理每个像素是一项代价高昂的操作,其执行代价是电池消耗。

Adreno GPU 的基于图块的渲染算法对最终开发人员来说是显而易见的,但您可以在游戏设计中进行某些考虑以利用这一点。

以下指南包括利用这些硬件功能的方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值