我什么时候应该在 CAMetalLayer 上调用 nextDrawable()?

When should I call nextDrawable() on a CAMetalLayer?

我正在使用 SCNRenderer 渲染屏幕外,然后将一些 post 渲染效果应用到 MTLLayer,然后显示在 CAMetalLayer 中。

Xcode/LLVM 给我的性能提示之一是我在需要之前调用 nextDrawable()。在应用 post 渲染效果后,我会为每一帧调用它。

我想知道什么时候应该打电话给 nextDrawable()?

您应该在每次开始渲染新帧时调用 nextDrawable,但确保在调用 [=10= 之前 运行 所有不需要可绘制资源的 per-frame 操作] 为了避免 cpu 拖延。