Металлическая система iOS задержала один период VSYNC, чтобы действительно отобразить раму на экранеIOS

Программируем под IOS
Anonymous
Металлическая система iOS задержала один период VSYNC, чтобы действительно отобразить раму на экране

Сообщение Anonymous »

mtkview использовался для визуализации видео < /p>

Код: Выделить всё

self.metalView = [RTC_OBJC_TYPE(XRTCMTLVideoView) createMetalView:self.bounds];
CAMetalLayer *layer = (CAMetalLayer *)self.metalView.layer;
[layer setMaximumDrawableCount:2];
self.metalView.delegate = self;
self.metalView.contentMode = UIViewContentModeScaleAspectFill;
self.metalView.preferredFramesPerSecond = [[UIScreen mainScreen] maximumFramesPerSecond];
< /code>

 Два кадра ограниченных < /li>
 Предполагаемый FPS составляет 60 Гц (iPhone13) < /li>
< /ol>
Я следил за задержкой, когда была представлена ​​притяжение, и я могу видеть задержку на 32 мс больше или меньше. Presentstart - это время, когда мы совершаем команду. < /p>
[_view.currentDrawable addPresentedHandler:^(id _Nonnull drawable) {
CFTimeInterval presentEnd = CACurrentMediaTime();
RTCLogInfo(@"frame %@ drawable ID %lu of addr %p present cost %.3f ms,presentedTime:%.3f",
label,
drawable.drawableID,
drawable,
(presentEnd - presentStart) * 1000,
drawable.presentedTime);
}];
В инструментах мы видим детали Metal Performance. Кадр, кодированный кодированный, был задержан один период VSYNC, чтобы действительно отображаться на экране.
nated и не знаю. это то, что кодированная графическая кадр должна быть действительно отображена в следующем окне VSYNC.>

Подробнее здесь: https://stackoverflow.com/questions/795 ... on-the-scr

Вернуться в «IOS»