LINUX.ORG.RU
решено ФорумGames

Battle.net падает

 ,


1

2

Добрый вечер, ЛОР.

Manjaro KDE. Снёс wine 5.22 из pacman, поставил wine-6.0-rc3-staging-tkg-amd64 из репозитория @Kron4ek.

Запускаю инсталлятор WoW. Он качает обновление Battle.net и запускает его. Появляется окно с логином и паролем, нижняя часть окна с кнопками не подгружается, крутится прогресс. Начинают вылетать диалоговые окна «В программе Battle.net обнаружена серьёзная ошибка. Программа будет закрыта».

В консоли в это же время (кусок лога):

02d4:fixme:d3d_shader:print_glsl_info_log     0(24) : warning C7050: "vs_out[29]" might be used before being initialized
02d4:fixme:d3d_shader:print_glsl_info_log     0(24) : warning C7050: "vs_out[30]" might be used before being initialized
02d4:fixme:d3d_shader:print_glsl_info_log     0(24) : warning C7050: "vs_out[31]" might be used before being initialized
0324:fixme:heap:RtlSetHeapInformation 00000000 1 00000000 0 stub
030c:fixme:heap:RtlSetHeapInformation 00000000 1 00000000 0 stub
0334:fixme:kernelbase:AppPolicyGetThreadInitializationType FFFFFFFA, 07D3FEF8
0338:fixme:kernelbase:AppPolicyGetThreadInitializationType FFFFFFFA, 07E4FEF8
030c:fixme:ntdll:EtwEventRegister ({d2d578d9-2936-45b6-a09f-30e32715f42d}, 02DFD660, 0712F808, 0712F808) stub.
0324:fixme:ntdll:EtwEventRegister ({d2d578d9-2936-45b6-a09f-30e32715f42d}, 02DFD660, 0712F808, 0712F808) stub.
030c:fixme:ntdll:NtQueryInformationToken QueryInformationToken( ..., TokenElevation, ...) semi-stub
0324:fixme:ntdll:NtQueryInformationToken QueryInformationToken( ..., TokenElevation, ...) semi-stub
0324:fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_PERFORMANCE_INFORMATION
0360:fixme:winsock:WSALookupServiceBeginW (0x93cf2f4 0x00000ff0 0x93cf330) Stub!
[1222/195423.134:ERROR:network_change_notifier_win.cc(142)] WSALookupServiceBegin failed with: 0
0360:fixme:iphlpapi:NotifyAddrChange (Handle 0x93cf470, overlapped 0x7b65d90): stub
0360:fixme:wlanapi:WlanEnumInterfaces (00000001, 00000000, 093CEFDC) semi-stub
0360:fixme:wlanapi:WlanEnumInterfaces (00000001, 00000000, 093CEFDC) semi-stub
0350:fixme:file:NtLockFile I/O completion on lock not implemented yet
0324:fixme:thread:QueryThreadCycleTime (FFFFFFFE,0071EE00): stub!
0024:fixme:win:FlashWindowEx 0031C0BC - semi-stub
01f0:fixme:file:ReplaceFileW Ignoring flags 2
01f0:fixme:dwrite:dwritefactory3_GetSystemFontSet 0x11d61a00, 0xd17f87c: stub
wine: Unhandled exception 0x80000003 in thread 324 at address 03C38D60 (thread 0324), starting debugger...
017c:fixme:winsock:server_ioctl_sock Unsupported ioctl 4004747b (device=4004 access=1 func=d1e method=3)
017c:fixme:winsock:WSAIoctl unsupported WS_IOCTL cmd (SIO_IDEAL_SEND_BACKLOG_QUERY)

Unhandled exception — строка, непосредственно предшествующая ошибке. Программа, тем не менее, не закрывается, и окно это вываливается ещё 10 раз с такими же записями в логе. После этого окно логина продолжает висеть. Последние сообщения в логе:

