Jump to content
  • Sign Up

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


Recommended Posts

I just installed GW2 on my machine (Kubuntu 18.04.2 LTS - i7 3770k, GeForce 1080Ti) using Lutris 0.5.0.1, and experience pretty poor performance at 1080p resolution. ~30fps with dips to the low 20fps in Lions Arch. Performing fast camera turns usually results in extreme stutters with dips to single digit fps values. Around larger events (i.e. World Bosses) I see 8 - 20 fps with an average around 15fps. Neither the CPU nor the GPU are fully utilized though. I also tested some of the suggested performance tweaks like disabling __GL_THREADED_OPTIMIZATIONS or GLSL. None of these changes affected the performance beyond margin of error. Changes to the in-game visual settings have very little impact as well.

Does anyone have an idea what causes the performance issues in my case? Judging from what others reported here, my setup should perform way better than it does currently.

Link to comment
Share on other sites

I have Dabbled in Linux I would really like to play on Linux rather than windows but I would probably use Ubuntu Sonic Beaver or later for my Distro. few Questions is that if I use POL would that be best for getting the updated Wine Version? Last time I tried GW2 with Linux POL or otherwise it was very sluggish with my i5 and 1060 GTX I would really love to make the switch but will most likely have to read this entire thread and try to digest it LOL. Kudo's to the OP for posting a Linux gaming thread, it really does help people who don't want to use Windows! thanks!

Link to comment
Share on other sites

@norritt.7691 said:I just installed GW2 on my machine (Kubuntu 18.04.2 LTS - i7 3770k, GeForce 1080Ti) using Lutris 0.5.0.1, and experience pretty poor performance at 1080p resolution. ~30fps with dips to the low 20fps in Lions Arch. Performing fast camera turns usually results in extreme stutters with dips to single digit fps values. Around larger events (i.e. World Bosses) I see 8 - 20 fps with an average around 15fps. Neither the CPU nor the GPU are fully utilized though. I also tested some of the suggested performance tweaks like disabling __GL_THREADED_OPTIMIZATIONS or GLSL. None of these changes affected the performance beyond margin of error. Changes to the in-game visual settings have very little impact as well.

Does anyone have an idea what causes the performance issues in my case? Judging from what others reported here, my setup should perform way better than it does currently.

The heavy drop rates when turning the camera sounds like a lack of shader cache. Did you check the first post on how set up your Nvidia drivers? (note that the Glshader cache directory isn't automatically created if it doesn't exist).

It's a good idea to get the bundled package from op and see how that behaves, afterwards you can work on tuning your distro's offering to match performance.

Link to comment
Share on other sites

@norritt.7691 said:Does anyone have an idea what causes the performance issues in my case? Judging from what others reported here, my setup should perform way better than it does currently.

The 3 settings - Shadows and Character Model Limit/Quality are what affects performance the most. The others not so much.

In LA I get about 35-40 fps on average, with 50+ in less populated areas such as the fractals portal. The stuttering usually happens the first time you enter a new area as it's still building the shader cache. For nvidia it is best to dedicate a cache folder per game.

As has already been suggested, download my package and see how it compares, I checked the Lutris script and the settings are very close to what I use.

@"BcWoot.2159" said:I have Dabbled in Linux I would really like to play on Linux rather than windows but I would probably use Ubuntu Sonic Beaver or later for my Distro. few Questions is that if I use POL would that be best for getting the updated Wine Version? Last time I tried GW2 with Linux POL or otherwise it was very sluggish with my i5 and 1060 GTX I would really love to make the switch but will most likely have to read this entire thread and try to digest it LOL. Kudo's to the OP for posting a Linux gaming thread, it really does help people who don't want to use Windows! thanks!

There's no need to read the entire thread :) , I tried to cover the important notes the community collected in the main post, that includes workarounds and common issues you might encounter on first time setup. Also the package is designed to be as portable as possible, most of the configuration and performance optimizations are done right out of the box. Should you try it and get stuck, run the game using the "debug.sh" file provided and post the terminal log here, I'll try my best to help you get it up and running.

