我感觉有些 Cocoa Quartz Compositions 和 GPU 的组合无法由 GPU 处理并且依赖于软件渲染器,即使 Core Image 正常“加速”。我将如何发现这种情况?
或者更一般地说,我如何检测机器功能太弱而无法处理特定大小的特定组合,而无需实际播放组合并测量 FPS?
(通过在隐藏窗口中播放合成来测量 FPS 不太可能起作用,因为 QCView 可能会检测到这种情况并优化整个操作或其中的一部分。即使它今天没有这样做,它也可能开始这样做随着 Apple 的下一次更新 - 这将是一个不可靠的解决方案。)
更新:为了彻底,我确实编写了一些代码来测试在一个有序但大小合适的窗口中以全分辨率渲染合成,试图强制渲染以[self startRendering];[self snapshotImage];[self stopRendering];
. 这花费了大量时间,起初看起来很合理,直到结果证明慢速机器在运行此测试时比快速机器更快。;) 实际上,慢速机器以微不足道的 2.24 FPS 渲染构图,而在快速机器上则为 27 FPS。