gl_VertexID打破渲染

时间:2011-02-28 23:32:23

标签: windows opengl glsl

我有以下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

1 个答案:

答案 0 :(得分:0)

奇迹般地,Catalyst 8.821不再发生这种情况。

我不确定这是因为修复了错误,还是因为驱动程序安装程序重置了一些奇怪的状态。

编辑:鉴于更新的驱动程序在两台独立的计算机上修复了问题,看起来它一定是最近的错误修复。