Не существует реального максимума для команд OpenGL ES, но каждый из них имеет некоторые связанные с этим накладные расходы. Избыточные изменения состояния должны быть устранены, а дорогостоящие изменения состояния должны быть уменьшены путем группировки геометрии способами, в которых выполняется все, используя одно состояние, а затем следующее. У Apple есть некоторые рекомендации для этого в их OpenGL ES Programming Guide for iOS.
Однако, я редко обнаружил, что команды OpenGL ES являются причиной значительного ухудшения производительности в моих приложениях. Большие проблемы, как правило, связаны с размером вашей геометрии или сложностью любых шейдеров или других эффектов, которые вы применяете к своей сцене. Я разделяю некоторые советы, которые я применил для уменьшения размера геометрии here, и один инструмент для профилирования шейдеров here, но я все еще learning the ins-and-outs of shader tuning.
Если вы действительно заботитесь о тонкой настройке вызовов OpenGL, лучший инструмент для профилирования - это новый анализатор OpenGL ES Analyzer, который поставляется с Xcode 4. Я показываю несколько примеров экранов этого инструмента в моем ответе here, где я использовал его для определения некоторых избыточных настроек. Он найдет эти вызовы для вас и укажет, где они находятся в вашем коде. Вы также можете использовать Time Profiler, чтобы узнать, загружаете ли вы больше нагрузки на процессор, чем должны быть при рендеринге ваших фреймов, и отслеживать нарушающие строки кода.
Я сделал попробовал использовать инструмент анализатора, но когда когда-либо я делаю это, инструмент сбрасывается – kd3D
Профайлер времени помог мне теперь иметь fps около 24, но я бы не хотел его больше увеличивать – kd3D
@ kd3D - У меня никогда не было этого инструментального сбоя на мне раньше. Используете ли вы последнюю стабильную версию Xcode 4 при запуске iOS 4.0+ на целевом устройстве? iOS 4.0 необходим для запуска этого инструмента. –