1

当我尝试在 Ubuntu 中使用 OpenGL 编译 glsl 着色器时,出现以下错误:- 0:1(10): error: GLSL 3.30 is not supported。支持的版本有: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进行开发

4

1 回答 1

3

这基本上是在告诉您您没有核心配置文件上下文。Mesa 为您提供 3.0 上下文,因为它不支持兼容性配置文件,我想这是因为您没有明确询问用于为核心配置文件创建上下文的框架。

更新:

给定 lwjgl,当您创建上下文时,您需要请求 3.3 核心配置文件。

你可以这样做:

PixelFormat    pixelFormat       = new PixelFormat ();
ContextAttribs contextAtrributes = new ContextAttribs (3, 3).withProfileCore (true);

[...]

Display.create (pixelFormat, contextAtrributes);
于 2014-09-20T17:26:07.947 回答