所以,我有一台配有nvidia geforce gtx 580的PC,带有一些ATI卡的Mac,然后是带有geforce gtx 680M的笔记本电脑。
顶点着色器在580和ATI上编译,但不在gtx 680M上编译。
错误非常有趣(不是): 错误:0:18:'':语法错误语法错误
该代码行为: int vIdStep = gl_VertexID%9;
我试图删除所有空格,添加额外的空行,移动线条,......没有任何效果。
我在其他没有问题的着色器中使用 gl_VertexId 。只有带有%的那个才能在680M上编译。
这是什么? 其他人有这种经历吗? 我该怎么办呢? 编辑:顺便说一句:这解决了问题,但这是一个可怕的解决方案IMO,我真的想要一个更好的解决方案: int vIdStep = int(mod(float(gl_VertexID),9));答案 0 :(得分:0)
好的,我终于找到了问题所在。 我的便携式计算机有一个混合视频适配器:Intel / Nvidia。 出于某种原因,即使在全屏模式下,驱动程序仍在我的测试中选择英特尔适配器。 因此......这是英特尔驱动程序中的一个错误。
目前,您无法在Intel HD Graphics 4000上使用%on glsl。我现在将错误提交给他们。