Что такое статический контроль потока в GLSL?

Документация PowerVR от Imagination гласит, что есть статическое управление потоком. (7.9 Flow Contro)

Что такое статический контроль потока? Означает ли это, что препроцессор компилятора похож на #if...#endif? И они говорят,

Static flow control can be used to combine many shaders into one big shader.

и что это значит? Можно ли создать множество вариантов шейдеров из одного источника?

1 ответ

Решение

Согласно тексту ранее в 7.9:

Когда условное выполнение зависит от значения однородной переменной, это называется статическим управлением потоком

Таким образом, у вас был бы один шейдер, который принимал решение о ветвлении на основе униформы. Это было бы статическим контролем потока.

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

Другие вопросы по тегам