Jump to content
  • Sign Up

Playing Guild Wars 2 on Linux - Performance optimizations and more.


Recommended Posts

@ArmoredVehicle.2849 said:Which distro are you running if I may ask? I've been able to replicate this issue one of my systems with a clean Xubuntu 18.10, installing that package resolved right away. The only other issue I can think of is having a CPU with more than 16 cores / threads.

Debian 9.7. I don't have more than 16 cores/threads; only 12.

Link to comment
Share on other sites

@shinything.2380 said:

@ArmoredVehicle.2849 said:Which distro are you running if I may ask? I've been able to replicate this issue one of my systems with a clean Xubuntu 18.10, installing that package resolved right away. The only other issue I can think of is having a CPU with more than 16 cores / threads.

Debian 9.7. I don't have more than 16 cores/threads; only 12.

A few posts back you mentioned about trying with Virtual Desktop, any luck with that? I'm currently gathering feedback, so I can hopefully provide an additional entry to the troubleshooting section.

I can't seem to pinpoint where the launcher issue is coming from, what's more surprising is that you're even running Debian 9 which is where I compiled the binaries on (from source).

Link to comment
Share on other sites

@ArmoredVehicle.2849 said:A few posts back you mentioned about trying with Virtual Desktop, any luck with that? I'm currently gathering feedback, so I can hopefully provide an additional entry to the troubleshooting section.

I can't seem to pinpoint where the launcher issue is coming from, what's more surprising is that you're even running Debian 9 which is where I compiled the binaries on (from source).

This does actually let me proceed. The launcher is finally responsive to user input and dragging, so I'm able to enter (and, most importantly, save) my credentials. As I have 3 accounts, I may use this to create my local.dat files so I can cp them in place and restore -autologin. Unfortunately, it means the game runs inside of that virtual desktop window, which is a pain. Maybe we can work out how to script turning this setting on and off, so it's on for the patch UI, but then off when actually playing the game?

For others who want to try this: run the bin/user_config script in the installer, flip to the Graphics tab, and check the box next to Emulate a virtual desktop. Pick a size that is reasonable for your display settings.

You know, I wonder if the issue isn't all the transparency in the launcher window that's used to create the non-rectangular window...

Link to comment
Share on other sites

@"shinything.2380" said:For others who want to try this: run the bin/user_config script in the installer, flip to the Graphics tab, and check the box next to Emulate a virtual desktop. Pick a size that is reasonable for your display settings.

You know, I wonder if the issue isn't all the transparency in the launcher window that's used to create the non-rectangular window...

In my last update I made it a bit easier to access Wine settings, in the top directory there's a "wine_settings.sh" file (all it does is call the user_config). I'm not sure whether it's possible to remove the virtual desktop after the launcher is gone. In the mean time I will add the Virtual Desktop note to the troubleshooting section.

Thanks :)

Link to comment
Share on other sites

Thanks for your work to start with. I tried your tutorial but GW2 hangs after character selection (loading screen of LA). I tried to change the ulimit -Hn and -Sn as you described, but both options give the same result. ulimit -Hn stays at 4096 and ulimit -Sn stays at 1024, after rebooting. I'm using Debian Stretch and I get pretty good results on POL, I was just curious to try your setup.

Link to comment
Share on other sites

@Medlinya.5960 said:Thanks for your work to start with. I tried your tutorial but GW2 hangs after character selection (loading screen of LA). I tried to change the ulimit -Hn and -Sn as you described, but both options give the same result. ulimit -Hn stays at 4096 and ulimit -Sn stays at 1024, after rebooting. I'm using Debian Stretch and I get pretty good results on POL, I was just curious to try your setup.

Hi, since you got the game that far you're nearly there! If you wish I can help you sort the 'ulimit' part. If you post some screenshots of the file contents I can try to figure out why they didn't apply. :)

Link to comment
Share on other sites

@ArmoredVehicle.2849 said:

@"Medlinya.5960" said:Thanks for your work to start with. I tried your tutorial but GW2 hangs after character selection (loading screen of LA). I tried to change the ulimit -Hn and -Sn as you described, but both options give the same result. ulimit -Hn stays at 4096 and ulimit -Sn stays at 1024, after rebooting. I'm using Debian Stretch and I get pretty good results on POL, I was just curious to try your setup.

Hi, since you got the game that far you're nearly there! If you wish I can help you sort the 'ulimit' part. If you post some screenshots of the file contents I can try to figure out why they didn't apply. :)

Thanks for trying to help! :)Here are my file contents

https://imgur.com/x7WIqpRhttps://imgur.com/KuIA7aPhttps://imgur.com/PkeWzJ8

Link to comment
Share on other sites

@Medlinya.5960 said:

@Medlinya.5960 said:Thanks for your work to start with. I tried your tutorial but GW2 hangs after character selection (loading screen of LA). I tried to change the ulimit -Hn and -Sn as you described, but both options give the same result. ulimit -Hn stays at 4096 and ulimit -Sn stays at 1024, after rebooting. I'm using Debian Stretch and I get pretty good results on POL, I was just curious to try your setup.