Link to comment
Share on other sites

  • 2 weeks later...

Been a while since I last posted around here, a small update to break the ice. The 2 points below don't reflect what I'm working on but in the future it might help the game perform even better on Linux (SPOILERS: Nerdy language will be used).

1) Gallium Nine and Intel:

The good news is that the Gallium Nine (G9) project for almost native DX9 performance on Linux is now a standalone project, and I can add it to the current package in a much easier method than before. The second good news is that Intel have a new open source driver which will use Gallium3D, it's not quite ready yet but when that happens you can expect better performance when using IntelHD, this might prove helpful for laptops and low end systems.

2) DX9 to Vulkan might happen:

As some of you are probably aware, the "d912pxy" project which translates DX9 to DX12 doesn't presently work in Wine/Linux. All hope is not lost though, in recent times there's quite some interest in making this translation happen, both Wine's own developers (Codeweavers) and outside sources have been exploring possible options. Just today I spotted a new repo called "d9vk" from github user Joshua Ashton (link: https://github.com/Joshua-Ashton/d9vk) where he's trying to adapt DX9 to Vulkan using DXVK as a codebase.

Link to comment
Share on other sites

The install crashes complaining on:--> Crash <--Assertion: Failed to start Coherent host..followed by a bunch of mumbo-jumbo.

Meanwhile the debug script shows the following.

./debug.sh000b: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.0027:err:ntoskrnl:IoCreateDriver failed to insert driver L"\Driver\WineHID" in tree0027:err:ntoskrnl:IoCreateDriver failed to insert driver L"\Driver\WineHID" in tree0009: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.0009:fixme:heap:RtlSetHeapInformation 0x30000 0 0x25fd00 4 stub0009:fixme:heap:RtlSetHeapInformation 0x380000 0 0x25fce0 4 stub0009:fixme:heap:RtlSetHeapInformation 0x380000 1 (nil) 0 stub0031:fixme:ver:GetCurrentPackageId (0xc3fdd0 (nil)): stub0031:fixme:thread:SetThreadStackGuarantee (0xc3fdd0): stub0032:fixme:thread:SetThreadStackGuarantee (0xd5fdd0): stub0009:err:winediag:wined3d_dll_init Setting multithreaded command stream to 0x1.ATTENTION: default value of option vblank_mode overridden by environment.0009:err:winediag:wined3d_dll_init Setting multithreaded command stream to 0x1.0035:fixme:d3d_perf:wined3d_buffer_heap_create PBA: using GL_CLIENT_STORAGE_BIT quirk (mesa)0035:fixme:d3d_perf:wined3d_buffer_heap_create PBA: using GL_CLIENT_STORAGE_BIT quirk (mesa)0035:fixme:d3d:create_buffer_heap Initialized PBA (geo_heap_size: 536870912, cb_heap_size: 134217728, ub_align: 32)0009:fixme:gameux:GameExplorerImpl_VerifyAccess (0x1358030, L"C:\GW2\GW2.exe", 0x25f170)003f:fixme:msctf:ThreadMgrSource_AdviseSink (0x149fba0) Unhandled Sink: {ea1ea136-19df-11d7-a6d2-00065b84435c}003f:fixme:imm:ImmDisableTextFrameService Stub003f:fixme:d3d9:D3DPERF_GetStatus (void) : stub/lib/ld-linux.so.2: could not open003f:fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_PERFORMANCE_INFORMATION

Any clues ?

Link to comment
Share on other sites

@"turin.2468" said:The install crashes complaining on:--> Crash <--Assertion: Failed to start Coherent host..followed by a bunch of mumbo-jumbo.

Meanwhile the debug script shows the following.

