Что такое статический контроль потока в 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:
Когда условное выполнение зависит от значения однородной переменной, это называется статическим управлением потоком
Таким образом, у вас был бы один шейдер, который принимал решение о ветвлении на основе униформы. Это было бы статическим контролем потока.
Они пытаются вам сказать, что настройка униформ может динамически перепрограммировать шейдеры - скомпилированный код будет исправлен с новыми унифицированными значениями, а не с теми значениями, которые ищутся при каждом запуске шейдера. Таким образом, затраты на доступ к униформе внутри шейдера такие же, как и для использования констант, а затраты на установку униформы вне шейдера, вероятно, больше, чем вы думаете.