Ubuntu – Wine is no longer able to initialize OpenGL

openglsteamwine

Since a while, wine is no longer able to initialize OpenGL on my 64bit Linux. This is by no means a unique problem to me- Lots of people with nvidia cards running 64bit linux seem to have this problem with wine on oneiric:

And while some launchpad bug reports say one should use this workaround:

LD_PRELOAD=/usr/lib32/nvidia-current/libGL.so.1 wine <app>

It unfortunately does not solve the problem at all for me; That is, if i'd run CS:S, the game will run just fine for a while, but will abort after some time, including a range of GLSL-related errors.

Here the startup errors from simply running steam:

+ 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 ...]

Here are the errors reported while running, and after running (because the log is huge-ish, it's pasted elsewhere): http://paste.ubuntu.com/901925/


Now, 32bit OpenGL works just fine; The 32bit executables of Nexuiz, for example, work just fine. That being said, I'm suspecting that this is a problem of wine itself.

I've already manually built the git version of wine, to no avail.


So what's going on? Is something broken? How do I check (correctly) whether something is broken? How do I solve this?


Additional Information:

  • My GPU:

    $ lspci | grep VGA
    01:00.0 VGA compatible controller: nVidia Corporation G92 [GeForce 9800 GT] (rev a2)
    
  • Installed via DPKG (using the 'Ubuntu X-Swat' PPA: https://launchpad.net/~ubuntu-x-swat/+archive/x-updates).

  • Version of wine: wine-1.5.0 (manually built from the GIT repository, however the prebuilt version triggers the same error, as explained above)

  • Desktop Env: KDE4.2, but same error occurs under GNOME and XFCE likewise.

  • Kernel stuff (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

  • Tried a clean wine prefix (WINEPREFIX=$HOME/tmp/wine wine ...), didn't help either.


Some more possibly related information:

When running the Direct3D application from an old bug opened by me, wine doesn't report any OpenGL errors at all: http://bugs.winehq.org/attachment.cgi?id=25707 (source is included, it's just a really trivial test app).

I'm not sure what the heck is going on.

Best Answer

Alright, this pretty much forces me to answer my own question, but it turned out that the OpenGL errors are relatively harmless; Upgrading ia32-libs[1] made steam work pretty much flawless (that is, it now works as it did before these errors occured).

So, if anyone else encounters these errors, upgrade your GPU drivers, and upgrade ia32-libs.


[1]: I've stumbled upon a ia32-libs PPA, that has a more recent package of ia32-libs, that might also fix some issues with other software depending on 32bit compatibility: http://radicalbreeze.com/forum/viewtopic.php?f=11&t=525

To add this PPA, just execute this in your terminal:

sudo add-apt-repository ppa:micove/experimental

(experimental because the other one does not include packages for oneiric and newer, especially pangolin).

Related Question