OpenGL允许您在多个程序之间共享同一着色器。除了节省少量内存和着色器句柄之外,这样做还有GPU方面的性能优势吗?
OpenGL允许您在多个程序之间共享同一着色器。除了节省少量内存和着色器句柄之外,这样做还有GPU方面的性能优势吗?
Answers:
我怀疑在GPU方面有性能上的好处。
例如,将通用着色器绑定到程序时,有效的实现应能够删除该着色器与该程序中其他着色器之间的未使用属性,从而甚至可能简化着色器逻辑。当然,与手动调整的着色器组合相比,这并不是真正的好处,但是它确实有助于管理复杂性/组合器,并可能减少驱动程序必须执行的编译次数。
但是,这样做可能会导致命中效率低下的驱动程序-编译器实现的缺点。那里有一些内容,请检查:http : //aras-p.info/blog/2010/09/29/glsl-optimizer/,查看一些实现可能会出错的简单问题。