Я реализую схему тройной буферизации для моей ситуации рисования металла, основываясь на предложениях здесь .
Работает очень хорошо. Я играю видеоклипы и использую тройную буферизацию CVPixelBuffer
семплов по мере их поступления от AVPlayer
объектов в AVFoundation
. При переходе между видео у меня есть одна пара таких схем тройного буфера в работе и задействованный шейдер ядра. Кажется, работает хорошо @ 60fps.
Однако у меня есть вопрос о требованиях буферизации CVMetalTextureCacheCreate
.
Я также трижды буферизовал эти кэши (создавая три таких кэша для каждого фильма), , но я не уверен, нужно ли мне это делать . Я использую кеш (с вызовом CVMetalTextureCacheCreateTextureFromImage
) в методе drawRect
MTKView
. Для пары фильмов будет несколько таких вызовов разрозненных кешей.
Любые предложения на этот счет были бы великолепны.