Есть ли способ получить двойную буферизацию на частоте 120 Гц (ProMotion) вместо тройной буферизации? Я пытаюсь минимизировать задержку пользовательского интерфейса.
Когда я использую шаблон Xcode iOS Game (который отображает вращающийся куб), я все равно получаю тройную буферизацию на частоте 120 Гц, несмотря на тривиальный объем работы. Это двойная буферизация на 60 Гц.
Воспроизвести:
- Создайте новый проект в Xcode, используя Файл → Создать → Проект
- Выберите iOS → Игра
- Выбрать Swift / Metal
- В
GameViewController
добавить mtkView.preferredFramesPerSecond = 120
- Товар → Профиль
- Выбор трассировки системы металла
- Замечание: тройная буферизация (3 цвета для кадров):
![Image showing triple buffering in Instruments](https://i.stack.imgur.com/FYzsr.png)
Глядя на график, кажется, что GPU хорошо завершает работу за время, необходимое для двойной буферизации.
Вот полезное видео для просмотра фона: https://developer.apple.com/videos/play/wwdc2015/233/