6
A
回答
5
我不知道关于这一点,因为苹果似乎并没有已经证明完全是“金属冲”是在任何地方什么,但我会回答基于OpenGL的以往的经验:
在GPU供电的应用程序的执行周期中,CPU会将数据推送到GPU,等待GPU完成对该数据的操作(可能在此期间进行其他工作),并且一旦GPU完成,推送更多数据并请求更多操作。通常情况下,“刷新”意味着CPU正在等待GPU完成操作(“刷新旧数据”),以便将更多数据推送到GPU。因此,如果我的解释是正确的,那将意味着“金属冲洗”测量CPU等待视频内存释放的时间,因此它可以将更多数据和请求操作推送到GPU。在这种情况下,它可能是件好事或坏事:
CPU和GPU之间总会有一些通信开销,所以如果大部分渲染时间被“Metal Flush”占用,这可能意味着您的应用程序运行得足够快,以致帧之间的大部分延迟只是通信开销。在那种情况下,这将是一件好事。另一方面,您可能会向GPU推送大量数据,复制数据和处理数据所需的时间可能会导致延迟。在那种情况下,这将是一件坏事。
最终,这里最重要的是确保您的FPS一直很高。如果您的FPS由于“金属冲洗”而下降,您可能想尝试隔离数据传输 - 例如,以大块方式存储纹理和/或使用较低分辨率纹理可能有助于实现这一点。
相关问题
- 1. 用SceneKit(SCNView)显示统计信息(Swift 4/iOS 11 beta)
- 2. 为什么我的索引列显示没有统计信息?
- 3. SceneKit金属深度缓冲区
- 4. 使用ASP.NET显示Webalizer统计信息
- 5. 显示PeerTracker统计信息,PHP和HTML
- 6. 是否有显示Ohloh统计信息的Maven报告?
- 7. 是否有可用于显示Hibernate统计信息的好GUI?
- 8. 如何冲洗Netbeans synatx错误信息?
- 9. Ehcache统计信息没有显示命中/缺失计数
- 10. 为什么Google Analytics显示的访问次数少于One&One统计信息?
- 11. 为什么unix和Java RunTime显示的统计信息有差异
- 12. 显示MongoDB的执行计划/统计信息
- 13. 显示iphone应用程序中的棒球统计信息
- 14. 什么是在Android中显示信息的最佳方式
- 15. 为什么不显示信息
- 16. 在R中引导不显示相关统计信息
- 17. 在表格中显示统计信息使用R
- 18. Ehcache统计信息
- 19. Solr统计信息
- 20. 将金属缓冲区传递给SceneKit着色器
- 21. 无论您输入什么信息,只显示用于输入的信息是
- 22. 在Flask的网站上显示GitHub的统计信息
- 23. 伙计们帮助....为什么错误信息不显示
- 24. 在SceneKit中使用金属着色器
- 25. 是否有PHP的统计信息库?
- 26. 文本文件统计信息和显示它们的问题
- 27. Apache Cassandra:显示Memtable刷新频率的Nodetool统计信息
- 28. 从网页上的SVN存储库显示统计信息
- 29. 使用PHP来显示Icecast2的统计信息
- 30. “创建统计信息”在SQL Server 2005中做什么?
你明白了吗? – ColdSteel
排序...我通过减少纹理的大小和分辨率在该部门取得了戏剧性的改进。所以我想我们可以得出结论:“金属冲洗”是将图像数据从主存储器传输到视频内存或其他东西。 –
但即使是一个没有任何东西的整个黑色场景也需要5-6毫秒 – ColdSteel