PowerVR documentation from Imagination说有静态流量控制。 (7.9 Flow Contro)
什么是静态流量控制?它是否意味着像#if...#endif
这样的编译器预处理器?他们说,
Static flow control can be used to combine many shaders into one big shader.
这是什么意思?我可以从一个源实例化多种着色器变体吗?
答案 0 :(得分:4)
根据7.9中的文字:
当条件执行取决于统一变量的值时, 这称为静态流量控制
所以你有一个着色器根据制服做出分支决定。那将是静态流量控制。
他们试图告诉你的是,设置制服可以动态重新编程着色器 - 编译后的代码将使用新的统一值进行修补,而不是每次着色器运行时都会查找这些值。因此,在着色器中访问制服的成本与使用常量相同,并且在着色器外设置制服的成本可能比您猜测的要高。