Время glFlush () варьируется от кадра к кадру с тем же контентом на iPhone - PullRequest
3 голосов
/ 28 февраля 2011

этот вопрос относится к presentRenderbuffer: GL_RENDERBUFFER_OES занимает много времени

У меня простая 2D игра (с несколькими спрайтами). Время выполнения glFlush () варьируется от 1 мс до 30 мс с тем же содержимым кадра. Ты знаешь почему? Я уверен, что у меня нет содержимого кадра, измененного от одного кадра к другому, когда я вычисляю это, это статическая сцена с приблизительно 30 спрайтами. Я использую текстурную память ~ 5 МБ с дополнительными 4 МБ, выделенными для загрузки текстуры. Я использую opengles 1.1 в одной теме. У меня есть другие шаги, но они не используют OpenGL. Такое поведение на iPhone 3G с iOS 4.2

1 Ответ

0 голосов
/ 23 сентября 2012

Я попробовал это на своем iPad (3-го поколения), и когда вы компилируете для iPad, glFlush () берет что-то вроде 0,5 мс для небольшого количества геометрии (2 треугольника) и 15 мс для большей геометрии (2 триса + 100 точек) , Большую часть времени ждет обратная ссылка displaylink. Но когда вы компилируете для iPhone , glFlush () занимает минимум 15 мс, и именно на этом тратится большинство игрового времени (если у вас относительно пустой кадр!). И если вы перейдете в режим 2x (приложение работает в режиме iPhone на iPad), время, необходимое для выполнения glFlush , чередуется на каждом кадре: 15 мс, 30 мс, 15 мс, 30 мс. Я думаю, что iPhone отличается от iPad, и в команде glFlush () на iPhone есть какой-то ограничитель кадров (помните, что я только пробовал режим iPHone на моем iPad)!.

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