Wine больше не может инициализировать OpenGL

С тех пор Wine больше не может инициализировать OpenGL на моем 64-битном Linux. Это ни в коем случае не является единственной проблемой для меня - у многих людей с видеокартами nvidia, работающими под 64-битным Linux, эта проблема возникает с Wine на oneiric:

И хотя в некоторых отчетах об ошибках панели запуска говорится, что нужно использовать этот обходной путь:

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

Это, к сожалению, не решает проблему вообще для меня; То есть, если бы я запускал CS:S, игра некоторое время будет работать нормально, но через некоторое время прекратит работу, включая ряд ошибок, связанных с GLSL.

Вот ошибки запуска от просто запуска 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 ...]

Вот ошибки, сообщаемые во время работы и после запуска (поскольку журнал огромен, он вставляется в другое место): http://paste.ubuntu.com/901925/


Теперь 32-битный OpenGL работает просто отлично; Например, 32-битные исполняемые файлы Nexuiz работают просто отлично. При этом я подозреваю, что это проблема самого вина.

Я уже вручную создал версию git wine, но безрезультатно.


Так, что происходит? Что-то сломано? Как проверить (правильно) что-то сломано? Как мне это решить?


Дополнительная информация:

  • Мой GPU:

    $ lspci | grep VGA
    01:00.0 VGA compatible controller: nVidia Corporation G92 [GeForce 9800 GT] (rev a2)
    
  • Устанавливается через DPKG (с использованием PPA "Ubuntu X-Swat": https://launchpad.net/~ubuntu-x-swat/+archive/x-updates).

    • Версия драйвера: 295.33
    • Ошибка также возникает при ручной установке последней версии драйвера.
    • glxinfo: http://paste.ubuntu.com/906976/
    • glxinfo из 32-битных исполняемых файлов mesa-utils (apt-get downloadраспакованный и т. д.): http://paste.ubuntu.com/906980/
  • Версия wine: wine-1.5.0 (собрана вручную из GIT-репозитория, однако предварительно собранная версия вызывает ту же ошибку, как описано выше)

  • Desktop Env: 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 практически безупречной (то есть теперь она работает так же, как и до появления этих ошибок).

Поэтому, если кто-то еще сталкивается с этими ошибками, обновите драйверы графического процессора и обновите ia32-libs.


[1]: Я наткнулся на PPA ia32-libs, который имеет более свежий пакет ia32-libs, который может также решить некоторые проблемы с другим программным обеспечением в зависимости от 32-битной совместимости: http://radicalbreeze.com/forum/ viewtopic.php? F = 11 & T = 525

Чтобы добавить этот PPA, просто выполните это в своем терминале:

sudo add-apt-repository ppa:micove/experimental

(experimental потому что другой не включает пакеты для oneiric и новее, особенно pangolin).

Другие вопросы по тегам