我有三个问题与GLSL自动优化(?)进程。
发布于 2018-01-06 08:48:47
这一点没有明确规定。OpenGL规范说:
请参阅OpenGL 4.6核心剖面规范. 7.6均匀变量.第130页
7.6统一变量 如OpenGL阴影语言规范所述,着色器可以声明命名为统一变量。如果编译器和链接器确定在执行可执行代码时制服实际上将被访问,则制服被视为活动制服。在编译器和链接器无法确定的情况下,制服将被认为是有效的。
请参阅OpenGL 4.6核心剖面规范. 7.3.1程序接口.第101页
7.3.1程序接口 当程序对象成为当前呈现状态的一部分时,其可执行代码可以通过各种接口与其他GL管道级或应用程序代码通信。当程序被链接时,GL为每个接口构建一个活动资源列表。活动资源的示例包括变量、接口块和着色器代码使用的子程序。在着色器代码中引用的资源被认为是活动的,除非编译器和链接器能够确定它们对程序的可执行代码产生的结果没有明显的影响。例如,如果声明了变量,但它们没有在可执行代码中使用,则这些变量可能被视为非活动变量,仅用于不会被执行的if语句的子句中,仅用于从未调用的函数,或仅用于计算对任何着色器输出没有影响的临时变量。在编译器或链接器无法确定的情况下,任何由着色器代码引用的资源都将被认为是活动的。任何接口的活动资源集都是依赖于实现的,因为它依赖于编译器和链接器执行的各种分析和优化。 如果程序链接成功,GL将根据链接生成的可执行代码生成活动资源列表。
https://stackoverflow.com/questions/48123144
复制相似问题