我有以下GLSL着色器(加载到OpenGL 3.3转发上下文中,但我在2.1中得到相同的行为):
const GLchar* const glsl_vertex_timeseries = {
"#version 330\n"
"#extension GL_EXT_gpu_shader4 : enable\n"
""
"in vec2 in_Y;"
""
"void main()"
"{"
// " int dummy = gl_VertexID;"
" gl_Position = vec4(in_Y, 0.0, 1.0);"
"}"
};
为了找到问题,它已经非常简化了。
如图所示,它编译,链接和我的几何显示。
如果已激活注释行,则会在没有警告的情况下进行编译和链接,但不会呈现任何内容(glClear
仍然有效,但不会glDrawArrays
)。
使gl_VertexID
工作需要什么?
该应用程序是在Windows 7 64位上运行的32位C ++程序。 视频卡是ATI Mobility Radeon 5650,Catalyst 8.812
答案 0 :(得分:0)
奇迹般地,Catalyst 8.821不再发生这种情况。
我不确定这是因为修复了错误,还是因为驱动程序安装程序重置了一些奇怪的状态。
编辑:鉴于更新的驱动程序在两台独立的计算机上修复了问题,看起来它一定是最近的错误修复。