LINUX.ORG.RU
ФорумGames

WINE - тормоза в Starcraft: Broodwar

 , ,


0

2

Linux Mint Debian Edition. Решил поиграть в Starcraft: Broodwar :) Для этого установил WINE версии 1.5.5. Однако после запуска игры увидел жуткие тормоза (все перемещается рывками). Запуск из терминала дал такую информацию:

 $ wine StarCraft.exe
fixme:advapi:SetSecurityInfo stub
err:winediag:X11DRV_WineGL_InitOpenglInfo Direct rendering is disabled, most likely your OpenGL drivers haven't been installed correctly (using GL renderer "Gallium 0.4 on ATI RS690", version "1.4 (2.1 Mesa 8.0.4)").
fixme:d3d:check_fbo_compat Format WINED3DFMT_R10G10B10A2_UNORM with rendertarget flag is not supported as FBO color attachment, and no fallback specified.
fixme:d3d:check_fbo_compat Format WINED3DFMT_B10G10R10A2_UNORM with rendertarget flag is not supported as FBO color attachment, and no fallback specified.
fixme:win:EnumDisplayDevicesW ((null),0,0x32f2fc,0x00000000), stub!
fixme:winediag:AUDDRV_GetAudioEndpoint Winepulse is not officially supported by the wine project
fixme:winediag:AUDDRV_GetAudioEndpoint For sound related feedback and support, please visit http://ubuntuforums.org/showthread.php?t=1960599

Однако glxinfo сообщает что прямой рендеринг включен

$ glxinfo | grep 'render'
direct rendering: Yes
OpenGL renderer string: Gallium 0.4 on ATI RS690
    GL_EXT_vertex_array_bgra, GL_NV_conditional_render, 

Версии библиотек

 
$ dpkg -l | grep ' xserver-xorg-video-radeon'
ii  xserver-xorg-video-radeon                1:6.14.4-5                           amd64        X.Org X server -- AMD/ATI Radeon display driver
$ dpkg -l | grep 'mesa'
ii  libgl1-mesa-dri:amd64                    8.0.4-2                              amd64        free implementation of the OpenGL API -- DRI modules
ii  libgl1-mesa-glx:amd64                    8.0.4-2                              amd64        free implementation of the OpenGL API -- GLX runtime
ii  libglapi-mesa:amd64                      8.0.4-2                              amd64        free implementation of the GL API -- shared library
ii  libglu1-mesa:amd64                       8.0.4-2                              amd64        Mesa OpenGL utility library (GLU)
ii  mesa-utils                               8.0.1-2+b3                           amd64        Miscellaneous Mesa GL utilities
Вопрос: что требуется сделать (установить-настроить) для решения данной проблемы?

Попробуйте так:
dpkg --add-architecture i386
aptitude install mesa-utils:i386
Это должно(?) подтянуть 32-битные библиотеки для графического ускорения.

AITap ★★★★★ ()

32-битный либы должен был подтянуть сам вайн.

Ключи реестра для смены режима вывода графики пробовал?

morse ★★★★★ ()
Ответ на: комментарий от AITap

Ничего не выходит.

$ sudo dpkg --add-architecture i386
$ sudo aptitude install mesa-utils:i386
Не удалось найти пакеты, содержащих «mesa-utils:i386» в своём имени или описании
Не удалось найти пакеты, содержащих «mesa-utils:i386» в своём имени или описании
Ни одного пакета не будет установлено, обновлено или удалено.
0 пакетов обновлено, 0 установлено новых, 0 пакетов отмечено для удаления, и 215 пакетов не обновлено.
Необходимо получить 0 B архивов. После распаковки 0 B будет занято.
Хотя mesa-utils в репозиториях есть для всех архитектур.

Programmist11180 ★★★ ()
Ответ на: комментарий от Programmist11180

Я так и подумал. А ведь про эти ключи рассказано прямым текстом в appdb вайна на странице старкрафта. Иди и ищи, никто за тебя это делать не будет.

