LINUX.ORG.RU

Запуск wine с DRI_PRIME

 , ,


0

1

Привет,

у меня снова вопрос. Есть ноутбук с Gentoo Linux:

$ uname -a
Linux msi_gx70 4.4.4-gentoo #1 SMP Sat Mar 5 10:33:11 CET 2016 x86_64 AMD A10-5750M APU with Radeon(tm) HD Graphics AuthenticAMD GNU/Linux
На ноутбуке есть две видеокарты, дискретная и интегрированная:
$ sudo lspci | grep -i vga
00:01.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Richland [Radeon HD 8650G]
01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Neptune XT [Radeon HD 8970M] (rev ff)
Переключение видеокарты с помощью флага DRI_PRIME работает исправно:
$ DRI_PRIME=0 glxinfo | grep -i opengl
OpenGL vendor string: X.Org
OpenGL renderer string: Gallium 0.4 on AMD ARUBA (DRM 2.43.0, LLVM 3.7.1)
OpenGL core profile version string: 4.1 (Core Profile) Mesa 11.3.0-devel (git-4f028bf)
OpenGL core profile shading language version string: 4.10
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 3.0 Mesa 11.3.0-devel (git-4f028bf)
OpenGL shading language version string: 1.30
OpenGL context flags: (none)
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.0 Mesa 11.3.0-devel (git-4f028bf)
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.00

$ DRI_PRIME=1 glxinfo | grep -i opengl
OpenGL vendor string: X.Org
OpenGL renderer string: Gallium 0.4 on AMD PITCAIRN (DRM 2.43.0, LLVM 3.7.1)
OpenGL core profile version string: 4.1 (Core Profile) Mesa 11.3.0-devel (git-4f028bf)
OpenGL core profile shading language version string: 4.10
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 3.0 Mesa 11.3.0-devel (git-4f028bf)
OpenGL shading language version string: 1.30
OpenGL context flags: (none)
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.0 Mesa 11.3.0-devel (git-4f028bf)
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.00
Запуская современные игрушки в стиме (к примеру, Borderlands 2 или Talos Principle), я указываю в параметрах запуска
DRI_PRIME=1 %command%
для выбора дискретной видеокарты.

Недавно я собрал wine, установил стим для Windows и пробую запускать игры под Windows. Проблема в том, что wine, запущенный с флагом DRI_PRIME=1, все равно выбирает интегрированную видеокарту, так же не помогает прописывать флаг в параметрах запуска стима для конкретной игры. Как запустить wine с DRI_PRIME=1? Заранее благодарю за советы!



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

Когда-то сталкивался с подобной проблемой, помогал запуск

DRI_PRIME=1 bash
а уж после запускал вайн.

Deleted
()

Есть вероятность, что steam под вайном использует виндовый синтаксис запуска команд (т.е. DRI_PRIME=1 %command% не работает так, как в юниксовом шелле).

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

Когда-то сталкивался с подобной проблемой, помогал запуск
DRI_PRIME=1 bash
а уж после запускал вайн.

Не помогает. То есть значение переменной верно, карта выбирается верно, но wine все равно использует интегрированную карту. Кстати, заодно приложу лог запуска стима через wine, вдруг что-то прояснит.

