Я работаю над игрой, которая не может работать на полной скорости на некоторых устройствах. На Tegra2 с множеством оптимизаций производительность составляет около 40 кадров в секунду. Частота кадров стабильна, но анимации недостаточно плавные, поэтому мне нужен vsync.
С 2.3 Android SDK мы можем использовать библиотеку EGL изначально. Поэтому я пытаюсь использовать eglSwapInterval, но безуспешно. В этой статье GDC кажется, что Tegra2 может это сделать.
Ps: Thread.sleep (), чтобы заставить постоянный FPS не является приемлемым решением
Ответы:
Согласно этому потоку в некоторых тестах opengles, драйверы большинства устройств просто игнорируют eglSwapInterval, но для tegra2 должен быть включен vsync по умолчанию (и eglSwapInterval может использоваться для его отключения).
Возможно, частота vsync на вашем устройстве такова, что ваше заикание происходит из-за ударов, иногда без учета времени кадра? Вы пробовали, если отключение vsync действительно улучшит ситуацию?
источник
Опубликовал пример 30FPS с использованием API хореографа. https://github.com/googlesamples/android-ndk/tree/master/choreographer-30fps Это работает для вас?
источник