Wine 不再能够初始化 OpenGL

7 wine steam opengl

一段时间以来,wine 不再能够在我的 64 位 Linux 上初始化 OpenGL。这对我来说绝不是一个独特的问题 - 许多使用 nvidia 卡运行 64 位 linux 的人似乎在 oneiric 上使用 wine 有这个问题:

虽然一些启动板错误报告说应该使用这种解决方法:

LD_PRELOAD=/usr/lib32/nvidia-current/libGL.so.1 wine <app>
Run Code Online (Sandbox Code Playgroud)

不幸的是,它对我来说根本没有解决问题;也就是说,如果我运行 CS:S,游戏会运行一段时间,但会在一段时间后中止,包括一系列与 GLSL 相关的错误。

这里只是运行蒸汽的启动错误:

+ wine steam.exe
fixme:process:GetLogicalProcessorInformation ((nil),0x33e488): stub
[.. snip ...]
fixme:dwmapi:DwmSetWindowAttribute (0x1009a, 3, 0x33d384, 4) stub
fixme:dwmapi:DwmSetWindowAttribute (0x1009a, 4, 0x33d374, 4) stub
err:wgl:is_extension_supported No OpenGL extensions found, check if your OpenGL setup is correct!
err:wgl:is_extension_supported No OpenGL extensions found, check if your OpenGL setup is correct!
err:wgl:is_extension_supported No OpenGL extensions found, check if your OpenGL setup is correct!
[... this error is being reported a few dozen times, so snip again ...]
err:wgl:is_extension_supported No OpenGL extensions found, check if your OpenGL setup is correct!
err:wgl:is_extension_supported No OpenGL extensions found, check if your OpenGL setup is correct!
err:wgl:is_extension_supported No OpenGL extensions found, check if your OpenGL setup is correct!
err:wgl:is_extension_supported No OpenGL extensions found, check if your OpenGL setup is correct!
fixme:iphlpapi:NotifyAddrChange (Handle 0x47cdba8, overlapped 0x45dba80): stub
fixme:winsock:WSALookupServiceBeginW (0x47cdbc8 0x00000ff0 0x47cdbc4) Stub!
[... snip ...]
Run Code Online (Sandbox Code Playgroud)

以下是运行时和运行后报告的错误(因为日志很大,所以粘贴到别处):http : //paste.ubuntu.com/901925/


现在,32 位 OpenGL 工作正常;例如,Nexuiz 的 32 位可执行文件运行良好。话虽如此,我怀疑这是葡萄酒本身的问题。

我已经手动构建了 wine 的 git 版本,但无济于事。


发生什么了?东西坏了吗?如何(正确)检查某些东西是否损坏?我该如何解决这个问题?


附加信息:

  • 我的 GPU:

    $ lspci | grep VGA
    01:00.0 VGA compatible controller: nVidia Corporation G92 [GeForce 9800 GT] (rev a2)
    
    Run Code Online (Sandbox Code Playgroud)
  • 通过 DPKG 安装(使用“Ubuntu X-Swat”PPA:https : //launchpad.net/~ubuntu-x-swat/+archive/x-updates)。

  • wine 版本:wine-1.5.0(从 GIT 存储库手动构建,但是预构建版本会触发相同的错误,如上所述)

  • 桌面环境:KDE4.2,但在 GNOME 和 XFCE 下同样出现相同的错误。

  • 内核内容 ( uname -a):Linux leuchtturm 3.0.0-17-generic #30-Ubuntu SMP Thu Mar 8 20:45:39 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

  • 尝试了一个干净的酒前缀 ( WINEPREFIX=$HOME/tmp/wine wine ...),也没有帮助。


一些更可能的相关信息:

从我打开的旧错误运行 Direct3D 应用程序时,wine 根本不报告任何 OpenGL 错误:http : //bugs.winehq.org/attachment.cgi?id=25707(包含源代码,它只是一个真正的微不足道的测试应用程序)。

我不知道到底发生了什么。

小智 1

好吧,这几乎迫使我回答我自己的问题,但事实证明 OpenGL 错误相对无害;升级 ia32-libs[1] 使 steam 工作几乎完美无缺(也就是说,它现在的工作方式与发生这些错误之前一样)。

因此,如果其他人遇到这些错误,请升级您的 GPU 驱动程序并升级 ia32-libs。


[1]:我偶然发现了一个 ia32-libs PPA,它有一个更新的 ia32-libs 包,它也可能修复其他软件的一些问题,具体取决于 32 位兼容性:http ://radicalbreeze.com/forum/ viewtopic.php?f=11&t=525

要添加此 PPA,只需在终端中执行以下命令:

sudo add-apt-repository ppa:micove/experimental
Run Code Online (Sandbox Code Playgroud)

experimental因为另一个不包括 oneiric 和更新的软件包,尤其是穿山甲)。