如何在CPU上同时运行Core Animation和Core Image?

时间:2016-01-19 03:09:04

标签: ios opengl-es core-animation core-image

Apple的核心图像编程指南,在" Getting the Best Performance"说

  

使用GPU上下文渲染CIImage对象时,请避免使用Core Animation动画。

     

如果您需要同时使用两者,可以将两者设置为使用CPU。

任何人都可以解释这个陈述吗?为什么在CPU上运行Core Animation和Core Image而不是使用GPU会更高效?

如何设置Core Animation在CPU上运行?

2 个答案:

答案 0 :(得分:1)

我有同样的问题并且遇到了WWDC 2013会议509评论,http://asciiwwdc.com/2013/sessions/509

“并且还要注意Core Animation和Core Image都广泛使用GPU。

因此,如果您希望Core Animations顺畅,您可能要错开Core Image操作或使用CPU CIContext,这样他们就不会同时对GPU施加压力。“

答案 1 :(得分:0)

我猜他们不能同时在GPU上工作,因为他们在GPU上渲染时都在主线程上运行,这会导致不可预测的问题和性能开销,至于为什么他们都应该使用CPU,应该保持'同时'

由于核心图形绘制在CPU上,您可以在drawRect中绘制动画并定期调用setNeesDisplay以在CPU上执行动画。