对于一个类,我必须使用 Java、jogl 和 lwjgl。我们得到了一些代码,现在我正在尝试运行此代码,但是我得到了错误:
" 不支持 GLSL 3.30。支持的版本有:1.00 ES、1.10 和 1.20"
而且我无法确定支持哪些着色器,或者它是驱动程序问题还是硬件缺陷。
目前我正在进行 debian 测试/不稳定并使用当前的 xorg-video-ati 驱动程序包。
谁能告诉我如何确定支持哪些着色器(如果有的话)?
对于一个类,我必须使用 Java、jogl 和 lwjgl。我们得到了一些代码,现在我正在尝试运行此代码,但是我得到了错误:
" 不支持 GLSL 3.30。支持的版本有:1.00 ES、1.10 和 1.20"
而且我无法确定支持哪些着色器,或者它是驱动程序问题还是硬件缺陷。
目前我正在进行 debian 测试/不稳定并使用当前的 xorg-video-ati 驱动程序包。
谁能告诉我如何确定支持哪些着色器(如果有的话)?
“ 不支持 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 都不会阻塞间接渲染上下文。
GLSL 3.30 需要 OpenGL 3.3。您的硬件似乎无法运行 GL 3.x,或者您最近没有更新驱动程序。
如果您查看 GLSL 文件或作为着色器加载的字符串,应该有一行:
#version 330
这意味着版本 3.3。您可以尝试将其更改为:
#version 120
(1.2 版)
不能保证它会起作用,但如果着色器很简单,你可能会侥幸成功。