./debug.sh000b: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.0027:err:ntoskrnl:IoCreateDriver failed to insert driver L"\Driver\WineHID" in tree0027:err:ntoskrnl:IoCreateDriver failed to insert driver L"\Driver\WineHID" in tree0009: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.0009:fixme:heap:RtlSetHeapInformation 0x30000 0 0x25fd00 4 stub0009:fixme:heap:RtlSetHeapInformation 0x380000 0 0x25fce0 4 stub0009:fixme:heap:RtlSetHeapInformation 0x380000 1 (nil) 0 stub0031:fixme:ver:GetCurrentPackageId (0xc3fdd0 (nil)): stub0031:fixme:thread:SetThreadStackGuarantee (0xc3fdd0): stub0032:fixme:thread:SetThreadStackGuarantee (0xd5fdd0): stub0009:err:winediag:wined3d_dll_init Setting multithreaded command stream to 0x1.ATTENTION: default value of option vblank_mode overridden by environment.0009:err:winediag:wined3d_dll_init Setting multithreaded command stream to 0x1.0035:fixme:d3d_perf:wined3d_buffer_heap_create PBA: using GL_CLIENT_STORAGE_BIT quirk (mesa)0035:fixme:d3d_perf:wined3d_buffer_heap_create PBA: using GL_CLIENT_STORAGE_BIT quirk (mesa)0035:fixme:d3d:create_buffer_heap Initialized PBA (geo_heap_size: 536870912, cb_heap_size: 134217728, ub_align: 32)0009:fixme:gameux:GameExplorerImpl_VerifyAccess (0x1358030, L"C:\GW2\GW2.exe", 0x25f170)003f:fixme:msctf:ThreadMgrSource_AdviseSink (0x149fba0) Unhandled Sink: {ea1ea136-19df-11d7-a6d2-00065b84435c}003f:fixme:imm:ImmDisableTextFrameService Stub003f:fixme:d3d9:D3DPERF_GetStatus (void) : stub/lib/ld-linux.so.2: could not open003f:fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_PERFORMANCE_INFORMATION

Any clues ?

Which distro are you running and which GPU type + brand?

Link to comment
Share on other sites

Hey there people,

so if've started playing GW2 again and directly started using this little helper here and it works great. However I've run into a problem with random fps drops. In high populated areas I can normally play with full settings with stable 60 fps, however randomly the fps drop down to around 6 to 8 for a random amount of time, sometimes a few seconds some times like half a minute. This can happen like every 10 minutes or only every hour. Starting the debug.sh I can see the following notice appearing like 100 of times on the screen:

007c:fixme:d3d:wined3d_debug_callback 0x55babe0: "Program undefined behavior warning: The current GL state uses a sampler (8) that has depth comparisons enabled, with a texture object (119) with a depth format, by a shader that samples it with a non-shadow sampler. This will result in undefined behavior".Also Found that this line appears when the fps drops stop010c:fixme:avrt:AvSetMmThreadCharacteristicsW (L"Audio",0x2e9fd78): stub

This message seems to appear the first time the game starts dropping fps, continues for some time and then it does not print the message anymore. What I've noticed as well is that the instances I actually have the fps drops, the cpu usage drops, sometimes down to only 20%. It is normally around 80% when running the game without lagging. Here an image I captured, the cpu usage drops is exactly when it laggs in game https://i.imgur.com/Qe6tnkv.png

Any ideas on this weird behavior? Not sure if the cpu usage drop and the debug message from the console have anything in common.

Looking forward to your input

Link to comment
Share on other sites

@"LifriBjorson.4160" said:Hey there people,

so if've started playing GW2 again and directly started using this little helper here and it works great. However I've run into a problem with random fps drops. In high populated areas I can normally play with full settings with stable 60 fps, however randomly the fps drop down to around 6 to 8 for a random amount of time, sometimes a few seconds some times like half a minute. This can happen like every 10 minutes or only every hour. Starting the debug.sh I can see the following notice appearing like 100 of times on the screen:

007c:fixme:d3d:wined3d_debug_callback 0x55babe0: "Program undefined behavior warning: The current GL state uses a sampler (8) that has depth comparisons enabled, with a texture object (119) with a depth format, by a shader that samples it with a non-shadow sampler. This will result in undefined behavior".Also Found that this line appears when the fps drops stop010c:fixme:avrt:AvSetMmThreadCharacteristicsW (L"Audio",0x2e9fd78): stub

