当我尝试在Ubuntu中使用OpenGL编译glsl着色器时,我收到以下错误: - 0:1(10):错误:不支持GLSL 3.30。支持的版本为:1.10,1.20,1.30和1.00 ES
但当我做“glxinfo | grep OpenGL”时,它说:
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
进行开发答案 0 :(得分:3)
这基本上告诉您,您没有 核心 个人资料上下文。 Mesa为您提供3.0上下文,因为它不支持兼容性配置文件,我想这是因为您没有明确询问您用于为核心配置文件创建上下文的框架。
鉴于lwjgl,当您创建上下文时,您需要请求3.3核心配置文件。
PixelFormat pixelFormat = new PixelFormat ();
ContextAttribs contextAtrributes = new ContextAttribs (3, 3).withProfileCore (true);
[...]
Display.create (pixelFormat, contextAtrributes);