Hi, since you got the game that far you're nearly there! If you wish I can help you sort the 'ulimit' part. If you post some screenshots of the file contents I can try to figure out why they didn't apply. :)

Thanks for trying to help! :)Here are my file contents

#DefaultLimitNOFILE= has to be without the hashtag on both files, otherwise the value/function is ignored. :-)

Link to comment
Share on other sites

@ArmoredVehicle.2849 said:

@Medlinya.5960 said:Thanks for your work to start with. I tried your tutorial but GW2 hangs after character selection (loading screen of LA). I tried to change the ulimit -Hn and -Sn as you described, but both options give the same result. ulimit -Hn stays at 4096 and ulimit -Sn stays at 1024, after rebooting. I'm using Debian Stretch and I get pretty good results on POL, I was just curious to try your setup.

Hi, since you got the game that far you're nearly there! If you wish I can help you sort the 'ulimit' part. If you post some screenshots of the file contents I can try to figure out why they didn't apply. :)

Thanks for trying to help! :)Here are my file contents

#DefaultLimitNOFILE=
has to be without the hashtag on both files, otherwise the value/function is ignored. :-)

aaaaaah, you're right! I feel so stupid now. Thanks! :+1:

Link to comment
Share on other sites

Just a moment ago I was checking to see if thedirectory for shaders ("__GL_SHADER_DISK_CACHE_PATH") exists, and it turns out it doesn't. I don't see any relevant messages in my dmesg or in the Xorg log output, so... it makes me wonder, how do I even begin to debug this?

Could somebody else test that it works for them, by removing said directory and see if the driver re-creates it? I am running the blob version 415.27

Link to comment
Share on other sites

@"Skotlex.7580" said:Just a moment ago I was checking to see if thedirectory for shaders ("__GL_SHADER_DISK_CACHE_PATH") exists, and it turns out it doesn't. I don't see any relevant messages in my dmesg or in the Xorg log output, so... it makes me wonder, how do I even begin to debug this?

Could somebody else test that it works for them, by removing said directory and see if the driver re-creates it? I am running the blob version 415.27

The directory is created when you run the 'setup.sh' file, otherwise if you already ran it and it's not there, you can simply create a folder manually named 'nv_shader_cache' (case sensitive) in the game's top directory. If you want to clean the game's shader cache only remove the contents inside. The Nvidia driver doesn't create it automatically if it doesn't find it.

Picture for reference:TeLbluF.png

Link to comment
Share on other sites

Oh.... I see. I had my own scripts before, so I didn't just used the package, but adapted my stuff to use the recommendations here. Strange that the NVIDIA documentation for the shader cache setting doesn't mention it.

Curiously enough, the driver did create a GLCache directory inside the directory I set in the environment. And it seems the cache isn't written to disk until I quit the game. These are all reasons why it was taking me a while to sort This out.

Link to comment
Share on other sites

@Skotlex.7580 said:Oh.... I see. I had my own scripts before, so I didn't just used the package, but adapted my stuff to use the recommendations here. Strange that the NVIDIA documentation for the shader cache setting doesn't mention it.

Curiously enough, the driver did create a GLCache directory inside the directory I set in the environment. And it seems the cache isn't written to disk until I quit the game. These are all reasons why it was taking me a while to sort This out.

If you're seeing a GLCache folder in your designated location, then it's working fine. :)

Link to comment
Share on other sites

@ArmoredVehicle.2849 said:If you're seeing a GLCache folder in your designated location, then it's working fine. :)

The performance difference when running a GL shader cache is amazing. I was used to having a LOT of stuttering issues whenever I changed maps, but after a day of having this working again, I will say the difference is remarkable.

As GW2 is a pretty CPU-intensive game, I will look next into changing my CPU scheduler to performance during gameplay to see if I notice any change.

Speaking of which, does using STAGING_RT_PRIORITY_SERVER brings any remarkable changes to any other people? Considering a Linux system is pretty lightweight and I don't have any background processes active while playing, I really don't foresee myself being benefited from it.

Link to comment
Share on other sites

@Skotlex.7580 said:The performance difference when running a GL shader cache is amazing. I was used to having a LOT of stuttering issues whenever I changed maps, but after a day of having this working again, I will say the difference is remarkable.

I remember trying out GW2 on a low budget laptop with with the then Mesa 13, which didn't have a shader cache for Intel HD. Then arrived Mesa 18.1 last year and I tried the game again, the stutter reduced massively and made the game a lot more playable.

Despite the game already running very smooth nowadays, this isn't the end of the road for Linux, a number of projects revolving around mapping OpenGL to Vulkan are in development, and the Wine devs themselves are exploring a way to do DX9 over Vulkan.

Link to comment
Share on other sites

