我想知道是否有办法修复 Oneiric 上 Intel HD 3000 视频驱动程序的以下问题。从下面链接的图片可以看出,问题在于一些游戏(即 Aquaria 和 Myth II Soulblighter 本机客户端)OpenGL(3D)中的所有 2D 纹理周围都有可见的边缘,通常会形成一堆原本不应该看到的矩形(或在其他视频卡上看不到)。所有纹理显然都是这种情况,包括那些应该是透明的(例如,只在中间有东西,而边缘没有东西)和不透明的纹理。我想知道这是一个错误,还是我可以以某种方式修复的设置问题。
由于只有一些应用程序受到此影响,主要是独立游戏(Aquaria)和老游戏(Myth II),我想知道他们是否使用一些较旧且可能不太常见的 OpenGL 函数在 3D(OpenGL)环境中显示 2D 纹理,而当前的英特尔驱动程序根本没有在纹理边缘进行适当的纹理混叠,从而导致出现所述线条......
https://i.stack.imgur.com/Rvudm.jpg
https://i.stack.imgur.com/YzlAm.jpg
PS 忘记提了,这是在新的 HP dm1-4050 上,它是 Sandy Bridge 芯片组,内部集成了 Intel HD 3000。系统运行的是 Oneiric,并进行了最新更新,包括最新的 ppa intel xorg 驱动程序(但不包括对 Xorg 或 mesa 的任何新更改)。问题出现在 2 款 3D 游戏中,Aquaria 和 Myth II Soulblighter,这两款游戏都在 64 位系统上使用 32 位库(它们是 32 位游戏)。
更新:与 Aquaria 开发人员沟通后,他表示 libGL* 库的 32 位版本可能存在问题(我正在使用 64 位系统),因为这两款游戏都是 32 位应用程序,到目前为止,只有它们存在此问题... 我正在等待 Aquaria 开发人员为 64 位系统提供测试版本,看看问题是否会消失,如果确实如此,那么这肯定是支持库的 32 位版本存在问题。如果是这样,我该如何修复它?
更新2:我刚刚测试了 64 位版本的 Aquaria,并且这些瑕疵已经消失了,所以这是肯定是 ia32-libs 的问题以及他们如何提供 mesa/GL 库(我不确定这是版本问题还是构建方式问题,还是完全不同的东西)。我通知了 ia32-libs 的上游维护者,但不知道问题出在哪里……
更新 3:我尝试通过 Live CD 使用 32 位 Ubuntu,但同样的问题仍然存在,这表明在任何版本的操作系统上,32 位 mesa GL/GLU libs + Intel HD 3000 组合都会出现此问题,但在 64 位版本上不存在同样的问题...
会是什么非常有帮助是如果其他运行 32 位版本操作系统并使用 Intel HD 3000 显卡的人可以测试从以下链接下载的 Myth II 演示:tain.totalcodex.net/items/show/myth-ii-demo-linux 并报告他们是否遇到任何问题以及他们正在使用什么芯片组(例如,我的笔记本电脑使用的是 Sandy Bridge)。
作为指示,这是来自 Aquaria 的 .h 文件,其中包含所有 OpenGL 调用,可能有助于阐明问题所在:
hg.icculus.org/icculus/aquaria/file/tip/BBGE/OpenGLStubs.h(我的声誉限制不允许使用超过 2 个链接,因此必须手动将这个链接输入浏览器)
答案1
Sandy Bridge 支持2011 年有所改善即使在 Oneiric 发布之后。您可以尝试使用xorg-edgers PPA查看您的问题是否已修复。为此,请在终端中运行以下命令:
sudo add-apt-repository ppa:xorg-edgers/ppa
sudo apt-get update && sudo apt-get upgrade
重新启动后,您的系统应该使用最新的驱动程序、X.org 和内核。
如果要恢复所有更新包的原始版本,请运行:
sudo apt-get install ppa-purge
sudo ppa-purge ppa:xorg-edgers/ppa
答案2
该问题已于大约一个月前通过建议的 11.10 存储库得到修复,其中还包括最近发布的针对此特定问题的上游修复。