- CADisplayLink на основном цикле выполнения, режим по умолчанию
- синхронизации последовательных вызовов с использованием mach_absolute_time()
- Целевого селектора эффективен пустая функцией
Измеренные раз между последовательными вызовами в диапазоне от 14ms -20ms.CADisplayLink обжиг точность
- Что это значит для попытки синхронизации с обновлением экрана?
- Является ли погрешность ~ 3 мс в mach_absolute_time()? Или в планировании CADisplayLink?
Я, я выпускаю вызовы OpenGL в этом обратном вызове, но сократил количество звонков на рассылку и презентацию для этих тестов. Тестирование на iPhone 6. Я ничего не делаю в основном потоке, кроме обработки ввода. – Zach
Просто потрошил все вызовы OpenGL и обработку ввода. Все еще имеют +/- 3 мс максимальную изменчивость. Не поймите меня неправильно - 95% звонков находятся в пределах +/- 0,5 мс, но не имеют представления о том, что вызывает выбросы (один достигает 27 мс ??). Это затрудняет рассуждение о том, как сократить использование ЦП для игрового движка - не уверен в том, сколько времени у меня есть от вызова -> верхняя граница, когда я могу отправлять вызовы рендеринга для поддержки синхронизации кадров графического процессора. – Zach
Снижение кадров 5/100 не так хорошо - особенно при отсутствии кадра может вызвать каскадные эффекты с помощью vsync. – Zach