Hi! first time Linux user here, just moved over from windows 7 32bit to xubuntu 18.04 64bit 3 days ago (and loving it). Decided to try and see if I could get Gw2 running and came across this thread. Installed your package but was missing some libraries, wich I managed to fix by installing wine via apt (not sure if the order of operations borked anything here). Anyway on to the problem I'm currently experiencing: play.sh crashes after clicking play on the launcher (launcher works perfectly fine) and debug.sh gets me into the game but it tanks to 3-4 fps on character selection and several seconds per frame in-game. So, the game techniclly works! I got at least that far :P

Here's a debug dump:

000b:fixme:winediag:start_process Wine Staging 3.15 is a testing version containing experimental patches.000b:fixme:winediag:start_process Please mention your exact version when filing bug reports on winehq.org.0009:fixme:heap:RtlSetHeapInformation 0x30000 0 0x25fd00 4 stub0009:fixme:heap:RtlSetHeapInformation 0x380000 0 0x25fce0 4 stub0009:fixme:heap:RtlSetHeapInformation 0x380000 1 (nil) 0 stub002f:fixme:ver:GetCurrentPackageId (0xf6fdd0 (nil)): stub002e:fixme:ver:GetCurrentPackageId (0xe5fdd0 (nil)): stub002e:fixme:thread:SetThreadStackGuarantee (0xe5fdd0): stub002d:fixme:ver:GetCurrentPackageId (0xd4fdd0 (nil)): stub0009:err:winediag:wined3d_dll_init Setting multithreaded command stream to 0x1.0009:err:winediag:wined3d_dll_init The GLSL shader backend has been disabled. You get to keep all the pieces if it breaks.0009:err:winediag:wined3d_dll_init Setting multithreaded command stream to 0x1.0009:err:winediag:wined3d_dll_init The GLSL shader backend has been disabled. You get to keep all the pieces if it breaks.0030:fixme:d3d_perf:create_buffer_heap Not using PBA, ARB_buffer_storage unsupported.0009:fixme:gameux:GameExplorerImpl_VerifyAccess (0x13715d0, L"C:\GW2\GW2.exe", 0x25f170)0039:fixme:msctf:ThreadMgrSource_AdviseSink (0x14ba340) Unhandled Sink: {ea1ea136-19df-11d7-a6d2-00065b84435c}0039:fixme:imm:ImmDisableTextFrameService Stub0039:fixme:d3d9:D3DPERF_GetStatus (void) : stub0039:fixme:ntdll:NtQueryInformationJobObject stub: 0x210 2 0x242dbb0 64 (nil)0039:fixme:ntdll:NtQueryInformationJobObject stub: 0x210 9 0x242dbf0 144 (nil)0040:fixme:heap:RtlSetHeapInformation (nil) 1 (nil) 0 stub0040:fixme:process:SetProcessDEPPolicy (3): stub0040:fixme:heap:RtlSetHeapInformation (nil) 1 (nil) 0 stub0040:fixme:nls:GetThreadPreferredUILanguages 00000038, 0x35f674, (nil) 0x35f6700040:fixme:nls:get_dummy_preferred_ui_language (0x38 0x35f674 (nil) 0x35f670) returning a dummy value (current locale)0040:fixme:nls:GetThreadPreferredUILanguages 00000038, 0x35f674, 0x2b0ab90 0x35f6700040:fixme:nls:get_dummy_preferred_ui_language (0x38 0x35f674 0x2b0ab90 0x35f670) returning a dummy value (current locale)0040:fixme:winsock:WSALookupServiceBeginW (0x35f6e0 0x00000ff0 0x35f728) Stub!0040:fixme:iphlpapi:NotifyAddrChange (Handle 0x35f5b8, overlapped 0x2b12d08): stub0048:fixme:esync:esync_wait_objects Can't wait on esync and server objects at the same time!0040:fixme:win:RegisterDeviceNotificationW (hwnd=0x1008a, filter=0x35f798,flags=0x00000000) returns a fake device notification handle!0040:fixme:win:RegisterDeviceNotificationW (hwnd=0x1008a, filter=0x35f798,flags=0x00000000) returns a fake device notification handle!0050:fixme:ntdll:EtwRegisterTraceGuidsW (0x495320, 0x24ef248, {3dada31d-19ef-4dc1-b345-037927193422}, 1, 0x24a4f04, (null), (null), 0x24ef260): stub0050:fixme:ntdll:EtwRegisterTraceGuidsW register trace class {00000000-0000-0000-0000-000000000000}0040:fixme:winsock:WSALookupServiceBeginW (0x35dbf0 0x00000ff0 0x35dc38) Stub!0058:fixme:heap:RtlSetHeapInformation (nil) 1 (nil) 0 stub0058:fixme:process:SetProcessDEPPolicy (3): stub0058:fixme:heap:RtlSetHeapInformation (nil) 1 (nil) 0 stub0058:fixme:ntdll:EtwRegisterTraceGuidsW (0x495320, 0x24ef248, {3dada31d-19ef-4dc1-b345-037927193422}, 1, 0x24a4f04, (null), (null), 0x24ef260): stub0058:fixme:ntdll:EtwRegisterTraceGuidsW register trace class {00000000-0000-0000-0000-000000000000}0058:fixme:gdi:GdiInitializeLanguagePack stub0052:fixme:winsock:WSALookupServiceBeginW (0x3eff564 0x00000ff0 0x3eff5ac) Stub!0056:fixme:ntdll:NtLockFile I/O completion on lock not implemented yet0052:fixme:winsock:WSALookupServiceBeginW (0x3eff564 0x00000ff0 0x3eff5ac) Stub!0040:fixme:win:UnregisterDeviceNotification (handle=0xcafeaffe), STUB!0040:fixme:win:UnregisterDeviceNotification (handle=0xcafeaffe), STUB!0040:fixme:iphlpapi:CancelIPChangeNotify (overlapped 0x2b12d08): stub0040:fixme:ntdll:EtwUnregisterTraceGuids deadbeef: stub0039:fixme:wbemprox:wbem_services_CreateInstanceEnum unsupported flags 0x000000300039:fixme:wbemprox:enum_class_object_Next timeout not supported0039:fixme:ddraw:ddraw7_Initialize Ignoring guid {aeb2cdd4-6e41-43ea-941c-8361cc760781}.0077:fixme:d3d_perf:create_buffer_heap Not using PBA, ARB_buffer_storage unsupported.0039:err:winediag:MIDIMAP_drvOpen No software synthesizer midi port found, Midi sound output probably won't work.0039:fixme:d3d:debug_d3dformat Unrecognized 0x434f5441 (as fourcc: ATOC) WINED3DFORMAT!0039:fixme:d3d:wined3d_get_format Can't find format unrecognized (0x434f5441) in the format lookup table.0039:fixme:msctf:ThreadMgrSource_AdviseSink (0x14ba340) Unhandled Sink: {ea1ea136-19df-11d7-a6d2-00065b84435c}0039:fixme:imm:ImmDisableTextFrameService Stub0039:fixme:wtsapi:WTSRegisterSessionNotification Stub 0x6006a 0x00000000007c:fixme:d3d_perf:create_buffer_heap Not using PBA, ARB_buffer_storage unsupported.007c:fixme:d3d_perf:create_buffer_heap Not using PBA, ARB_buffer_storage unsupported.007f:fixme:avrt:AvSetMmThreadCharacteristicsW (L"Audio",0x742fd78): stub007c:fixme:d3d_perf:create_buffer_heap Not using PBA, ARB_buffer_storage unsupported.0039:fixme:d3d:wined3d_swapchain_set_gamma_ramp Ignoring flags 0x1.0039:fixme:d3d:wined3d_swapchain_set_gamma_ramp Ignoring flags 0x1.0039:fixme:d3d9:D3DPERF_GetStatus (void) : stub0039:fixme:ntdll:NtQueryInformationJobObject stub: 0x3c4 2 0x242dc00 64 (nil)0039:fixme:ntdll:NtQueryInformationJobObject stub: 0x3c4 9 0x242dc40 144 (nil)0086:fixme:heap:RtlSetHeapInformation (nil) 1 (nil) 0 stub0086:fixme:process:SetProcessDEPPolicy (3): stub0086:fixme:heap:RtlSetHeapInformation (nil) 1 (nil) 0 stub0086:fixme:nls:GetThreadPreferredUILanguages 00000038, 0x35f674, (nil) 0x35f6700086:fixme:nls:get_dummy_preferred_ui_language (0x38 0x35f674 (nil) 0x35f670) returning a dummy value (current locale)0086:fixme:nls:GetThreadPreferredUILanguages 00000038, 0x35f674, 0x2b0ab90 0x35f6700086:fixme:nls:get_dummy_preferred_ui_language (0x38 0x35f674 0x2b0ab90 0x35f670) returning a dummy value (current locale)0086:fixme:winsock:WSALookupServiceBeginW (0x35f6e0 0x00000ff0 0x35f728) Stub!0086:fixme:iphlpapi:NotifyAddrChange (Handle 0x35f5b8, overlapped 0x2b12d08): stub0086:fixme:win:RegisterDeviceNotificationW (hwnd=0x2008a, filter=0x35f798,flags=0x00000000) returns a fake device notification handle!0086:fixme:win:RegisterDeviceNotificationW (hwnd=0x2008a, filter=0x35f798,flags=0x00000000) returns a fake device notification handle!008e:fixme:esync:esync_wait_objects Can't wait on esync and server objects at the same time!0039:fixme:win:FlashWindowEx 0x242f670 - semi-stub0095:fixme:ntdll:EtwRegisterTraceGuidsW (0x495320, 0x24ef248, {3dada31d-19ef-4dc1-b345-037927193422}, 1, 0x24a4f04, (null), (null), 0x24ef260): stub0095:fixme:ntdll:EtwRegisterTraceGuidsW register trace class {00000000-0000-0000-0000-000000000000}0086:fixme:winsock:WSALookupServiceBeginW (0x35dbf0 0x00000ff0 0x35dc38) Stub!009d:fixme:heap:RtlSetHeapInformation (nil) 1 (nil) 0 stub009d:fixme:process:SetProcessDEPPolicy (3): stub009d:fixme:heap:RtlSetHeapInformation (nil) 1 (nil) 0 stub009d:fixme:ntdll:EtwRegisterTraceGuidsW (0x495320, 0x24ef248, {3dada31d-19ef-4dc1-b345-037927193422}, 1, 0x24a4f04, (null), (null), 0x24ef260): stub009d:fixme:ntdll:EtwRegisterTraceGuidsW register trace class {00000000-0000-0000-0000-000000000000}009d:fixme:gdi:GdiInitializeLanguagePack stub009b:fixme:ntdll:NtLockFile I/O completion on lock not implemented yet0097:fixme:winsock:WSALookupServiceBeginW (0x3eff564 0x00000ff0 0x3eff5ac) Stub!0097:fixme:winsock:WSALookupServiceBeginW (0x3eff564 0x00000ff0 0x3eff5ac) Stub!0039:fixme:keyboard:X11DRV_LoadKeyboardLayout L"00000409", 0000: semi-stub! Returning default layout.0086:fixme:winsock:WSALookupServiceBeginW (0x35dbf0 0x00000ff0 0x35dc38) Stub!009d:fixme:ntdll:EtwUnregisterTraceGuids deadbeef: stub00b5:fixme:heap:RtlSetHeapInformation (nil) 1 (nil) 0 stub00b5:fixme:process:SetProcessDEPPolicy (3): stub00b5:fixme:heap:RtlSetHeapInformation (nil) 1 (nil) 0 stub00b5:fixme:ntdll:EtwRegisterTraceGuidsW (0x495320, 0x24ef248, {3dada31d-19ef-4dc1-b345-037927193422}, 1, 0x24a4f04, (null), (null), 0x24ef260): stub00b5:fixme:ntdll:EtwRegisterTraceGuidsW register trace class {00000000-0000-0000-0000-000000000000}00b5:fixme:gdi:GdiInitializeLanguagePack stub0039:fixme:win:FlashWindowEx 0x242f7c0 - semi-stubAnd a couple loading screens if that helps.

