gpt4 book ai didi

ios - 从 CVImageBuffer 持有 MTLTexture 会导致卡顿

转载 作者:IT王子 更新时间:2023-10-29 05:17:30 27 4
gpt4 key购买 nike

我正在使用 CVMetalTextureCacheCreateTextureFromImageCVImageBuffer(来自相机和播放器)创建一个 MTLTexture 以获得 CVMetalTexture 然后 CVMetalTextureGetTexture 获取 MTLTexture

我看到的问题是,当我稍后使用 Metal 渲染纹理时,我偶尔会看到渲染乱序的视频帧(视觉上它及时来回断断续续),大概是因为 CoreVideo 正在修改底层 CVImageBuffer 存储和 MTLTexture 只是指向那里。

有什么方法可以让 CoreVideo 在释放 MTLTexture 对象之前不接触那个缓冲区并使用它的池中的另一个缓冲区?

我目前的解决方法是使用 MTLBlitCommandEncoder 对纹理进行 blit 处理,但由于我只需要将纹理保持大约 30 毫秒,这似乎没有必要。

最佳答案

我最近遇到了这个完全相同的问题。问题是 MTLTexture 无效,除非它拥有 CVMetalTextureRef 仍然存在。在使用 MTLTexture 的整个过程中(一直到当前渲染周期结束),您必须保留对 CVMetalTextureRef 的引用。

关于ios - 从 CVImageBuffer 持有 MTLTexture 会导致卡顿,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43550769/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com