Есть ли снижение производительности при переключении между шейдерами в OpenGL ES 2.0? - PullRequest
3 голосов
/ 23 января 2011

# 1 Существует ли ограничение на количество / размер шейдерных программ, которые устройства OpenGL ES 2.0 (iPhone / iPad) могут быть скомпилированы и доступны одновременно?

# 2 Существуют ли какие-либо издержки производительности при переключении между программами в середине прохода, например, если бы мне пришлось рендерить 100 треугольников, 50 с шейдером 1, 50 с шейдером 2, я буду испытывать снижение производительности в любых случаях использования этого?Например, может ли это быть медленнее чередование программ каждого треугольника или это должно быть быстрее, чтобы пакетировать и сделать все 50 шейдеров1, чем все 50 шейдеров2?Наверное, я спрашиваю, есть ли какое-то внутреннее переключение контекста или библиотеки OpenGL ES просто указывают, какой адрес памяти шейдерных программ на карте должен выполняться, и не имеет значения, если я укажу это по-разному для каждого треугольника.

1 Ответ

4 голосов
/ 23 января 2011
  • Вопрос 1. Нет ограничения, только доступный объем памяти в системе.
  • Вопрос 2. Да, производительность переключается при переключении шейдеров, поэтому пакетирование и минимизация переключения шейдеровобеспечивает лучшую производительность.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...