Насколько дороги операции OpenGL? - PullRequest
2 голосов
/ 18 февраля 2010

Мне любопытно, как дорогие функции, такие как:

glViewPort
glLoadIdentity
glOrtho

относится как к работе, выполняемой на процессоре, так и к работе на графическом процессоре.

Где это задокументировано?

Ответы [ 2 ]

2 голосов
/ 18 февраля 2010

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

0 голосов
/ 18 февраля 2010

Как отмечает Алекс О'Конски, это сильно зависит от платформы.

Тем не менее, если вам интересны последние видеокарты ПК, вы должны знать, что большинство из них этого не делают«делай работу» на GPU.они устанавливают состояние для будущих вызовов отрисовки.

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

Большинство поставщиков платформ вообще не документируют, какова стоимость различных изменений состояния.Они не документируют, как состояние OpenGL соответствует их аппаратному состоянию.

Наконец, изменения состояния, такие как состояние матрицы (glLoadIdentity и glOrtho), являются пережитком прошлого.В современных видеокартах они являются просто вспомогательными (CPU) функциями для настройки униформ (и именно поэтому они не рекомендуются в ядре GL 3.1).И вся математика, которая им требуется (обычно не очень), выполняется на процессоре, внутри драйвера.

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