XCODE提供每帧GPU捕获,并且我在一个金属演示中使用它。
当我深入了解函数DRAWDEXDUDPROMENT时,我对一些参数感到困惑。
objective-c - 通过使用xcode GPU捕获, Metal 中某些参数的含义是什么?-LMLPHP
我想知道纹理单元(着色器核心)的时间和停顿时间是什么意思。xcode只提示它是纹理活动或暂停。为什么不加100%?什么是纹理的积极意义?
另一个问题是gpu环带宽的含义是什么?数字9.31是否意味着可用带宽?

最佳答案

shader core time指示着色器执行alu指令(即数学)所花费的时间。
纹理核心时间指示着色器从纹理获取数据所花费的时间。
暂停时间指示着色器在执行其指令之前等待另一个核心的时间。
所得到的结果表明,shader core花费了大约87.3%的时间等待纹理core通过gpu总线获取数据,并在实际执行数学指令之前过滤数据。
这意味着您的材质球没有充分利用材质球核心。
你可以做很多事情:
可以向着色器添加一些不相关的数学,而不会影响该着色器的性能
你可以使用不同的算法,这样你的数学就不那么依赖于纹理数据,也不需要等那么久。
您可以重新排列绘制操作或顶点数据的顺序,以减少纹理缓存未命中的频率,从而加快速度

关于objective-c - 通过使用xcode GPU捕获, Metal 中某些参数的含义是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51473599/

10-09 18:06
查看更多