You are not logged in.
Hi.
I need to run a template in C++/OpenGL, for a task for a computer graphics course. The course uses GLSL 3.30 (#version 330 core). I'm on my laptop which uses Intel HD 4000.
However, when I compile and run their code, I get this error just after the compilation of both vertex and fragment shaders:
0:2(10): error: GLSL 3.30 is not supported. Supported versions are: 1.10, 1.20, 1.30, 1.00 ES, and 3.00 ESJust in case it is helpful, shaders are here.
I tried to use #version 130 instead, but I got an error on line 21 of that paste.
On Wikipedia it seems like OpenGL 3.3 should be supported.
Thanks in advance.
Offline
please post glxinfo output.
(it's in mesa-demos package)
Last edited by Lone_Wolf (2015-09-01 11:26:35)
Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.
clean chroot building not flexible enough ?
Try clean chroot manager by graysky
Offline
glxinfo: http://sprunge.us/XLia
Offline
Your card/driver do support OpenGL 3.3 & GLSL 3.30 , the problem may be with the way the course code checks OpenGL support.
2 possibilities come to mind :
- Mesa only has OpenGL 3.3 support since 10.6.0 , released on jun 14 2015.
The course code may need changes to work with mesa 10.6.x and above ( 11.0 will be released soon).
- The course code needs 1 or more specific extensions that are not available from the intel driver.
You should check with the teachers / creators of this computer graphics course.
Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.
clean chroot building not flexible enough ?
Try clean chroot manager by graysky
Offline
You only get support for GLSL 3.30 if you work with a forward-compatible (core) OpenGL context with version 3.3. You have to request that explicitely on context creation.
Offline
Did you ever find a solution for this? I am in the exact same situation. Class assignment requires #version 330 for shaders and laptop is runnning Intel HD 4000
Offline
Have you tried setting the environment variable:
MESA_GLSL_VERSION_OVERRIDE = 330Then it should no longer complain. But it's not sure if the code will execute properly.
Offline
The only correct solution is what js25 said: You need to request a 3.3 core context at context creation time. Overrides are definitely not the way to go.
Offline
Thanks for the replies.
Have to use glut for this assignment and it doesn't seem to be possible to tell glut to get a 3.3 context.
Got the code working by changing to
#version 300 esin the shaders and then adding precisions for vec4 in the shaders
Offline
Yeah, glut is outdated, I don't think it's aware that something like core contexts even exists. Nice workaround though, to use GLES instead of desktop GL ![]()
Offline