opengl – 在同一个阶段使用多个着色器仍然是个坏主意吗?

我在
read中可以将多个着色器附加到OpenGL中程序的同一个阶段,以创建辅助函数的“库”.我试过这个,它在我的机器上运行良好.但是,
the OpenGL Wiki warns

That being said, while this power is available, it is best not to use it. It usually works, but because most OpenGL applications don’t do this, it doesn’t get as thoroughly tested as other parts of the OpenGL API. So you’re likely to run into more driver bugs this way. Generally stick to having one shader object per shader stage.

本节写于2013年.对于合理的现代硬件/驱动程序,这仍然是正确的吗?

最佳答案 恕我直言wiki笔记是完全可见的.限制API因为有可能遇到错误?来吧,然后就放弃编码:没有main(),没有bug.

就个人而言,我从未遇到过在多个对象中分割着色器的问题,主要是在Nvidia,Amd和Intel上.也许其他平台的驱动程序有限,但这可以通过处理多个源文本来解决.

就个人而言,我没有看到任何有效的理由来避免多个对象,但是我会说很少需要缓存对象来将它与多个程序相关联.

点赞