$ DRI_PRIME=1 bash
$ echo $DRI_PRIME
1
$ glxinfo | grep -i "renderer string"
OpenGL renderer string: Gallium 0.4 on AMD PITCAIRN (DRM 2.43.0, LLVM 3.7.1)
$ wine "C:\\Program Files (x86)\\Steam\\Steam.exe"
fixme:winediag:start_process Wine Staging 1.8 is a testing version containing experimental patches.
fixme:winediag:start_process Please mention your exact version when filing bug reports on winehq.org.
wine: cannot find L"C:\\windows\\system32\\winemenubuilder.exe"
err:wineboot:ProcessRunKeys Error running cmd L"C:\\windows\\system32\\winemenubuilder.exe -a -r" (2)
fixme:ver:GetCurrentPackageId (0x33e460 (nil)): stub
ILocalize::AddFile() failed to load file "public/steambootstrapper_english.txt".
[2016-03-05 14:17:34] Startup - updater built Feb  4 2016 12:21:59
[2016-03-05 14:17:34] Verifying installation...
[2016-03-05 14:17:34] Verification complete
fixme:advapi:EventRegister {47a9201e-73b0-42ce-9821-7e134361bc6f}, 0x3f0064b0, 0x3f040ce8, 0x3f040ce0
fixme:advapi:EventRegister {58a9201e-73b0-42ce-9821-7e134361bc70}, 0x3f0064b0, 0x3f040d20, 0x3f040d18
fixme:advapi:EventRegister {3fa9201e-73b0-43fe-9821-7e145359bc6f}, 0x3f0064b0, 0x3f040cb0, 0x3f040ca8
fixme:advapi:EventRegister {1432afee-73b0-42ce-9821-7e134361b433}, 0x3f0064b0, 0x3f040d58, 0x3f040d50
fixme:advapi:EventRegister {4372afee-73b0-42ce-9821-7e134361b519}, 0x3f0064b0, 0x3f040d90, 0x3f040d88
fixme:process:SetProcessShutdownParameters (00000100, 00000000): partial stub.
fixme:imm:ImmGetOpenStatus (0x1eb9b0): semi-stub
fixme:ver:GetCurrentPackageId (0x33e320 (nil)): stub
fixme:dwmapi:DwmSetWindowAttribute (0x1008e, 2, 0x33e930, 4) stub
err:winediag:SECUR32_initNTLMSP ntlm_auth was not found or is outdated. Make sure that ntlm_auth >= 3.0.25 is in your path. Usually, you can find it in the winbind package of your distribution.
fixme:heap:RtlSetHeapInformation 0x110000 0 0x33fd0c 4 stub
fixme:process:SetProcessDEPPolicy (3): stub
fixme:heap:RtlSetHeapInformation (nil) 1 (nil) 0 stub
fixme:advapi:EventRegister {d2d578d9-2936-45b6-a09f-30e32715f42d}, 0x100db980, 0x12cb6c10, 0x12e14bb0
fixme:advapi:StopTraceA (0, "Steam Event Tracing", 0x33e9f4) stub
fixme:advapi:StartTraceA (0x33ea80, "Steam Event Tracing", 0x33e9f4) stub
fixme:advapi:OpenTraceA 0x33e854: stub
fixme:advapi:EnableTrace (1, 0x10, 4, {22fb2cd6-0e7b-422b-a0c7-2fad1fd0e716}, cafe4242): stub
fixme:advapi:CloseTrace cafe4242: stub
fixme:advapi:ProcessTrace 0xcc85ec8 1 (nil) (nil): stub
fixme:thread:GetThreadPreferredUILanguages 56, 0x33f7a4, (nil) 0x33f7a8
fixme:winsock:WSALookupServiceBeginW (0x33f5c8 0x00000ff0 0x33f604) Stub!
[0305/141734:ERROR:network_change_notifier_win.cc(168)] WSALookupServiceBegin failed with: 8
fixme:iphlpapi:NotifyAddrChange (Handle 0x33f748, overlapped 0x1a1b30): stub
[0305/141734:ERROR:dns_config_service_win.cc(583)] DNS registry watch failed to start.
fixme:ver:GetCurrentPackageId (0x20fe60c (nil)): stub
fixme:win:RegisterDeviceNotificationW (hwnd=0x100a4, filter=0x33f71c,flags=0x00000000) returns a fake device notification handle!
fixme:win:RegisterDeviceNotificationW (hwnd=0x100a4, filter=0x33f71c,flags=0x00000000) returns a fake device notification handle!
fixme:file:FindFirstFileExW flags not implemented 0x00000002
fixme:ver:GetCurrentPackageId (0x33fb30 (nil)): stub
IPC client is in my process, could/should be using an in-process pipe.err:winediag:SECUR32_initNTLMSP ntlm_auth was not found or is outdated. Make sure that ntlm_auth >= 3.0.25 is in your path. Usually, you can find it in the winbind package of your distribution.
fixme:ver:GetCurrentPackageId (0x31e590 (nil)): stub
fixme:win:RegisterDeviceNotificationA (hwnd=0x100b0, filter=0xe6ae4c8,flags=0x00000004) returns a fake device notification handle!
fixme:wbemprox:wbem_locator_ConnectServer unsupported flags
fixme:wbemprox:client_security_SetBlanket 0x7d277780, 0x3f83468, 10, 0, (null), 3, 3, (nil), 0x00000000
fixme:wbemprox:client_security_Release 0x7d277780
fixme:wbemprox:wbem_locator_ConnectServer unsupported flags
fixme:wbemprox:client_security_SetBlanket 0x7d277780, 0x3f83468, 10, 0, (null), 3, 3, (nil), 0x00000000
fixme:wbemprox:client_security_Release 0x7d277780
fixme:mountmgr:harddisk_ioctl The DISK_PARTITION_INFO and DISK_DETECTION_INFO structures will not be filled
fixme:wbemprox:enum_class_object_Next timeout not supported
fixme:mountmgr:harddisk_ioctl The DISK_PARTITION_INFO and DISK_DETECTION_INFO structures will not be filled
fixme:iphlpapi:NotifyAddrChange (Handle 0x1e2064c, overlapped 0x1e20650): stub
fixme:dwrite:dwritefactory_CreateMonitorRenderingParams (0x1): monitor setting ignored
fixme:imm:ImmReleaseContext (0x100b8, 0x3fa3200): stub
fixme:advapi:StopTraceA (0, "Steam Event Tracing", 0x33efe8) stub
fixme:advapi:CloseTrace ffffffff: stub
fixme:advapi:StopTraceA (0, "Steam Event Tracing", 0x33efcc) stub
fixme:advapi:CloseTrace 0: stub
fixme:advapi:StopTraceA (0, "Steam Event Tracing", 0x33eca0) stub
fixme:advapi:CloseTrace 0: stub
fixme:win:UnregisterDeviceNotification (handle=0xcafecafe), STUB!
fixme:iphlpapi:CancelIPChangeNotify (overlapped 0x1e20650): stub
fixme:win:UnregisterDeviceNotification (handle=0xcafeaffe), STUB!
fixme:win:UnregisterDeviceNotification (handle=0xcafeaffe), STUB!
fixme:iphlpapi:CancelIPChangeNotify (overlapped 0x1a1b30): stub
fixme:advapi:EventUnregister deadbeef: stub
fixme:advapi:EventUnregister deadbeef: stub
fixme:advapi:EventUnregister deadbeef: stub
fixme:advapi:EventUnregister deadbeef: stub
fixme:advapi:EventUnregister deadbeef: stub
fixme:advapi:EventUnregister deadbeef: stub
[2016-03-05 14:17:44] Shutdown
DELETE_FROM
() автор топика
Ответ на: комментарий от KennyMinigun

Работает, я бажные игры запускаю через LANG=C %command%

NeverLoved ★★★★★
()
10 апреля 2016 г.

Проблема решилась обновлением wine, дискретная карта выбирается не при старте стима, но при запуске любой игры. Обновился до:

[IP-] [ ~] app-emulation/wine-1.9.7:0                                                                                                                                                        
[IP-] [ ~] app-emulation/winetricks-20160329:0

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