morse ★★★★★ ()
Ответ на: комментарий от AITap

И правда, забыл. Установилось. А толку никакого. Теперь при запуске тупо виснет.

$ wine StarCraft.exefixme:advapi:SetSecurityInfo stub
err:winediag:X11DRV_WineGL_InitOpenglInfo Direct rendering is disabled, most likely your OpenGL drivers haven't been installed correctly (using GL renderer "Gallium 0.4 on ATI RS690", version "1.4 (2.1 Mesa 8.0.4)").
wine: Unhandled page fault on write access to 0x7cbab000 at address 0xf750b30f (thread 0009), starting debugger...
.exe: malloc.c:3096: sYSMALLOc: Assertion `(old_top == (((mbinptr) (((char *) &((av)->bins[((1) - 1) * 2])) - __builtin_offsetof (struct malloc_chunk, fd)))) && old_size == 0) || ((unsigned long) (old_size) >= (unsigned long)((((__builtin_offsetof (struct malloc_chunk, fd_nextsize))+((2 * (sizeof(size_t))) - 1)) & ~((2 * (sizeof(size_t))) - 1))) && ((old_top)->size & 0x1) && ((unsigned long)old_end & pagemask) == 0)' failed.

Programmist11180 ★★★ ()
Ответ на: комментарий от AITap
$ sudo apt-get install wine1.5:i386
Пакеты, имеющие неудовлетворённые зависимости:
 wine1.5:i386 : Зависит: libgphoto2-2:i386 (>= 2.4.10.1) но он не будет установлен
                Зависит: libpulse0:i386 (>= 1:0.99.1) но он не будет установлен
E: Невозможно исправить ошибки, у вас отложены (held) битые пакеты.
Programmist11180 ★★★ ()
Ответ на: комментарий от AITap

Тут вообще что-то страшное

$ sudo aptitude install wine1.5:i386
Следующие НОВЫЕ пакеты будут установлены:        
  gcc-4.7-base:i386{a} libasound2:i386{a} libc6:i386{a} libdb5.1:i386{a} 
  libdrm2:i386{a} libexif12:i386{a} libexpat1:i386{a} libffi5:i386{a} 
  libfontconfig1:i386{a} libfreetype6:i386{a} libgcc1:i386{a} 
  libgcrypt11:i386{a} libgd2-xpm:i386{a} libgettextpo0:i386{a} 
  libgl1-mesa-glx:i386{a} libglapi-mesa:i386{a} libglib2.0-0:i386{a} 
  libglu1-mesa:i386{a} libgnutls26:i386{a} libgpg-error0:i386{a} 
  libgphoto2-2:i386{a} libgphoto2-port0:i386{a} 
  libgstreamer-plugins-base0.10-0:i386{a} libgstreamer0.10-0:i386{a} 
  libjpeg8:i386{a} liblcms1:i386{a} libldap-2.4-2:i386{a} libltdl7:i386{a} 
  liblzma5:i386{a} libmpg123-0:i386{a} libopenal1:i386{a} 
  liborc-0.4-0:i386{a} libp11-kit0:i386{a} libpcre3:i386{a} 
  libpng12-0:i386{a} libsasl2-2:i386{a} libselinux1:i386{a} 
  libstdc++6:i386{a} libtasn1-3:i386{a} libunistring0:i386{a} 
  libusb-0.1-4:i386{a} libx11-6:i386{a} libx11-xcb1:i386{a} libxau6:i386{a} 
  libxcb-glx0:i386{a} libxcb1:i386{a} libxdamage1:i386{a} libxdmcp6:i386{a} 
  libxext6:i386{a} libxfixes3:i386{a} libxml2:i386{a} libxpm4:i386{a} 
  libxxf86vm1:i386{a} wine1.5:i386{b} zlib1g:i386{a} 
Следующие пакеты будут обновлены:
  fontconfig-config libdb5.1 libexif12 libfontconfig1 libfreetype6 
  libgpg-error0 libgphoto2-2 libgphoto2-port0 libldap-2.4-2 libltdl7 
  liborc-0.4-0 libp11-kit0 libpng12-0 libsasl2-2 libxml2 zlib1g 
РЕКОМЕНДУЮТСЯ следующие пакеты, но автоматически они установлены НЕ БУДУТ:
  cups-bsd cups-bsd:i386 kdebase-runtime:i386 libc6-i686:i386 
  libgl1-mesa-dri:i386 libgphoto2-l10n libpulse0:i386 libsasl2-modules:i386 
  shared-mime-info:i386 winbind winbind:i386 winetricks:i386 
16 пакетов обновлено, 55 установлено новых, 0 пакетов отмечено для удаления, и 189 пакетов не обновлено.
Необходимо получить 33,0 MB/39,5 MB архивов. После распаковки 159 MB будет занято.
Следующие пакеты имеют неудовлетворённые зависимости:
 wine1.5:i386 : Зависит: libpulse0:i386 (>= 1:0.99.1) но его установка не запланирована.
                Зависит: libsm6:i386 но его установка не запланирована.
 libsasl2-modules : Зависит: libsasl2-2 (= 2.1.25.dfsg1-4) но устанавливается 2.1.25.dfsg1-5.
Следующие действия разрешат зависимости:

     Удалить следующие пакеты:                         
1)     libpurple-bin                                   
2)     libpurple0                                      
3)     libsasl2-modules                                
4)     pidgin                                          

     Сохранить для следующих пакетов их текущие версии:
5)     wine1.5:i386 [Не установлен]                    



Принять данное решение? [Y/n/q/?] 

Я подумал, наверное не в вайне дело. Смотри Radeon X1200 на ноутбуке - графические артефакты

Programmist11180 ★★★ ()
Ответ на: комментарий от Programmist11180

Можно переключать варианты разрешения зависимостей, последовательно отказываясь от предлагаемых решений (n) или переключаясь между предыдущим (,) и следующим (.) вариантом.

Или попробовать поставить тем же aptitude пакеты libpulse0:i386 libsm6:i386 и посмотреть, какая ругань будет на них.

err:winediag:X11DRV_WineGL_InitOpenglInfo Direct rendering is disabled, most likely your OpenGL drivers haven't been installed correctly (using GL renderer «Gallium 0.4 on ATI RS690», version «1.4 (2.1 Mesa 8.0.4)»).

Это не должно быть вызвано видеокартой, особенно если сама 64-битная система прекрасно с этим direct rendering работает.

AITap ★★★★★ ()
Ответ на: комментарий от AITap

Насчет видеокарты можно проверить. Надо запустить с флешки 32-битный live-образ системы, там попробовать установить wine и повторить действия с запуском starcraft из терминала.

Programmist11180 ★★★ ()
Ответ на: комментарий от AITap

Это не должно быть вызвано видеокартой, особенно если сама 64-битная система прекрасно с этим direct rendering работает.

Вот что нашел: glxgears при запуске из терминала выдает значение fps около 50. Мне кажется это очень мало для такого простого приложения.

Programmist11180 ★★★ ()

А что, со свободными драйверами уже играться можно? Поставь проприетарные и будет у тебя все ОК

anonymous ()
Ответ на: комментарий от anonymous

Читай внимательнее. Данную видеокарту проприетарный драйвер уже давно не поддерживает.

Programmist11180 ★★★ ()
Ответ на: комментарий от Programmist11180

Я не знаю как разрешить зависимости в случае Linux Mint Debian Edition, но может быть вы могли бы проверить на Ubuntu/Kubuntu 12.10, поставив этот пакет? (Проверить можно даже в виртуальной машине, потому как StarCraft особо шустрая графика не нужна.)

Вот что нашел: glxgears при запуске из терминала выдает значение fps около 50. Мне кажется это очень мало для такого простого приложения.

V-Sync включен.

RussianNeuroMancer ★★★★★ ()
Ответ на: комментарий от RussianNeuroMancer

Таки победил я этот рендеринг. Оказывается, он работает только с древней версией вайна из stable. Неожиданно, мягко говоря. Теперь осталось побороть сильную загрузку ЦП (до 100% поровну между Starcraft.exe и Xorg).

Programmist11180 ★★★ ()
Ответ на: комментарий от RussianNeuroMancer

Естественно. Но поскольку с рендерингом проблема была исправлена, то теперь осталось исправить сильную загрузку cpu процессом Xorg.

Programmist11180 ★★★ ()
Ответ на: комментарий от Programmist11180

Естественно. Но поскольку с рендерингом проблема была исправлена, то теперь осталось исправить сильную загрузку cpu процессом Xorg.

попробуй запускать wine в отдельной сессии иксов.

пути и файлы являются порождением моего больного мозга:

cd ~/.wine/drive_c/Broodwar/
wine Starcraft.exe

startx ~/brood.sh -- :1

И посмотри что будет с иксами. Можешь при этом погасить основной.

BaBL ★★★★★ ()

В попытках собрать вайн из исходных кодов самостоятельно (вдруг заработает) при выполнении configure нашел такое

configure:17514: libOSMesa 32-bit development files not found (or too old), OpenGL rendering in bitmaps won't be supported.

Связано это с ошибкой http://bugs.winehq.org/show_bug.cgi?id=31904 Судя по комментариям сломана mesa, видимо из-за этого и возникали проблемы с прямым рендерингом.

Programmist11180 ★★★ ()
Ответ на: комментарий от Programmist11180

Попытка собрать mesa 0.8.5 из-за кривых исходников закончилась ничем.
Вопрос: где есть собранные пакеты mesa версии 0.8.5? Тип: бинарный amd64, дистрибутив не важен (при необходимости сконвертирую через alien).

Programmist11180 ★★★ ()
Ответ на: комментарий от redixin

Нет. Есть заметные подтормаживания из-за Xorg, который при запуске старкрафта начинает сильно грузить процессор. Прямой рендеринг работает только с wine 1.0 и mesa 8.0.4

Programmist11180 ★★★ ()
Ответ на: комментарий от int13h

Попробовал. Из убунтовского репозитория правда, т.к. в дебиановском такого нет. Результат - прямой рендеринг отключен.

Programmist11180 ★★★ ()

Direct Rendering побежден - тепрь работает, для этого надо

sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install libgl1-mesa-dri:i386 libgl1-mesa-glx:i386
Осталось разорбаться с тормозами.

Programmist11180 ★★★ ()

На данный момент ситуация такова.
Чтобы не заморачиваться с мультиархитектурой пошел радикальным путем: установил 32 битную версию системы.
Версия wine: 1.4 из testing
Ошибок с отключенным прямым рендерингом не наблюдается
Теперь загрузка процессора только 50% от Starcraft.exe
Игра по прежнему существенно тормозит. Местами наблюдаются горизонтальные полосы из-за нестыковки верхней и нижней частей изображения(tearing?)
Текущая конфигурация такова
xorg.conf

Section "Module"
# This loads the DBE extension module.
    Load        "dbe"  	# Double buffer extension
# This loads the font modules
#    Load        "type1"
#    Load        "speedo"
    Load        "freetype"
#    Load        "xtt"

# This loads the GLX module
    Load       "glx"
# This loads the DRI module
    Load       "dri"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver "radeon"
    Option	"EXAPixmaps" "off"
    Option "EnablePageFlip"		"on"
    Option "ColorTiling"		"on"
    Option "RenderAccel" "on"
EndSection

Section "DRI"
        Mode 0666
EndSection
~/.drirc
<driconf>
    <device screen="0" driver="dri2">
        <application name="Default">
            <option name="vblank_mode" value="0" />
            <option name="fthrottle_mode" value="0" />
        </application>
    </device>
</driconf>
Какие настройки необходимо выполнить для нормальной работы?

Programmist11180 ★★★ ()

\

$ glxinfo | grep OpenGL
OpenGL vendor string: VMware, Inc.
OpenGL renderer string: Gallium 0.4 on llvmpipe (LLVM 0x209)
OpenGL version string: 2.1 Mesa 8.0.5
OpenGL shading language version string: 1.20

При чем здесь VMware и LLVM?

Programmist11180 ★★★ ()

Вопрос: что требуется сделать (установить-настроить) для решения данной проблемы?

семерочку же

vvviperrr ★★★★★ ()
Ответ на: комментарий от vvviperrr

Windows 7? На данном ноутбуке оно будет неслабо тормозить. Кроме того, в старкрафте под семерочкой нехилые графические артефакты ('совместимость' от Microsoft).

Programmist11180 ★★★ ()

По случаю выхода новой версии драйвера вручную собрал его. Однако, блин, опять ничего не поменялось - glxgears выдает мизерный fps, starcraft тормозит.

Programmist11180 ★★★ ()
Ответ на: комментарий от Programmist11180

Дополнение: xorg.conf

Section "Module"
# This loads the DBE extension module.
    Load        "dbe"  	# Double buffer extension
# This loads the font modules
#    Load        "type1"
#    Load        "speedo"
    Load        "freetype"
#    Load        "xtt"

# This loads the GLX module
    Load       "glx"
# This loads the DRI module
    Load       "dri"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver "radeon"
    Option	"EXAPixmaps" "off"
    Option "EnablePageFlip"		"on"
    Option "ColorTiling"		"on"
    Option "RenderAccel" "on"
EndSection

Section "DRI"
        Mode 0666
EndSection
Section "Files"
        ModulePath "/opt/xorg/lib/xorg/modules,/usr/lib/xorg/modules"
EndSection
#,/usr/lib/xorg/modules
Section "Screen"
	Identifier	"Default Screen"
	Monitor		"Configured Monitor"
	Device		"Configured Video Device"
EndSection
В логе Xorg появилась такая строчка:
(WW) RADEON(0): Direct rendering disabled
RussianNeuroMancer, может вы дадите мне совет?

Programmist11180 ★★★ ()
Ответ на: комментарий от Programmist11180

Судя по этому выводу у вас используется программный рендеринг на драйвере LLVMpipe. Хотя для приложений рендеринг якобы прямой (glxinfo | grep direct) на самом деле это не так (WW) RADEON(0): Direct rendering disabled). Наблюдается ли тоже самое без xorg.conf и вообще, может в логе Иксов есть какие-нибудь другие ошибки?

RussianNeuroMancer ★★★★★ ()
Ответ на: комментарий от RussianNeuroMancer

Ошибок нет. Есть ещё такие предупреждения:

[    20.223] (WW) The directory "/usr/share/fonts/X11/cyrillic" does not exist.
[    20.224] 	Entry deleted from font path.
[    20.224] (WW) The directory "/usr/share/fonts/X11/100dpi/" does not exist.
[    20.224] 	Entry deleted from font path.
[    20.224] (WW) The directory "/usr/share/fonts/X11/75dpi/" does not exist.
[    20.224] 	Entry deleted from font path.
[    20.224] (WW) The directory "/usr/share/fonts/X11/100dpi" does not exist.
[    20.224] 	Entry deleted from font path.
[    20.224] (WW) The directory "/usr/share/fonts/X11/75dpi" does not exist.
[    20.224] 	Entry deleted from font path.
но это вообще относится к шрифтам.
А вот в syslog уже интереснее:
kernel: [    7.354583] radeon_cp: Failed to load firmware "radeon/RS690_cp.bin"
kernel: [    7.354642] [drm:r100_cp_init] *ERROR* Failed to load firmware!
kernel: [    7.354700] radeon 0000:01:05.0: failed initializing CP (-2).
kernel: [    7.354747] radeon 0000:01:05.0: Disabling GPU acceleration

Programmist11180 ★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.