1

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で開発しています

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 に答える