This message seems to appear the first time the game starts dropping fps, continues for some time and then it does not print the message anymore. What I've noticed as well is that the instances I actually have the fps drops, the cpu usage drops, sometimes down to only 20%. It is normally around 80% when running the game without lagging. Here an image I captured, the cpu usage drops is exactly when it laggs in game https://i.imgur.com/Qe6tnkv.png

Any ideas on this weird behavior? Not sure if the cpu usage drop and the debug message from the console have anything in common.

Looking forward to your input

That GL error has been there for like forever, from my experience it has been mostly harmless, I'm not sure if it has any effect on performance but it's not something I can fix. Best bet would be to file a Wine bug report. As you pointed out the debug.sh script spams that message, just so you're aware, it should only be used to solve issues, playing the game with that script it reduces game performance by up to 20fps (if not more). The normal "play.sh" script disables the errors by default.

As for the second "avrt" error, I never encountered noticed that error (or the fps drops), the "Audio" part looks interesting. Can you try the game without the -nosound option and see if it helps? You can run that with "./play.sh -nosound".

Link to comment
Share on other sites

Interesting, even tho the problem is not gone completely, it happened only like 3 times within one hour and then aswell the framedrop period was only a few seconds.

Edit:I tried around more with the sound settings, ignoring the graphic settings completely. Again in a "fps drop phase", I lowered the sound quality settings from high to low and got an immediate fps boost.Is it possible that there might be a sound problem with my wine setup? Many sound emitters seem to be a problem. I'll try around more

Edit2:I've now read that the winepluse audio driver can cause problems on some setups. I'm by no means a wine expert, however maybe I could try and get another sounddriver to run on the gw2 wineprefix. No idea if that is possible

Edit3:Quote from the official wine wiki:Wine has official support for PulseAudio. The driver should work well, but there are some known issues with unusual audio buffer and latency settings. If you find you are having choppy or no audio with some applications, then check to ensure the PULSE_LATENCY_MSEC variable is unset, and that you're using default buffering values in /etc/pulse/daemon.conf. Certain audio devices, especially USB audio devices, can cause PulseAudio to use different latency and buffering settings, which can cause issues with Wine.I am actually using a headset that is connected to the computer by a usb soundcard. I'll try now and play around the the pulse daemon settings, maybe this issue is really on my system level and has nothing to do with the wine package and gw2

Link to comment
Share on other sites

@ladydemoriel.4658 said:hey all -- strange issue i encountered on my Linux Mint 18.3, Ryzen 7 (3200Mhz, 3.6 overclock). I updated to the latest Ryzen bios (version G) and -- while possibly unrelated -- i can no longer see a login screen for Guild Wars. Literally a blank image background with no form elements at all (buttons, form elements, etc). Very strange. Anyone ever encounter something like this before ?

Same here an now with auto login deprecated it seems to be a real issue.

Link to comment
Share on other sites

@bluedevil.2168 said:

@"ladydemoriel.4658" said:hey all -- strange issue i encountered on my Linux Mint 18.3, Ryzen 7 (3200Mhz, 3.6 overclock). I updated to the latest Ryzen bios (version G) and -- while possibly unrelated -- i can no longer see a login screen for Guild Wars. Literally a blank image background with no form elements at all (buttons, form elements, etc). Very strange. Anyone ever encounter something like this before ?

Same here an now with auto login deprecated it seems to be a real issue.

Is it something like in this picture?: https://i.imgur.com/HnrSd6C.png

If so try to install the 'libfreetype6:i386' (the i386 stands for the 32bit version) and if that doesn't fix it, set wine to use a Virtual Desktop. I covered these 2 possible solutions in the main post on 1st page.

Link to comment
Share on other sites

  • 3 weeks later...

Ordered a new laptop, Asus Vivo with a Raven Ridge APU, which is a Ryzen 5/Vega 8, and when it gets here later today, I'll be removing Windows and placing a Linux distro on it. Honestly, thanks to this, I will get a chance to finally do what I've wanted to do for a long time now, and that's play my favorite MMO on Linux. Thanks for this and I will post my results after everything is done!

