Что означает статистика использования Tiler в инструменте iPhone OpenGL ES?

Я пытался выполнить некоторые оптимизации производительности OpenGL ES, пытаясь увеличить количество треугольников в секунду, которое я 'я могу сделать в моем приложении iPhone, но ямы врезались в кирпичную стену. Я'я пытался преобразовать мои типы данных OpenGL ES из фиксированной в плавающую точкуЯблоко'рекомендация), чередуя мои объекты буфера вершин и сводя к минимуму изменения в состоянии рисования, но ни одно из этих изменений не повлияло на скорость рендеринга. Несмотря ни на что, я могуПохоже, что на моем iPhone 3G под управлением ОС 3.0 скорость моего приложения выше 320 000 треугольников / с. В соответствии сэтот ориентирЯ должен быть в состоянии достигнуть 687 000 треугольников / с на этом оборудовании с плавным затенением, которое ям с помощью.

В моем тестировании, когда я запускаю инструмент производительности OpenGL ES в Инструментах против работающего устройства, я 'вижу статистикуУтилизация плит " достигнув почти 100% при рендеринге моего теста, но "Renderer Utilization " только около 30%. Это может быть ключом к пониманию того, что является узким местом в процессе отображения, но я нене знаю, что означают эти значения, и яМы не нашли никакой документации по ним. У кого-нибудь есть хорошее описание того, что означает эта и другая статистика в инструменте iPhone OpenGL ES? Я знаю, что PowerVR MBX Lite в iPhone 3G являетсяотсроченный рендер, но я'Я не уверен, какая разница будет между Renderer и Tiler в этой архитектуре.

Если это поможет каким-либо образом, (BSD-лицензированный) исходный код этого приложениядоступен если вы хотите скачать и протестировать его самостоятельно. В текущей конфигурации он запускает небольшой тест каждый раз, когда вы загружаете новую молекулярную структуру, и выводит треугольники / с на консоль.

 David Maymudes17 авг. 2009 г., 14:59
Насколько велики ваши треугольники? Я думаю, что одна из этих характеристик больше о количестве пикселей, а другая о количестве треугольников. меняются ли относительные показатели использования, если вы уменьшаете масштаб, чтобы экран был менее заполнен?
 Brad Larson17 авг. 2009 г., 16:24
Это варьируется, в зависимости от модели, которую я загружаю, но они имеют тенденцию быть довольно маленькими. Независимо от уровня масштабирования модели, кажется, что цифры остаются неизменными. Также я'мы пытались уменьшить размер представления OpenGL до половины того, что есть сейчас, но безрезультатно, что, по-видимому, исключало ограничение скорости заполнения.

Ответы на вопрос(2)

этот Apple Doc определяет эти термины:

Использование рендерера%, Процент времени, затраченного графическим процессором на выполнение обработки фрагмента.Использование тайлера,%, Процент времени, затраченного графическим процессором на обработку вершин и мозаику.% Использования устройства, Процент времени, затраченного графическим процессором на выполнение какой-либо работы с мозаикой или рендерингом
Решение Вопроса

т рабочий цикл оборудования обработки вершин и фрагментов, соответственно. На MBX использование Tiler обычно масштабируется с количеством данных вершин, отправляемых в GPU (с точки зрения как количества вершин, так и размера атрибутов, отправляемых на каждую вершину), а использование фрагментов обычно увеличивается с перерисовкой и выборкой текстур. ,

В вашем случае лучше всего было бы уменьшить размер каждой вершины, которую выповторная отправка. Для начала яПопытайтесь объединить ваши атомы и связи по цвету и отправить каждую из этих корзин, используя постоянный цвет вместо массива. Я'Также предложите выяснить, подходят ли шорты для ваших позиций и нормалей, при условии соответствующего масштабирования. В этом случае, возможно, вам также придется делать выборку по положению, если шорты масштабируются для обеспечения достаточной точности.т охватывает диапазон, который вам нужен. Методы такого рода могут потребовать дополнительных вызовов отрисовки, но я подозреваю, что улучшение пропускной способности вершин перевесит дополнительную нагрузку на ЦП при вызове отрисовки.

Обратите внимание, что этоОбычно полезно (в MBX и в других местах) гарантировать, что каждый атрибут вершины начинается на 32-битной границе, что подразумевает, что вы должны дополнить свои позиции и нормализовать до 4 компонентов, если вы переключите их на шорты. Особенности платформы MBX также делают ее такой, что вы хотите фактически включить компонент W позиции в вызове glVertexPointer в этом случае.

Вы можете также рассмотреть возможность использования альтернативных методов освещения, таких как DOT3, для данных многоугольника, особенно сфер, но это требует особой осторожности, чтобы убедиться, что вы не• сделать ваш рендеринг фрагментным или непреднамеренно отправить больше данных вершин, чем раньше.

 Andrew Garrison09 мар. 2010 г., 04:29
У меня тупой вопрос ..... что значит глагол "бен» означает, что используется во всем Pivot 'ответ здесь?
 Bram27 мая 2012 г., 08:16
Хорошо ответили, но хочу отметить, что биннинг по цвету следует использовать осторожно. Это увеличит количество розыгрышей. IPhone будет перегружать свой процессор, когда будет сделано более 200 вызовов.
 Brad Larson15 апр. 2011 г., 06:44
В качестве еще одного продолжения этого, я наконец-то нашел время для реализации цветового биннинга для моей молекулярной визуализации. Это привело к уменьшению размера геометрии, передаваемой в графический процессор, примерно на 20%, и я наблюдал ускорение рендеринга каждого фрейма OpenGL ES на 17%. Я'буду называть это победой.
 Brad Larson22 авг. 2009 г., 20:11
Это соответствует моему опыту, так как я впервые задал вопрос. Я сократил свои вершины и нормальные данные до коротких, добавив дополнительный компонент, чтобы добраться до 32-битной границы, и это повысило производительность рендеринга на 30%. Отрезка задних поверхностей и настройка глубины добавили еще 10%. Я'Я взгляну на цветовое объединение, чтобы увидеть, какой эффект это имеет. Спасибо за подробный ответ.
 Brad Larson30 мар. 2010 г., 03:23
@ Andrew Garrison: в данном случае это означает группирование предметов определенного типа. Когда он говорит "биннинг ваших атомов и связей по цвету, он имеет в виду, что я должен сгруппировать вершины для элементов, которые имеют один и тот же цвет, а затем отправить только эти элементы один раз для этого цвета. Это избавляет от необходимости указывать цвет для каждой вершины, уменьшая размер отправляемой геометрии.

Ваш ответ на вопрос