对于一个类,我必须使用Java,jogl和lwjgl。我们得到了一些代码,现在我正在尝试运行这段代码,但是我得到了错误:
不支持GLSL 3.30。支持的版本为: 1.00 ES、1.10和1.20
我无法确定支持哪些着色器,或者是驱动程序问题还是硬件短路。
目前我正在进行debian测试/不稳定,并使用当前的xorg-video-ati驱动程序包。
谁能告诉我如何识别哪些着色器(如果有的话)是受支持的?
发布于 2012-05-05 18:34:51
“不支持GLSL3.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设置)。我发现并报告的唯一真正的bug是,无论V-sync和swap intervall如何设置,glXSwapBuffers都不会在间接渲染上下文中阻塞。
发布于 2012-05-05 16:26:42
GLSL3.30需要OpenGL 3.3。可能是你的硬件不能运行GL 3.x,或者你最近没有更新你的驱动程序。
发布于 2012-05-05 16:30:45
如果查看作为着色器加载的GLSL文件或字符串,应该有一行:
#version 330
这意味着版本3.3。您可以尝试将其更改为:
#version 120
(版本1.2)
不能保证它将工作,但如果着色器很简单,您可能会逃脱它。
https://stackoverflow.com/questions/10463561
复制