金属api - GPU FPS为0

时间:2017-04-29 12:49:48

标签: xcode macos-sierra metal

我玩过Signed Distance Functions并且帧速率下降到30 fps。所以我只看一下Xcode中的bebugger:

enter image description here

并且只是意识到所有处理都是在cpu中完成的,似乎gpu根本没有运行。

我的几乎所有代码都在带有计算着色器的metal文件中。 cpu只是编译和启动应用程序。

这里可能发生什么?无论如何我要测试和检查这个问题?

我正在使用macOS 10.12.2和Xcode 8.3.2。

1 个答案:

答案 0 :(得分:0)

你不应该过分关注这些仪表;他们都骗你。 GPU仪表总是报告某些AMD GPU上的0利用率,尽管您的SDF raymarcher可能在GPU上非常沉重。显然高CPU利用率实际上是由帧时间从帧的开始到结束计算的事实引起的,而不是CPU实际忙碌的时间量(例如,如果GPU花费30毫秒来完成帧,在CPU上显示为~30ms,即使它在那段时间内大部分处于空闲状态)。请注意,左边的CPU利用率实际上只有3%左右;这可以更准确地反映出您对帧进行编码所做的工作量很少。

简而言之:仪表不可靠。你的着色器价格昂贵,这就是你的帧速率受到影响的原因。