金属性能调试

Metal performance debugging

我在 iOS 上有一个 Metal 应用程序,我在其中拍摄视频帧并将每个帧传递给多个着色器,一些是计算着色器应用于多个传递,其中 4 个是独立的 MTKViews,显示计算的纹理(例如,直方图)以及视频预览。有时(但不总是)在 iPhone 6s 等较旧的硬件上,我注意到应用程序变得过于缓慢,帧速率降至每秒 1 或 2 帧。请告诉我如何调试哪些 Metal 着色器阻塞了 GPU/GPU 以及如何优化 Metal 相关代码的性能。

  1. 运行 你的申请在 Xcode.
  2. Select 调试 -> 捕获 GPU 帧
  3. Select 左侧工具栏中的问题导航器
  4. Select 运行时间
  5. 修复列出的问题,至少 "high" 优先级。
  6. 您还可以通过在左侧的调试导航器中查看 drawPrimitives 次等次数来了解性能消耗在哪里。

要查看着色器的性能详细信息,select 从左侧的事件列表调用绘制或分派。有一个 "performance" 部分。