I have a problem with my OpenGL program on my Radeon HD6950. I tried to render a square with a simple vertex shader (only one attribute: position). I am explicitly binding my vertex attributes to specific indices via glBindAttribLocation prior to glLinkProgram. In this case I bound 'in vec3 VertexPosition' to index 1 and enabled it in my vertexarray object.
But when I use an index of 0, the geometry gets drawn! This made me wanting to know if it was my fault for thinking that I could use any index from 0 to MAX_ATTRIBS or if it was a driver bug, so I sent the test program to a friend of mine, who uses an NVidia graphics card. He told me that both versions, with index 0 and 1, worked for him. That made me curious and through Google I found a closed thread in this forum that explained that it is a driver bug (I can't link it here?).Code :glBindAttribLocation(programId, 1, "VertexPosition"); glLinkProgram(programId); ... glBindVertexArray(vertexArrayId); glEnableVertexAttribArray(1); glVertexAttribPointer(1, ...);
My question now is: Is this bug still not fixed, or is it a problem on my side? I am using an OpenGL 3.0 context at the moment (because of compatibility and SDL and stuff), maybe it will fix if I move on to a 3.2 core context?