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

时间:2013-03-01 21:16:22

标签: glsl shader vertex

所以,我有一台配有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));

1 个答案:

答案 0 :(得分:0)

好的,我终于找到了问题所在。 我的便携式计算机有一个混合视频适配器:Intel / Nvidia。 出于某种原因,即使在全屏模式下,驱动程序仍在我的测试中选择英特尔适配器。 因此......这是英特尔驱动程序中的一个错误。

目前,您无法在Intel HD Graphics 4000上使用%on glsl。我现在将错误提交给他们。

相关问题