System specs:CPU: AMD Sempron 145 single core, 2000.000 MHz, 1024 KB L2 cacheRAM: 4Gb DDR2GPU: Nvidia GTX 8600, 512 MB, 540 MHzOS: xubuntu 18.04 lts x64Wine 3.0 (might have to update that)

Using the virtual desktop option and these arguments in user_run:

./GW2.exe $@ -maploadinfo -dx9single -image

And just for reference, it did work "ok" under windows despite being far, FAR below minimum requirements. I'd get 10-20 fps, some assets refusing to load after a few hours, crashes, etc but playable. I am getting an upgrade some day in the future but for now I'm content with learning to get it working and I reckon I need a little help '^^.

Tanks for taking your time to make this package! :D

Link to comment
Share on other sites

@"El Naso.1580" said:Hi! first time Linux user here, just moved over from windows 7 32bit to xubuntu 18.04 64bit 3 days ago (and loving it). Decided to try and see if I could get Gw2 running and came across this thread. Installed your package but was missing some libraries, wich I managed to fix by installing wine via apt (not sure if the order of operations borked anything here). Anyway on to the problem I'm currently experiencing: play.sh crashes after clicking play on the launcher (launcher works perfectly fine) and debug.sh gets me into the game but it tanks to 3-4 fps on character selection and several seconds per frame in-game. So, the game techniclly works! I got at least that far :P

