ARKit“像素缓冲区池”,为什么会冻结应用程序?

时间:2018-06-20 22:15:31

标签: swift multithreading arkit

Apple's tutorial中,关于在ARKit中执行计算机视觉任务的他们指出:

  

重要

     

确保一次仅处理一个缓冲区可确保良好   性能。相机回收有限的像素缓冲区池,因此   保留太多缓冲区以进行处理可能会使相机饿死,   关闭捕获会话。将多个缓冲区传递给Vision   处理将减慢每个图像的处理速度,增加延迟   并减少渲染AR的CPU和GPU开销   可视化。

在Swift中,我完全按照他们的建议做了,,将多个缓冲区保留在队列中以便在另一个线程中处理。果然,ARKit性能会受到影响。 ARKit帧的显示速度与我从队列中取出缓冲区的速度一样快。我想更好地了解其背后的机制。

ARKit如何知道缓冲区被保留?迅速有某种锁定机制吗?

0 个答案:

没有答案