当我尝试在Ubuntu中使用OpenGL编译glsl着色器时,我会收到以下错误:-0:1(10):错误:不支持GLSL 3.30。支持的版本有:1.10、1.20、1.30和1.00 ES
但当我做"glxinfo|grepOpenGL"时,它会说:
OpenGL vendor string: X.Org
OpenGL renderer string: Gallium 0.4 on AMD JUNIPER
OpenGL core profile version string: 3.3 (Core Profile) Mesa 10.1.3
OpenGL core profile shading language version string: 3.30
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 3.0 Mesa 10.1.3
OpenGL shading language version string: 1.30
OpenGL context flags: (none)
OpenGL extensions:
看来glsl版本是对的,所以我不知道我做错了什么
我正在使用lwjgl和Java 进行开发
这基本上是告诉您没有核心配置文件上下文。Mesa为您提供了一个3.0上下文,因为它不支持兼容性概要文件,我想这是因为您没有明确询问用于创建核心概要文件上下文的框架。
更新:
给定lwjgl,当您创建上下文时,您需要请求一个3.3核心概要文件。
你可以这样做:
PixelFormat pixelFormat = new PixelFormat ();
ContextAttribs contextAtrributes = new ContextAttribs (3, 3).withProfileCore (true);
[...]
Display.create (pixelFormat, contextAtrributes);