0

对于一个类,我必须使用 Java、jogl 和 lwjgl。我们得到了一些代码,现在我正在尝试运行此代码,但是我得到了错误:

" 不支持 GLSL 3.30。支持的版本有:1.00 ES、1.10 和 1.20"

而且我无法确定支持哪些着色器,或者它是驱动程序问题还是硬件缺陷。

目前我正在进行 debian 测试/不稳定并使用当前的 xorg-video-ati 驱动程序包。

谁能告诉我如何确定支持哪些着色器(如果有的话)?

4

3 回答 3

4

“ 不支持 GLSL 3.30。支持的版本有:1.00 ES、1.10 和 1.20”(...)目前我正在进行 debian 测试/不稳定并使用当前的 xorg-video-ati 驱动程序包。

好吧,这并不奇怪,因为到目前为止,DRI/Mesa xorg-video-ati aka radeon 驱动程序仅支持带有扩展的 OpenGL-2.1。OpenGL-3 仍处于 DRI/Mesa 开发的实验阶段。

您需要安装 AMD/ATI 的专有 fglrx/Catalyst 驱动程序以获得对 OpenGL-3 及更高版本的支持(当然这仍然取决于您的硬件)。幸运的是,fglrx 的质量得到了显着提高,而我最后一次详尽的测试(使用 Radeon HD6570)显示出极大的稳定性(它们甚至可以通过所有的折磨测试,比如模糊的上下文和 FB 设置)。我发现并报告的唯一真正的错误是,无论垂直同步和交换间隔如何设置,glXSwapBuffers 都不会阻塞间接渲染上下文。

于 2012-05-05T18:34:51.200 回答
2

GLSL 3.30 需要 OpenGL 3.3。您的硬件似乎无法运行 GL 3.x,或者您最近没有更新驱动程序。

于 2012-05-05T16:26:42.430 回答
0

如果您查看 GLSL 文件或作为着色器加载的字符串,应该有一行:

#version 330

这意味着版本 3.3。您可以尝试将其更改为:

#version 120

(1.2 版)

不能保证它会起作用,但如果着色器很简单,你可能会侥幸成功。

于 2012-05-05T16:30:45.080 回答