EDIT:Gotta wait until Monday to get this done...sadly, the laptop I got was defective and I couldn't do anything at all. Turned on, but completely black screen. Replacement incoming. Will use Antergos as my OS, based on Arch, and see how well this works.

Link to comment
Share on other sites

Just today I was unable to start the game at all without the virtual desktop workaround. However, the default settings for this feature always prevented me from turning the camera all the way around, since the cursor would hit the edge of the virtual desktop. By changing the winecfg to: "Automatically capture mouse in full-screen windows", this fixed that issue.

Link to comment
Share on other sites

So, the laptop came in and installed GW2 via Lutris. Worked flawlessly after some issues of the desktop locking up during the update process. After two reboots, it just worked and the update finished. After I set the settings to auto, mostly low, it worked without any issue whatsoever. Now I have GW2 on the go. The Lutris installation actually links to this thread, so obviously, they are keeping an eye on this thread for information. Thanks for doing this, seriously!

Link to comment
Share on other sites

I did some preliminary testing of this patch(Which I've been playing with for a while), as well as the stock lutris config, lutris + tkgprotonified-4.1, and applying the d912pxy patch + DXVK. I'm going to play with d912pxy a little while longer, then do some more in-depth comparisons so the shader cache builds properly.If anyone new wants to see the state of linux GW2 on a mid-range machine

I'm well aware, now, after everything, that OBS borked while capturing htop :/ that's my fault really.
Link to comment
Share on other sites

instead of wine, you can port it to .NET Core, which is like aiming to be cross platform across all systems - windows, macos, linux (and probably more). and from the win32/64.exe client -> .NET Core -> towards other platforms.

since the windows client uses W32API, and .NET Core is a layer that can access W32API, then it should be easy to plug them together. and for other systems, it should be smooth sailing coz it's cross platform, making .NET Core a "bridge" and you don't even have to know the intrinsics of the other systems coz it's taken care of by .NET Core's portability.

But yeah, the lag can probably happen.

but you have to wait for the Framework to "mature" coz the important features like Forms, C/C++, etc. usage are not yet implemented. they had a preview just weeks ago and the important features will be out on version 3 release.

and this should help, for the directx

http://sharpdx.org/

Link to comment
Share on other sites

@"omegajimes.2471" said:I did some preliminary testing of this patch(Which I've been playing with for a while), as well as the stock lutris config, lutris + tkgprotonified-4.1, and applying the d912pxy patch + DXVK. I'm going to play with d912pxy a little while longer, then do some more in-depth comparisons so the shader cache builds properly.If anyone new wants to see the state of linux GW2 on a mid-range machineI'm well aware, now, after everything, that OBS borked while capturing htop :/ that's my fault really.

Hmm, that low fps and stutter is curious. It would be optimal if you dedicate a set of cores/threads to the game and others to OBS, leaving the system to manage it automatically isn't optimal and hurts game performance. I gave it a shot with SimpleScreenRecorder and got similar results.

To avoid such stutters and performance hits, run the game with "taskset -c 0-5" and OBS with "taskset -c 6-11", that way the 2 programs won't interfere with eachother's performance and will use half the cpu each.

EDIT:

Here's something else to show what's the state of playing GW2 on Linux (the setup is from dual monitors at 1920x1080 resolution):

I4EFvES.jpg

Bonus - It doesn't end there though, there is a DX9 to Vulkan project in the works called D9VK (homepage: https://github.com/Joshua-Ashton/d9vk), the game doesn't quite run with it just yet, it launches but crashes due to unimplemented DX9 features. Now that's something I'm really looking forward to implement in the package :smile:

Link to comment
Share on other sites

  • 2 weeks later...

Hey, ArmoredVehicle. Thanks for all your work on this script - it has allowed me to kick windows for good!

You might be interested to know that work on d9vk seems to be progressing veeeeeery quickly. Flickering issue and other missing sprites and animations were fixed in the wip-shader builds, and then merged back into master. The only issue I have with it now is pink blobs instead of foliage on the ground.

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...