0

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

4

1 回答 1

0

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

目前您不能在 Intel HD Graphics 4000 上的 glsl 上使用 %。我现在将把错误提交给他们。

于 2013-07-04T12:32:09.963 回答