Here's a debug dump:

000b:fixme:winediag:start_process Wine Staging 3.15 is a testing version containing experimental patches.000b:fixme:winediag:start_process Please mention your exact version when filing bug reports on winehq.org.0009:fixme:heap:RtlSetHeapInformation 0x30000 0 0x25fd00 4 stub0009:fixme:heap:RtlSetHeapInformation 0x380000 0 0x25fce0 4 stub0009:fixme:heap:RtlSetHeapInformation 0x380000 1 (nil) 0 stub002f:fixme:ver:GetCurrentPackageId (0xf6fdd0 (nil)): stub002e:fixme:ver:GetCurrentPackageId (0xe5fdd0 (nil)): stub002e:fixme:thread:SetThreadStackGuarantee (0xe5fdd0): stub002d:fixme:ver:GetCurrentPackageId (0xd4fdd0 (nil)): stub0009:err:winediag:wined3d_dll_init Setting multithreaded command stream to 0x1.0009:err:winediag:wined3d_dll_init The GLSL shader backend has been disabled. You get to keep all the pieces if it breaks.0009:err:winediag:wined3d_dll_init Setting multithreaded command stream to 0x1.0009:err:winediag:wined3d_dll_init The GLSL shader backend has been disabled. You get to keep all the pieces if it breaks.0030:fixme:d3d_perf:create_buffer_heap Not using PBA, ARB_buffer_storage unsupported.0009:fixme:gameux:GameExplorerImpl_VerifyAccess (0x13715d0, L"C:\GW2\GW2.exe", 0x25f170)0039:fixme:msctf:ThreadMgrSource_AdviseSink (0x14ba340) Unhandled Sink: {ea1ea136-19df-11d7-a6d2-00065b84435c}0039:fixme:imm:ImmDisableTextFrameService Stub0039:fixme:d3d9:D3DPERF_GetStatus (void) : stub0039:fixme:ntdll:NtQueryInformationJobObject stub: 0x210 2 0x242dbb0 64 (nil)0039:fixme:ntdll:NtQueryInformationJobObject stub: 0x210 9 0x242dbf0 144 (nil)0040:fixme:heap:RtlSetHeapInformation (nil) 1 (nil) 0 stub0040:fixme:process:SetProcessDEPPolicy (3): stub0040:fixme:heap:RtlSetHeapInformation (nil) 1 (nil) 0 stub0040:fixme:nls:GetThreadPreferredUILanguages 00000038, 0x35f674, (nil) 0x35f6700040:fixme:nls:get_dummy_preferred_ui_language (0x38 0x35f674 (nil) 0x35f670) returning a dummy value (current locale)0040:fixme:nls:GetThreadPreferredUILanguages 00000038, 0x35f674, 0x2b0ab90 0x35f6700040:fixme:nls:get_dummy_preferred_ui_language (0x38 0x35f674 0x2b0ab90 0x35f670) returning a dummy value (current locale)0040:fixme:winsock:WSALookupServiceBeginW (0x35f6e0 0x00000ff0 0x35f728) Stub!0040:fixme:iphlpapi:NotifyAddrChange (Handle 0x35f5b8, overlapped 0x2b12d08): stub0048:fixme:esync:
esync_wait_objects Can't wait on esync and server objects at the same time!0040:fixme:win:RegisterDeviceNotificationW (hwnd=0x1008a, filter=0x35f798,flags=0x00000000) returns a fake device notification handle!0040:fixme:win:RegisterDeviceNotificationW (hwnd=0x1008a, filter=0x35f798,flags=0x00000000) returns a fake device notification handle!0050:fixme:ntdll:EtwRegisterTraceGuidsW (0x495320, 0x24ef248, {3dada31d-19ef-4dc1-b345-037927193422}, 1, 0x24a4f04, (null), (null), 0x24ef260): stub0050:fixme:ntdll:EtwRegisterTraceGuidsW register trace class {00000000-0000-0000-0000-000000000000}0040:fixme:winsock:WSALookupServiceBeginW (0x35dbf0 0x00000ff0 0x35dc38) Stub!0058:fixme:heap:RtlSetHeapInformation (nil) 1 (nil) 0 stub0058:fixme:process:SetProcessDEPPolicy (3): stub0058:fixme:heap:RtlSetHeapInformation (nil) 1 (nil) 0 stub0058:fixme:ntdll:EtwRegisterTraceGuidsW (0x495320, 0x24ef248, {3dada31d-19ef-4dc1-b345-037927193422}, 1, 0x24a4f04, (null), (null), 0x24ef260): stub0058:fixme:ntdll:EtwRegisterTraceGuidsW register trace class {00000000-0000-0000-0000-000000000000}0058:fixme:gdi:GdiInitializeLanguagePack stub0052:fixme:winsock:WSALookupServiceBeginW (0x3eff564 0x00000ff0 0x3eff5ac) Stub!0056:fixme:ntdll:NtLockFile I/O completion on lock not implemented yet0052:fixme:winsock:WSALookupServiceBeginW (0x3eff564 0x00000ff0 0x3eff5ac) Stub!0040:fixme:win:UnregisterDeviceNotification (handle=0xcafeaffe), STUB!0040:fixme:win:UnregisterDeviceNotification (handle=0xcafeaffe), STUB!0040:fixme:iphlpapi:CancelIPChangeNotify (overlapped 0x2b12d08): stub0040:fixme:ntdll:EtwUnregisterTraceGuids deadbeef: stub0039:fixme:wbemprox:wbem_services_CreateInstanceEnum unsupported flags 0x000000300039:fixme:wbemprox:enum_class_object_Next timeout not supported0039:fixme:ddraw:ddraw7_Initialize Ignoring guid {aeb2cdd4-6e41-43ea-941c-8361cc760781}.0077:fixme:d3d_perf:create_buffer_heap Not using PBA, ARB_buffer_storage unsupported.0039:err:winediag:MIDIMAP_drvOpen No software synthesizer midi port found, Midi sound output probably won't work.0039:fixme:d3d:debug_d3dformat Unrecognized 0x434f5441 (as fourcc: ATOC) WINED3DFORMAT!0039:fixme:d3d:wined3d_get_format Can't find format unrecognized (0x434f5441) in the format lookup table.0039:fixme:msctf:ThreadMgrSource_AdviseSink (0x14ba340) Unhandled Sink: {ea1ea136-19df-11d7-a6d2-00065b84435c}0039:fixme:imm:ImmDisableTextFrameService Stub0039:fixme:wtsapi:WTSRegisterSessionNotification Stub 0x6006a 0x00000000007c:fixme:d3d_perf:create_buffer_heap Not using PBA, ARB_buffer_storage unsupported.007c:fixme:d3d_perf:create_buffer_heap Not using PBA, ARB_buffer_storage unsupported.007f:fixme:avrt:AvSetMmThreadCharacteristicsW (L"Audio",0x742fd78): stub007c:fixme:d3d_perf:create_buffer_heap Not using PBA, ARB_buffer_storage unsupported.0039:fixme:d3d:wined3d_swapchain_set_gamma_ramp Ignoring flags 0x1.0039:fixme:d3d:wined3d_swapchain_set_gamma_ramp Ignoring flags 0x1.0039:fixme:d3d9:D3DPERF_GetStatus (void) : stub0039:fixme:ntdll:NtQueryInformationJobObject stub: 0x3c4 2 0x242dc00 64 (nil)0039:fixme:ntdll:NtQueryInformationJobObject stub: 0x3c4 9 0x242dc40 144 (nil)0086:fixme:heap:RtlSetHeapInformation (nil) 1 (nil) 0 stub0086:fixme:process:SetProcessDEPPolicy (3): stub0086:fixme:heap:RtlSetHeapInformation (nil) 1 (nil) 0 stub0086:fixme:nls:GetThreadPreferredUILanguages 00000038, 0x35f674, (nil) 0x35f6700086:fixme:nls:get_dummy_preferred_ui_language (0x38 0x35f674 (nil) 0x35f670) returning a dummy value (current locale)0086:fixme:nls:GetThreadPreferredUILanguages 00000038, 0x35f674, 0x2b0ab90 0x35f6700086:fixme:nls:get_dummy_preferred_ui_language (0x38 0x35f674 0x2b0ab90 0x35f670) returning a dummy value (current locale)0086:fixme:winsock:WSALookupServiceBeginW (0x35f6e0 0x00000ff0 0x35f728) Stub!0086:fixme:iphlpapi:NotifyAddrChange (Handle 0x35f5b8, overlapped 0x2b12d08): stub0086:fixme:win:RegisterDeviceNotificationW (hwnd=0x2008a, filter=0x35f798,flags=0x00000000) returns a fake device notification handle!0086:fixme:win:RegisterDeviceNotificationW (hwnd=0x2008a, filter=0x35f798,flags=0x00000000) returns a fake device notification handle!008e:fixme:esync:
esync_wait_objects Can't wait on esync and server objects at the same time!0039:fixme:win:FlashWindowEx 0x242f670 - semi-stub0095:fixme:ntdll:EtwRegisterTraceGuidsW (0x495320, 0x24ef248, {3dada31d-19ef-4dc1-b345-037927193422}, 1, 0x24a4f04, (null), (null), 0x24ef260): stub0095:fixme:ntdll:EtwRegisterTraceGuidsW register trace class {00000000-0000-0000-0000-000000000000}0086:fixme:winsock:WSALookupServiceBeginW (0x35dbf0 0x00000ff0 0x35dc38) Stub!009d:fixme:heap:RtlSetHeapInformation (nil) 1 (nil) 0 stub009d:fixme:process:SetProcessDEPPolicy (3): stub009d:fixme:heap:RtlSetHeapInformation (nil) 1 (nil) 0 stub009d:fixme:ntdll:EtwRegisterTraceGuidsW (0x495320, 0x24ef248, {3dada31d-19ef-4dc1-b345-037927193422}, 1, 0x24a4f04, (null), (null), 0x24ef260): stub009d:fixme:ntdll:EtwRegisterTraceGuidsW register trace class {00000000-0000-0000-0000-000000000000}009d:fixme:gdi:GdiInitializeLanguagePack stub009b:fixme:ntdll:NtLockFile I/O completion on lock not implemented yet0097:fixme:winsock:WSALookupServiceBeginW (0x3eff564 0x00000ff0 0x3eff5ac) Stub!0097:fixme:winsock:WSALookupServiceBeginW (0x3eff564 0x00000ff0 0x3eff5ac) Stub!0039:fixme:keyboard:X11DRV_LoadKeyboardLayout L"00000409", 0000: semi-stub! Returning default layout.0086:fixme:winsock:WSALookupServiceBeginW (0x35dbf0 0x00000ff0 0x35dc38) Stub!009d:fixme:ntdll:EtwUnregisterTraceGuids deadbeef: stub00b5:fixme:heap:RtlSetHeapInformation (nil) 1 (nil) 0 stub00b5:fixme:process:SetProcessDEPPolicy (3): stub00b5:fixme:heap:RtlSetHeapInformation (nil) 1 (nil) 0 stub00b5:fixme:ntdll:EtwRegisterTraceGuidsW (0x495320, 0x24ef248, {3dada31d-19ef-4dc1-b345-037927193422}, 1, 0x24a4f04, (null), (null), 0x24ef260): stub00b5:fixme:ntdll:EtwRegisterTraceGuidsW register trace class {00000000-0000-0000-0000-000000000000}00b5:fixme:gdi:GdiInitializeLanguagePack stub0039:fixme:win:FlashWindowEx 0x242f7c0 - semi-stubAnd
if that helps.

