4
votes

I have a problem when compiling a simple vertex shader in OpenGL, I get the following error messages:

  • error(#106) Version number not supported by GL2
  • error(#279) Invalid layout qualifier 'location'

I assume that I must be using the wrong version of GL2, but I have no idea how to find my version number or where to go for an upgrade (and yes I tried to search for an answer.) Attached is a copy of my shader code just for reference and my openGL information.

#version 330 core

layout(location = 0) in vec3 Position;

void main() {
    gl_Position.xyz = Position;
}
  • Vendor: ATI Technologies Inc.
  • Renderer: ATI Radeon HD 5700 Series
  • Version: 3.2.9756 Compatibility Profile Context
1
I'm not sure about this, but doesn't #version 330 mean you're requiring GLSL 3.3, and therefore OpenGL 3.3? Check to make sure that you're requesting an OpenGL context of a sufficiently-high version; there were a lot of changes between 2.x and 3.x which were NOT backwards-compatible. - fluffy
honestly, I'm not sure. I checked online and the GLSL versions don't seem to match up with the version tag. I know I can get around this by not requiring a verison and using glGetAttribLocation in the code, but I'd like to get this working in it's current state if possible. - Benjamin Danger Johnson
Try using a lower version (such as #version 150) of shaders and see if they compile. - TheAmateurProgrammer
It does, actually I just pulled out the version number, although now I am having trouble getting glew and intillisense to work on my home computer, so I can't do further testing until tomorrow. - Benjamin Danger Johnson

1 Answers

8
votes
#version 330 core

This says that your shader uses GLSL version 3.30.

This:

Version: 3.2.9756 Compatibility Profile Context

Means that your OpenGL version is 3.2. The GLSL version that corresponds with OpenGL 3.2 is 1.50. Which is less than 3.30. Hence the lack of compilation.

Update your drivers; those are extremely old. Your card should be able to support GL 4.2.