我正在根据here的建议针对我的金属制图情况实施三重缓冲方案。
效果很好。我正在播放视频剪辑,并且在CVPixelBuffer
中的AVPlayer
对象到达AVFoundation
对象时对它们进行三重缓冲。在视频之间的过渡中,我有一个这样的三缓冲方案的单个 pair 在运行,并且涉及一个内核着色器。似乎在60fps时效果很好。
但是,我对 CVMetalTextureCacheCreate
的缓冲要求有疑问。
我还对这些缓存进行了三重缓冲(为每个电影创建三个这样的缓存),但我不确定是否需要这样做。我正在CVMetalTextureCacheCreateTextureFromImage
的{{1}}方法中利用缓存(调用drawRect
)。对于一对电影,会有一对这样的调用来分散缓存。
在这方面的任何建议都会很棒。
答案 0 :(得分:2)
您只需创建1个纹理缓存,这1个缓存对应于N个纹理。