System specs:CPU: AMD Sempron 145 single core, 2000.000 MHz, 1024 KB L2 cacheRAM: 4Gb DDR2GPU: Nvidia GTX 8600, 512 MB, 540 MHzOS: xubuntu 18.04 lts x64Wine 3.0 (might have to update that)

Using the virtual desktop option and these arguments in user_run:

./GW2.exe $@ -maploadinfo -dx9single -image

And just for reference, it did work "ok" under windows despite being far, FAR below minimum requirements. I'd get 10-20 fps, some assets refusing to load after a few hours, crashes, etc but playable. I am getting an upgrade some day in the future but for now I'm content with learning to get it working and I reckon I need a little help '^^.

Tanks for taking your time to make this package! :D

Hi, installing Wine from the repo was a good idea because it installs the required dependancies, however be aware that the version from the repo is very basic and the game performs poorly as opposed to the custom Wine present in my package, if you wish you can safely uninstall the one from the repo (while still keeping the other dependencies that got installed with it).

If your game is crashing while trying to load a map right after character select, in that case go back to the first page of this thread (where you downloaded the link from) and repeat the steps as explained in the first part of the Troubleshooting section. More Specifically this part: https://i.imgur.com/Qvl9iCZ.jpg

The reason the game crashes is because the custom version of Wine includes a set of patches called "eSync" which increase the game's performance dramatically and in order to function correctly there is a setting you need to change. You're on the right track and most likely you're missing just the last piece of the puzzle. One last thing, I noticed you mentioned the "-dx9single" command, that used to boost performance but nowadays it actually makes the game slower, I would advise against using it. :-)

