Добавьте следующие представления в контроллер представления: < /p>
- Метка < /li>
Просмотр a, с подвесом того же размера: mtkview a < /li>
Просмотр b с подвидом того же размера: mtkview b < /li>
ol. /> Скорость обновления каждого представления < /p>
Обновления с меткой на 60 кадров в секунду (управляемое Cadisplaylink). < /li>
mtkview a и b replease. /> Соответствующий Cametallayer MaximumDrawableCount < /code> установлен на 2, измененный на двойную буферизацию. < /li>
Механизм планирования изменен; Рисунок не управляется внутренней петлей, но выполняется вручную. Вызов Draw < /code> запускается сразу после получения кадра.Код: Выделить всё
self.metalView.enableSetNeedsDisplay = NO;
Код: Выделить всё
self.metalView.paused = YES;
- A new high-priority queue is created for drawing, instead of handling it on the main queue.
[*]The GPU completion time T1 is observed through the addCompletedHandler обратный вызов CommandBuffer.
Время презентации T2 кадра наблюдается через AddPresentedHandler обратный вызов CurrentDrawable в MtkView. Это означает, что после завершения рендеринга GPU в MtlView каркас фактически не отображается при следующей инструкции VSYNC, а только в инструкции VSYNC после этого.
Я считаю, что здесь есть дополнительные 16,6 мс задержки, которые я хочу устранить, настраивая механизм рендеринга. результаты После завершения металлического энкодера поверхность в дисплее переключается только после следующей инструкции VSYNC. См. Изображение в ссылке для деталей. Однако это не то, что наблюдается. Необходимо ли в подвеске Mtkview ждать, пока другой цикл VSYNC будет проведен в фактический буфер дисплеев? Разве содержимое Mtkview не синхронизируется при возникновении дисплея? Механизм планирования, но использование ручного запуска метода Draw заключается в том, что собственный механизм планирования MTKVIEW обусловлен CadisPlayLink. Следовательно, если кадр попадает в окно VSYNC, ей необходимо дождаться следующего окна VSYNC, чтобы запустить операцию Draw < /code>, которая вводит задержку ожидания. < /Li>
< /ol>
В инструментах мы видим деталь характеристики металла. Фадм, включенная в синхронизацию. src = "https://i.sstatic.net/f5viz5s6.png"/>
и не знают, что это заподнят. Кодированный кадр должен быть действительно отображаться в следующем окне VSYNC.>
Подробнее здесь: https://stackoverflow.com/questions/795 ... on-the-scr