模拟/建模/设计

高级 API 性能:Clears

 

这篇文章介绍了 NVIDIA GPU 上 Clears 的最佳实践。要在应用程序中获得高且一致的帧速率,请参阅所有 高级 API 性能提示 .

表面清理是一种广泛使用的辅助操作。

推荐

  • 使用图形 API 中的清除函数来清除资源。
  • 使用任何清晰的颜色来清除渲染目标。
    • 硬件优化改进了最清晰的操作。
  • 清除深度缓冲区时,请使用合适的清除值。
    • 使用深度测试功能D3D12_COMPARISON_FUNC_GREATERD3D12_COMPARISON_FUNC_GREATER_EQUAL时,更喜欢[0.0 , 0.5]范围内的清晰值
    • 在使用深度测试功能D3D12_COMPARISON_FUNC_LESSD3D12_COMPARISON_FUNC_LESS_EQUAL时,首选[0.5 , 1.0]范围内的清晰值。
  • 将清除操作分组为尽可能少的批次。
    • 批处理减少了每次清除的性能开销。

不推荐

  • 避免使用多个不同的透明颜色进行表面清理。
    • 在 NVIDIA Ampere 架构 GPU 上,清除优化限制为每帧 25 种清晰颜色。
    • 在 NVIDIA Turing GPU 上,清除优化限制为每帧 10 种清晰颜色。
  • 避免将单个清除调用与渲染工作交叉进行。
    • 只要有可能,组会分批清除。
  • 永远不要使用透明着色器替代 API 透明。
    • 它会禁用硬件优化,并对 CPU 和 GPU 性能产生负面影响。
    • 例外:将计算清除与相邻计算工作重叠可能会提供更好的性能。

致谢

感谢迈克尔·墨菲、莫里斯·哈里斯、德米特里·日丹和帕特里克·尼尔的建议和反馈。

 

Tags