Let me know if you get stuck, I'll try my best to help.

Link to comment
Share on other sites

Ah I see! I'll continue to tinker with it. Btw the game doesen't crash crashes with play.sh but launches flawlessly with debug.sh, it's only terribly slow. Can login, walk around and... that's about it for that level of responsiveness.

Will post again when I get to tinker with this some more. Thanks again :D

Link to comment
Share on other sites

@"El Naso.1580" said:Ah I see! I'll continue to tinker with it. Btw the game doesen't crash crashes with play.sh but launches flawlessly with debug.sh, it's only terribly slow. Can login, walk around and... that's about it for that level of responsiveness.

Will post again when I get to tinker with this some more. Thanks again :D

The debug script allows Wine to print any errors (only visible in terminal) and GW2 happens to print A LOT and constantly while it runs, as such the CPU is wasting resources on that part alone and this reduces performance by as much as 20fps in certain areas. The play.sh script on the other hand tells Wine to shut up and runs the game unhindered.

Hmm you mentioned "terribly slow", can you give me more details about your hardware setup? CPU and GPU models would be a good start.

Link to comment
Share on other sites

@"YaoMitachi.2397" said:I've had this guild for Linux users for a while that I only recently started promoting, Linux Gamers Group [LGG]. Please check it out!https://gw2.guildex.org/view-guild/17534