0210:fixme:dxgi:d3d11_swapchain_Present1 Ignored present parameters 0x71e8f4.
038c:fixme:file:ReplaceFileW Ignoring flags 2
0424:fixme:file:ReplaceFileW Ignoring flags 2
^[[5~^[[5~0024:fixme:win:GetPointerDevices (0031C5CC 00000000): partial stub
0024:fixme:system:GetDisplayConfigBufferSizes (0x2 0031C5CC 0031C5C8): semi-stub
0024:fixme:system:DisplayConfigGetDeviceInfo Unimplemented packet type: 11
0024:fixme:win:FlashWindowEx 0031970C - semi-stub
0024:fixme:win:FlashWindowEx 0031C8C4 - semi-stub

Из этого состояния программа уже не выходит.

Куда копать?

★★★★★

Последнее исправление: hobbit (всего исправлений: 1)

Brazzers Blizzard же всеми способами ставят палки в колёса геймерам на Linux, вплоть до бана аккаунта (без возврата средств) за использование Wine. Не могут ноги расти оттуда же?

mord0d ★★★★★
()

Интересно, у меня Battle.net нормально работает на staging-tkg-6.0-rc3. Хотя на предыдущих версиях (не помню точно каких именно, вроде до 5.20) была точь в точь такая же проблема как у тебя. У тебя установлены gnutls и lib32-gnutls?

Попробуй Battle.net вручную установить, я имею в виду не с помощью установщика WoW (хотя разницы быть не должно, но мало ли).

Kron4ek ★★★★★
()
Последнее исправление: Kron4ek (всего исправлений: 3)
Ответ на: комментарий от mord0d

Да не, они таким уже не страдают, ну, по крайней мере меня не банили, хотя я уже почти два года в Overwatch играю, а последний месяц вообще решил рискнуть и использовать DXVK-async.

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

они таким уже не страдают

Устарела моя информация. Буду знать.

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

У тебя установлены gnutls и lib32-gnutls?

Хм, оказалось, что не было. Установил. Не помогло.

А самое интересное, что если из меню настроек выбрать «Продолжить без логина», она запускает окно клиента со страницей WoW, и при нажатии «Установить» выдаёт окно «Для установки и игры в World of Warcraft требуется 64-разрядная операционная система».

Это как? Linux 64-разрядный, wine тоже.

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

А префикс точно 64-битный? Ты его с нуля создал или старый обновился? А то у меня как-то раз были проблемы после обновления префикса на новую версию Wine.

Если у тебя есть каталог syswow64 (не пустой) в prefix_path/drive_c/windows, значит у тебя 64-битный префикс. Если ты специально не указывал свой путь к префиксу через переменную WINEPREFIX, то он у тебя лежит в ~/.wine.

Kron4ek ★★★★★
()
Последнее исправление: Kron4ek (всего исправлений: 2)
Ответ на: комментарий от Kron4ek

Окно логина отрабатывает. Правда, вместо кнопок внизу чёрный прямоугольник. Но если после имени-пароля нажать Enter, логин происходит.
В общем, дело было в префиксе…

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

Понятно, ну хорошо тогда. У меня, кстати, тоже черный прямоугольник там вместо кнопок, тоже по Enter вхожу.

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

Ещё дурацкий вопрос: нужно ли ставить что-то дополнительное для поддержки Vulkan? У меня сейчас стоят

lib32-nvidia-455xx-utils 455.45.01-1
linux58-nvidia-455xx 455.45.01-1
linux59-rt-nvidia-455xx 455.45.01-1
nvidia-455xx-utils 455.45.01-1

В ауре есть некий пакет nvidia-vulkan, но по описанию у меня подозрение, не дублирует ли он уже основной пакет с драйверами…

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

У Nvidia Vulkan лежит в пакете nvidia-utils, так что у тебя все нужное уже установлено. Ну и, конечно, vulkan-icd-loader тоже нужен.

И да, тот nvidia-vulkan вместе с nvidia-vulkan-utils заменяют драйвер из основного репозитория. Это, считай, бета версия драйвера, примерно как пакет nvidia-beta, только из другой ветки.

Kron4ek ★★★★★
()
Последнее исправление: Kron4ek (всего исправлений: 1)
Ответ на: комментарий от Kron4ek

История имела продолжение…
Обновлятор заработал, игра скачивается. Но при запуске чёрный экран. Музыка играет, есть характерный WoW-курсор в виде перчатки, на мышь реагирует. А больше ничего нет.
В консоль при этом сначала идёт

wineserver: using server-side synchronization.
002c:fixme:winediag:LdrInitializeThunk Wine TkG (staging) 6.0-rc3 is a testing version containing experimental patches.
002c:fixme:winediag:LdrInitializeThunk Please don't report bugs about it on winehq.org and use https://github.com/Frogging-Family/wine-tkg-git/issues instead.
002c:err:wineboot:process_run_key Error running cmd L"C:\\windows\\system32\\winemenubuilder.exe -a -r" (2).
00f8:fixme:kernelbase:AppPolicyGetThreadInitializationType FFFFFFFFFFFFFFFA, 0000000004EBFE10
00fc:fixme:kernelbase:AppPolicyGetThreadInitializationType FFFFFFFFFFFFFFFA, 0000000004FCFE10
00ec:fixme:mpr:WNetGetUniversalNameW (L"C:\\Program Files (x86)\\World of Warcraft\\Data\\data", 0x00000001, 000000000021CF74, 000000000021CF70): stub
00ec:fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_PERFORMANCE_INFORMATION
00ec:fixme:dxgi:dxgi_factory_EnumAdapterByGpuPreference Ignoring GPU preference 0x2.
00ec:fixme:dxgi:dxgi_output_GetDesc1 iface 0x440da20, desc 0x21ec40 semi-stub!
00ec:fixme:dxgi:dxgi_output_GetDisplayModeList iface 0x440da20, format DXGI_FORMAT_R8G8B8A8_UNORM, flags 0x2, mode_count 0x21f128, modes (nil) partial stub!
00ec:fixme:dxgi:dxgi_output_GetDisplayModeList iface 0x440da20, format DXGI_FORMAT_R8G8B8A8_UNORM, flags 0x2, mode_count 0x21f128, modes 0x5df3f00 partial stub!
00ec:fixme:dxgi:dxgi_factory_EnumAdapterByGpuPreference Ignoring GPU preference 0x2.
00ec:fixme:dxgi:DXGID3D10CreateDevice Ignoring flags 0x80.
00ec:fixme:d3d11:d3d11_device_CheckFeatureSupport Returning fake Options support data.
00ec:fixme:d3d11:d3d11_device_CheckFeatureSupport Returning fake Options1 support data.
00ec:fixme:dxgi:dxgi_adapter_QueryVideoMemoryInfo Returning fake video memory info.
00ec:fixme:system:EnableNonClientDpiScaling (000000000001006A): stub
00ec:fixme:win:RegisterPowerSettingNotification (000000000001006A,{5d3e9a59-e9d5-4b00-a6bd-ff34ff516548},0): stub
00ec:fixme:dxgi:dxgi_factory_EnumAdapterByGpuPreference Ignoring GPU preference 0x2.
fixme:d3d12_device_CheckFeatureSupport: Unhandled feature 0x1e.
00ec:fixme:dxgi:d3d12_swapchain_init Ignoring swap effect 0x4.
00ec:fixme:dxgi:wined3d_swapchain_desc_from_dxgi Ignoring alpha mode 0.
00ec:fixme:dxgi:wined3d_swapchain_flags_from_dxgi Unhandled flags 0x800.
00ec:fixme:dxgi:d3d12_swapchain_init Ignoring swapchain flags 0x800.
fixme:rs_desc_from_d3d12: Ignoring MultisampleEnable 0x1.
00ec:fixme:msctf:ThreadMgr_ActivateEx Unimplemented flags 0x4

А далее сыплются однотипные сообщения вида

fixme:d3d12_command_queue_Wait: Failed to acquire Vulkan semaphore for fence 0x7f1f8b80, value 0x1, completed value 0.
fixme:d3d12_command_queue_Wait: Failed to acquire Vulkan semaphore for fence 0x7f1f8b80, value 0x2, completed value 0.
fixme:d3d12_command_queue_Wait: Failed to acquire Vulkan semaphore for fence 0x7f1f8b80, value 0x3, completed value 0.
...

Видеокарта слабенькая: GeForce GT 1030. Но под виндой люди на ней WoW гоняют…
Pacman после последнего обновления показывает по слову nvidia следующие пакеты:

lib32-nvidia-utils 455.45.01-3
linux510-nvidia 455.45.01-10.0
linux54-nvidia 455.45.01-6
nvidia-utils 455.45.01-2

Также стоит vulkan-icd-loader 1.2.162-1.
Куда ещё можно посмотреть?

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

Судя по логу, у тебя игра с DX12 рендером запускается (то есть через vkd3d). DXVK у тебя установлен в префикс? Если нет, то нужно установить. Можно прям через winetricks:

winetricks dxvk

Если она продолжит DX12 использовать, тогда можно попробовать в winecfg в разделе библиотек отключить d3d12.

И еще я загуглил, вроде как игра принимает параметр запуска -d3d11, так что можешь его добавить параметры запуска игры в настройках Battle.Net. Но DXVK все равно нужно установить, иначе производительность вряд ли будет хорошей.

Kron4ek ★★★★★
()
Последнее исправление: Kron4ek (всего исправлений: 3)
Ответ на: комментарий от Kron4ek

И еще, если у тебя системный Wine вообще не установлен, тогда придется через переменные указать путь к бинарникам, иначе winetricks ошибку выдаст. Например:

export WINE=/home/username/wine-5.0-rc3-tkg/bin/wine
export WINE64=/home/username/wine-5.0-rc3-tkg/bin/wine64
export WINESERVER=/home/username/wine-5.0-rc3-tkg/bin/wineserver

winetricks dxvk
Kron4ek ★★★★★
()
Последнее исправление: Kron4ek (всего исправлений: 1)
Ответ на: комментарий от mord0d

А зачем близам линуксята? Пускай на андроиде играют.

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

какие вы молодцы с Крончегом. WoW – это вообще плохо*, а вот запустить его на Linux – это хорошо.

*плохо, потому что убийца жизни…

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

Последнюю версию winetricks можно отсюда скачать, это обычный shell скрипт. А то если его из репозитория ставить, то он притянет wine в качестве зависимости. Только нужно пакет cabextract установить, так как winetricks его использует.

Впрочем, DXVK необязательно через winetricks устанавливать. Можно скачать релизный архив отсюда и распаковать из него 64-битные d3d11.dll и dxgi.dll в каталог путь_к_префиксу/drive_c/windows/system32, а 32-битные в каталог syswow64, после чего переопределить d3d11 и dxgi на «Сторонняя (Windows)» (или Native, если у тебя английский язык интерфейса) в разделе библиотек в winecfg.

Kron4ek ★★★★★
()
Последнее исправление: Kron4ek (всего исправлений: 1)
Ответ на: комментарий от Kron4ek

Можно скачать релизный архив отсюда и распаковать из него 64-битные d3d11.dll и dxgi.dll в каталог путь_к_префиксу/drive_c/windows/system32, а 32-битные в каталог syswow64, после чего переопределить d3d11 и dxgi на «Сторонняя (Windows)» (или Native, если у тебя английский язык интерфейса) в разделе библиотек в winecfg.

Именно так я и сделал. Помогло, спасибо!

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

Рекомендую также Esync или Fsync (в Manjaro вроде как ядро его поддерживает из коробки) включить, это может поднять производительность, как минимум нагрузку на процессор снизит.

export WINEFSYNC=1 (или WINEESYNC=1 для Esync)
wine-6.0-rc3/bin/wine Battle.net.exe

Если работает, в выводе Wine увидишь:

fsync: up and running.

вместо

wineserver: using server-side synchronization.

Для Esync придется лимит на файловые дескрипторы поднять, иначе игра быстро крашнется. Для Fsync это не требуется.

ulimit -n 1000000

По умолчанию такой большой лимит может быть недоступен, можно настроить в /etc/security/limits.conf.

Kron4ek ★★★★★
()

Я когда в дьяблу 3 играл, использовал PlayOnLinux. Какие-то траблы были (давно уже было, не помню), но все работало.

another ★★★★★
()
13 октября 2022 г.
Ответ на: комментарий от Kron4ek

А то у меня как-то раз были проблемы после обновления префикса на новую версию Wine.

Кстати, а это проблемы в принципе нерешаемые? Сейчас просто столкнулся с той же проблемой при попытке перейти на wine 7.18. Будет обидно, если префикс я пересоздам, почти 90 гигов WoW перекачаю, а проблему (*) из-за которой я обновление затеял, не решу :)

Тот префикс, про который тут была речь, отработал безупречно почти 2 года, если что.

(*) Про саму проблему тоже напишу, но попозже.

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

Кстати, а это проблемы в принципе нерешаемые?

Не знаю, может и решаемые, но мне было проще префикс пересоздать.

Будет обидно, если префикс я пересоздам, почти 90 гигов WoW перекачаю, а проблему (*) из-за которой я обновление затеял, не решу :)

Игры можно не перекачивать, просто вынеси их куда-нибудь в отдельный каталог вне префикса. Когда пересоздашь перфикс и установишь Battle.Net, в нем можно будет указать каталог с играми, и он их увидит.

Kron4ek ★★★★★
()
Последнее исправление: Kron4ek (всего исправлений: 1)
Ответ на: комментарий от Kron4ek

Можно скачать релизный архив отсюда и распаковать из него 64-битные d3d11.dll и dxgi.dll в каталог путь_к_префиксу/drive_c/windows/system32, а 32-битные в каталог syswow64, после чего переопределить d3d11 и dxgi на «Сторонняя (Windows)» (или Native, если у тебя английский язык интерфейса) в разделе библиотек в winecfg.

А этот совет остаётся актуальным? Вроде как в 7.18 библиотеки с такими именами уже есть (появляются при инициализации префикса).

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

Актуален. Без этого у тебя будет использоваться WineD3D вместо DXVK, и производительность игры будет ниже.

Kron4ek ★★★★★
()
Последнее исправление: Kron4ek (всего исправлений: 1)
Ответ на: комментарий от powerguy

Не, ВоВка сильно в этом плане отстаёт от доты, которая в свою очередь рядом не стоит с POE в плане проедания времени. Вот там да, гринд ради гринда и надо за лигу (3 месяца) уложиться (если полностью всё делать что надо в лигу (испытания, билд собрать крутой, сотый уровень взять, по возможности на poe.ninja отобразиться, хотя бы не в топах), то это при опыте игры в 3 года надо где-то 2 месяца играть по 5 дней в неделю 8 часов в день, меньше опыта - ещё больше играть надо). Grinding Gear Games одним названием намекает о сути игр которые они делают.

peregrine ★★★★★
()
Последнее исправление: peregrine (всего исправлений: 1)
Ответ на: комментарий от peregrine

Так ушла, что офигеть.

У меня страна регистрации Россия, айпи российские, емейл из зоны .ru.

Если бы Близзарды хотели — они в первую очередь показательно перебанили прямо в игре таких, как я, и отчитались перед проверяющими.

А этого нет. Мой паладин как бегал по Катаклизму 10 лет назад, так и бегает по ShL.

Заплатить — да, проблема. Ищешь, где продают коды карт предоплаты, и покупаешь. Палить конкретные места не буду, я хочу, чтобы они пожили побольше. Но поискать сам можешь, я достаточно простым гуглением нашёл.

hobbit ★★★★★
() автор топика
Последнее исправление: hobbit (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.