gpt4 book ai didi

ios - SceneKit 统计显示中的 "Metal Flush"是什么?

转载 作者:可可西里 更新时间:2023-11-01 03:53:23 24 4
gpt4 key购买 nike

我正在尝试解决 FPS 下降问题。我看到 Metal Flushes 占用了大部分渲染时间。这是好事吗?

SceneKit stats display

最佳答案

对此我不确定,因为 Apple 似乎没有记录任何地方的“Metal Flush”到底是什么,但我会根据以前使用 OpenGL 的经验来回答:

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

因此,如果我的解释是正确的,那将意味着“Metal flush”衡量的是 CPU 等待视频内存释放的时间,以便它可以向 GPU 推送更多数据和请求操作。在那种情况下,它可能是好事也可能是坏事:

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

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

最后,重要的是确保您的 FPS 始终保持高水平。如果您的 FPS 由于“Metal Flush”而下降,您可能想尝试间隔数据传输 - 例如,将纹理存储在 block 中和/或使用较低分辨率的纹理可能会有所帮助。

关于ios - SceneKit 统计显示中的 "Metal Flush"是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39855519/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com