FxftQRp.png

I still got 4 more Guild slots, if you could send me an invite on my secondary account (which is also my main) that would be great, my username is linuxgamer.3067 (it's a F2P account so you'll have to add me to friends list for me to be able to whisper back).

Link to comment
Share on other sites

@El Naso.1580 said:CPU: AMD Sempron 145 single core, 2000.000 MHz, 1024 KB L2 cacheGPU: Nvidia GTX 8600, 512 MB, 540 MHz

I wasn't joking when I said I was playing with specs way below minimum requirements. This stuff is easily 18 years old xD

The 8600 may just let you play on everything set to low details, but the CPU is the real killer here, a single core without even multi threading just won't do for this game. To put things in perspective, if I limit the game to a single core on my Ryzen 1700X it performs like a slideshow too and that's because the game is already CPU bound as it is and it's trying to pass everything through 1 pipe (core) .

For comparison, if I step up to 2 cores, it already becomes quite playable at about 25 fps. Sorry for having to come bearing the bad news.

Link to comment
Share on other sites

Update: play.sh works now! progress! Performance is still bad (no surprises there). Wondering if I can increase the process priority and if that would help. Back in windows GW2 would take up all the resources slowing down all other applications, but now I seem to have no such problems so I'm wondering if Gw2 is being resource capped by the system atm. It might be a lost cause to try to squeeze in more fps with this old setup but for tinkering's sake I'm compelled to try '^^

EDIT: checking top, GW2 seems to be using 93-95% of the cpu.EDIT2: reniced to -19, no changes.

Welp, It was an interesting project.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...