所以,我有一台装有 nvidia geforce gtx 580 的 PC,一台装有 ATI 卡的 mac,然后是一台装有 geforce gtx 680M 的笔记本电脑。
顶点着色器可以在 580 和 ATI 上编译,但不能在 gtx 680M 上编译。
错误很有趣(不是): ERROR: 0:18: '': syntax error syntax error
那行代码是:int vIdStep = gl_VertexID % 9;
我试图删除所有空格,添加额外的空行,移动行,......没有任何效果。
我在其他编译没有问题的着色器中使用gl_VertexId 。只有这个带有 % 的那个不能在 680M 上编译。
这是什么?其他人有这种经验吗?我能做些什么呢?
编辑:顺便说一句:这解决了问题,但这是一个糟糕的解决方案 IMO,我真的想要一个更好的解决方案: int vIdStep = int(mod(float(gl_VertexID), 9));