我玩过Signed Distance Functions
并且帧速率下降到30 fps。所以我只看一下Xcode
中的bebugger:
并且只是意识到所有处理都是在cpu
中完成的,似乎gpu
根本没有运行。
我的几乎所有代码都在带有计算着色器的metal
文件中。 cpu
只是编译和启动应用程序。
这里可能发生什么?无论如何我要测试和检查这个问题?
我正在使用macOS
10.12.2和Xcode
8.3.2。
答案 0 :(得分:0)
你不应该过分关注这些仪表;他们都骗你。 GPU仪表总是报告某些AMD GPU上的0利用率,尽管您的SDF raymarcher可能在GPU上非常沉重。显然高CPU利用率实际上是由帧时间从帧的开始到结束计算的事实引起的,而不是CPU实际忙碌的时间量(例如,如果GPU花费30毫秒来完成帧,在CPU上显示为~30ms,即使它在那段时间内大部分处于空闲状态)。请注意,左边的CPU利用率实际上只有3%左右;这可以更准确地反映出您对帧进行编码所做的工作量很少。
简而言之:仪表不可靠。你的着色器价格昂贵,这就是你的帧速率受到影响的原因。