Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

временные затраты на переключение состояний

2 views
Skip to first unread message

Sergey Konuhov

unread,
Jan 24, 2007, 5:38:02 AM1/24/07
to
Привет All!

Можно где-нить узнать о сабже?

интерисует:
gl[Enble|Disable]( GL_TEXTURE_2D );
GL_BLEND

и еще вопрос:
вот если GL_TEXTURE_2D включено, и я еще раз его включаю, драйвер это дело
оптимизирует? (надеюсь)

то, что BindTexture лучше делать как можно реже, наглядно видно по фпс :),
а вот описанные выше моменты сразу не просечешь. что так, что эдак, получается
больше 1000фпс :\ сцена простенькая

С уважением, Sergey 24 января 2007 года

Alex Mizrahi

unread,
Jan 24, 2007, 9:57:03 AM1/24/07
to
(message (Hello 'Sergey)
(you :wrote :to '(All) :on '(Wed, 24 Jan 2007 13:38:02 +0300))
(

SK> Можно где-нить узнать о сабже?

SK> интерисует:
SK> gl[Enble|Disable]( GL_TEXTURE_2D );
SK> GL_BLEND

три наносекунды

SK> и еще вопрос:
SK> вот если GL_TEXTURE_2D включено, и я еще раз его включаю, драйвер
SK> это дело оптимизирует? (надеюсь)

SK> то, что BindTexture лучше делать как можно реже, наглядно видно по фпс
SK> :), а вот описанные выше моменты сразу не просечешь.

драйвер-то всё оптимизирует.. переключение состояния само по себе времени
отнимает мало, хуже то, что оно останавливает конвеер и т.д. поэтому вопрос
"сколько занимает" смысла не имеет -- зависит от многих обстоятельств, что
рисуешь, как, какая версия драйвера, железо, ось..

собственно вызовы enable/disable могут мешать только если их очень много --
они куда более трудоёмки чем простая проверка флага. т.о. если ты их делаешь
очень много, то лучше завести флаги локальные..

SK> что так, что эдак, получается больше 1000фпс :\ сцена простенькая

известен тот факт, что premature optimization is root of evil.
в современных компьютерах вообще никакие затраты оценить точно невозможно --
из-за кэшей, пайплайнов, суперскалярного и спекулятивного выполнения и проч.
так что задача определения задержек на сцене из одного куба не имеет
никакого смысла.

поставь конкретную задачу, на которой на видеокарту достаточная нагрузка --
т.е. до 50 fps, к примеру -- и там уже оптимизируй, под конкретную задачу.

если уж очень хочется, попробуй нарисуй 10000 кубов сперва с текстурой через
один, а потом сначала 5000 с текстурой и 5000 без. я думаю второй вариант
будет значительно быстрее, т.е. вообще сортировка по состояниям нужна.

)
(With-best-regards '(Alex Mizrahi) :aka 'killer_storm)
"People who lust for the Feel of keys on their fingertips (c) Inity")


0 new messages