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