Je travaille sur un jeu qui ne peut pas fonctionner à pleine vitesse sur certains appareils. Sur Tegra2, avec de nombreuses optimisations, les performances sont proches de 40 ips. Le framerate est stable mais les animations ne sont pas assez fluides, j'ai donc besoin d'un vsync.
Avec 2.3 SDK Android, nous pouvons utiliser la bibliothèque EGL en mode natif. J'essaie donc d'utiliser eglSwapInterval mais sans succès. Dans ce GDC Paper , il semble que Tegra2 puisse le faire.
Ps: Thread.sleep () pour forcer un FPS constant n'est pas une solution acceptable
Réponses:
Selon ce fil sur certains benchmark opengl es, la plupart des pilotes de périphériques ignorent simplement l'eglSwapInterval, mais tegra2 devrait avoir vsync activé par défaut (et eglSwapInterval peut être utilisé pour le désactiver).
Peut-être que le taux de synchronisation sur votre appareil est tel que votre bégaiement vient parfois de la frappe, parfois du manque de temps de trame? Avez-vous essayé si la désactivation de vsync améliorera réellement les choses?
la source
Publié un exemple faisant 30FPS en utilisant l'API chorégraphe. https://github.com/googlesamples/android-ndk/tree/master/choreographer-30fps Est-ce que cela fonctionne pour vous?
la source