繁体   English   中英

SceneKit统计信息显示中的“Metal Flush”是什么?

[英]What are “Metal Flush” in the SceneKit stats display?

我正在尝试解决FPS中的丢弃问题。 我发现Metal Flushes占用了大部分渲染时间。 那是件好事儿吗?

SceneKit统计信息显示

不确定这一点,因为Apple似乎没有记录究竟“金属冲洗”到底是什么,但我会根据之前的OpenGL经验回答:

在GPU驱动的应用程序的执行周期中,CPU将数据推送到GPU,等待GPU完成对此数据的操作(可能在此期间执行其他工作),并且一旦GPU完成,推送更多数据并请求更多操作。 通常,“刷新”意味着CPU正在等待GPU完成操作(“清除旧数据”),以便它可以将更多数据推送到GPU。

因此,如果我的解释是正确的,那就意味着“金属冲洗”测量C​​PU等待视频内存释放的时间,以便它可以推送更多数据并向GPU请求操作。 在这种情况下,它可能是好事还是坏事:

CPU和GPU之间总会有一些通信开销,所以如果你的大部分渲染时间被“Metal Flush”占用,那么这可能意味着你的应用程序运行得足够快,帧之间的大部分延迟都是只是沟通开销。 在那种情况下,这将是一件好事。

另一方面,您可能会将大量数据推送到GPU,并且复制数据和处理数据所需的时间可能会导致延迟。 在那种情况下,这将是一件坏事。

最后,重要的是确保您的FPS一直很高。 如果您的FPS因“金属冲洗”而下降,您可能想要尝试将数据传输空间化 - 例如,以块的形式存储纹理和/或使用较低分辨率的纹理可能会有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM