此片段着色器代码在 Windows 中编译,但在 OS X 中引发错误(Mountain Lion,使用 3.2 核心上下文)。
#version 150 core
in int vinstance_id;
uniform uint object_id[16];
out uint id_map;
void main() {
id_map = object_id[vinstance_id];
}
错误是:
ERROR: 0:2: int can't be an in in the fragment shader
我认为这是不对的:在GLSL 1.50 规范中,第 4.3.4 节谈到了片段着色器:
片段输入只能是有符号和无符号整数和整数向量,浮点数...
这是驱动程序错误吗?