У меня есть игра, использующая GLSurfaceView.Renderer
обычным способом для рендеринга 3D-графики с OpenGL ES 2.0. Весь код рендеринга находится в пределах метода onDrawFrame()
, и когда время выполнения составляет около 24 мс; это легко даст результат 30 FPS. Однако я нахожу, что вызов onDrawFrame()
часто вызывается только каждые 50-100 мс, так что общее время onDrawFrame()
составляет от 70 до 120 мс, давая в лучшем случае результат 14 FPS.Android onDrawFrame() массивная задержка
Зачем нужно было так долго обращаться к андроиду onDrawFrame()
? Читая это на stackoverflow и в других местах, я собираю onDrawFrame()
«блокирует» до тех пор, пока GPU не отобразит фрейм, и поэтому я задаюсь вопросом, может ли это быть, что мой рендеринг GPU занимает очень много времени, а не что-то конкретное в Android вызывая задержку?