Почему программа, выполняющая GLSurfaceView, не более 60 FPS - PullRequest
0 голосов
/ 18 октября 2018

Я пытаюсь запустить программу opengl с высокой частотой кадров на Android.Это было не более 60 FPS.

Но в GLTextureView было 400+ FPS.https://gist.github.com/eleventigers/9545428

Как я знаю, эффективность SurfaceView намного выше, чем TextureView .Как я могу установить максимальный FPS GLSurfaceView.Или написать собственный SurfaceView с OpenGL.

1 Ответ

0 голосов
/ 01 ноября 2018

В Android нельзя отключить вертикальную синхронизацию экрана, поэтому все, что вы отображаете на экране, ограничено до 60FPS (поскольку экран имеет частоту обновления 60 Гц, возможно, некоторые телефоны Android существуют с более высокой частотой, но они будут исключением).

Может быть возможно отключить Vsync с помощью пользовательских ПЗУ, но вы не можете заставить их использовать их, и вы, вероятно, получите разрыв экрана, который в любом случае не будет хорошо выглядеть.

Когда вы сообщаете 400 FPSс GLTextureView кажется, что измеряется время, необходимое для рендеринга в внеэкранную текстуру GL ... поэтому, конечно, вы можете выполнять рендеринг с очень высокой скоростью в неэкранной текстуре, но вы не можете отображать его со скоростью более 60FPS на экране (это означает, чтодополнительные кадры пропускаются и никогда не отображаются)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...