glsl顶点着色器在pc、mac上编译,而不是在另一台pc上编译

glsl顶点着色器在pc、mac上编译,而不是在另一台pc上编译,glsl,shader,vertex,Glsl,Shader,Vertex,所以,我有一台装有nvidia geforce gtx 580的电脑,一台装有ATI卡的mac电脑,还有一台装有geforce gtx 680M的笔记本电脑 顶点着色器可在580和ATI上编译,但不能在gtx 680M上编译 这个错误很有趣(不是): 错误:0:18:'':语法错误语法错误 这行代码是:int-vIdStep=gl\u-VertexID%9 我已经尝试删除所有的空白,添加额外的空行,移动行。。。什么都不管用 我在编译没有问题的其他着色器中使用gl\u VertexId。只有这个包

所以,我有一台装有nvidia geforce gtx 580的电脑,一台装有ATI卡的mac电脑,还有一台装有geforce gtx 680M的笔记本电脑

顶点着色器可在580和ATI上编译,但不能在gtx 680M上编译

这个错误很有趣(不是): 错误:0:18:'':语法错误语法错误

这行代码是:int-vIdStep=gl\u-VertexID%9

我已经尝试删除所有的空白,添加额外的空行,移动行。。。什么都不管用

我在编译没有问题的其他着色器中使用gl\u VertexId。只有这个包含%的文件不会在680M上编译

这是什么? 还有其他人有这种经历吗? 我能怎么办

编辑:顺便说一下:这解决了问题,但在我看来这是一个糟糕的解决方案,我真的想要一个更好的:
int vIdStep=int(mod(float(gl_VertexID),9))

好的,我终于发现了问题所在。 我的便携式电脑有一个混合视频适配器:Intel/Nvidia。 出于某种原因,即使在全屏模式下,驱动程序也会在我的测试中不断选择Intel适配器。 因此。。。这是英特尔驱动程序中的一个错误


目前无法在英特尔HD Graphics 4000上使用glsl上的%。我现在将向他们提交错误。

您的驱动程序是最新的吗?