Jump to content
  • Sign Up

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


Recommended Posts

@kalel.6129 said:

@"ArmoredVehicle.2849" said:Open a terminal and type these 2 commands please:

ulimit -Hnulimit -Sn

Both of these commands will print a number, can you please post it here or a screenshot of the terminal itself?

Sorry on delayed response. Here is my output.:~/Desktop/GW2$ ulimit -Hn4096:~/Desktop/GW2$ ulimit -Sn1024Thanks!

Update:I did a quick Google on the error and why you were asking ulimit -Hn. That lead me to reading https://github.com/zfigura/wine/blob/esync/README.esync and the output from ulimit -Hn should match the 1048576 we are putting. Mine clearly wasn't. No one mentioned it, so I had left it thinking maybe it was different, but I had my user.conf and system.conf lines still as #DefaultLimitNOFILE=1048576. I do now see @ThunderBiggi.4651 did show the difference (remove the # so it isn't commented out) in his example above (kicking myself). I rebooted and now the ulimit -Hn is reporting correct number. Just about to try GW2...Edit I do see that @ArmoredVehicle.2849 had his example on first page removing the '#'. This was simply another oversight on my end for not reading carefully.

Update 2:That fixed it!! I was able to toggle between multiple characters and switch zones with no issues. I left the defaults you've set for in game settings and it's glorious. In LA I stayed in the 20's for fps. VERY much appreciated!!!! This feels like a game changer, I can see details of characters and stuff now :) So to everyone else, make sure you remove the '#' from the lines when you modify them so they don't remain commented out. I'm running Ubuntu 18.04.

Link to post
Share on other sites
  • Replies 1.2k
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

Regards GW2 + arcdps crashing the game.   I build wine tkg with all default except (setting _staging_version="v6.8"). So far 2 days working without crashes.

well, its still early days, but there has been some work started. i typed a long message, but didn't want to spam it here. so, i put it in the readme of the repo. https://github.com/coderedart/jokolay

Maybe we'll finally have some luck trying to make taco work properly on Linux without workarounds. It seems now is open-source:   http://www.gw2taco.com/2021/04/gw2-taco-is-going-open-source

@ArmoredVehicle.2849 said:

@TamX.1870 said:Hi, and thanks for the patches! Anyways, this newest one causes too much instability in my system, so I reverted back to the previous one. If you are trying to install GW2 at first time to Linux + Wine, I'd still recommend fresh install with staging wine. Also, the previous patch in this thread was pretty stable.

May I ask what kind of instabilities are you getting?

Of course. I can try again this evening, but last night (1) the new package first crashed to limit of open files, which I fixed based on the info here, and (2) after reboot it still crashed to an error I can't remember atm. I reverted the changes I made and went back using previous one. It might not be optimal, but for me it is OK if it can run PvP and WvW in minimal (graphics) settings. If you want, I can try the patch again this evening?

EDIT: I'm running GW2 on Linux Mint 18.3, if that matters. It's Ubuntu-based distribution.

Link to post
Share on other sites

@TamX.1870 said:

@TamX.1870 said:Hi, and thanks for the patches! Anyways, this newest one causes too much instability in my system, so I reverted back to the previous one. If you are trying to install GW2 at first time to Linux + Wine, I'd still recommend fresh install with staging wine. Also, the previous patch in this thread was pretty stable.

May I ask what kind of instabilities are you getting?

Of course. I can try again this evening, but last night (1) the new package first crashed to limit of open files, which I fixed based on the info here, and (2) after reboot it still crashed to an error I can't remember atm. I reverted the changes I made and went back using previous one. It might not be optimal, but for me it is OK if it can run PvP and WvW in minimal (graphics) settings. If you want, I can try the patch again this evening?

EDIT: I'm running GW2 on Linux Mint 18.3, if that matters. It's Ubuntu-based distribution.

I had the same issue. If you are running on a newer Linux distro that uses SystemD, then SystemD is managing the open files limit and /etc/security/limits.conf is ignored. I'll take a look at my configuration tonight and post what I have setup (I'm using Pop!_OS 18.04), because you'll also have to setup your system to allow your user to change process priority as well.

Link to post
Share on other sites

@kalel.6129 said:

@ArmoredVehicle.2849 said:Open a terminal and type these 2 commands please:

ulimit -Hnulimit -Sn

Both of these commands will print a number, can you please post it here or a screenshot of the terminal itself?

Sorry on delayed response. Here is my output.:~/Desktop/GW2$ ulimit -Hn4096:~/Desktop/GW2$ ulimit -Sn1024Thanks!

Update:I did a quick Google on the error and why you were asking ulimit -Hn. That lead me to reading
and the output from ulimit -Hn should match the 1048576 we are putting. Mine clearly wasn't. No one mentioned it, so I had left it thinking maybe it was different, but I had my user.conf and system.conf lines still as #DefaultLimitNOFILE=1048576. I do now see @ThunderBiggi.4651 did show the difference (remove the # so it isn't commented out) in his example above (kicking myself). I rebooted and now the ulimit -Hn is reporting correct number. Just about to try GW2...

Update 2:That fixed it!! I was able to toggle between multiple characters and switch zones with no issues. I left the defaults you've set for in game settings and it's glorious. In LA I stayed in the 20's for fps. VERY much appreciated!!!! This feels like a game changer, I can see details of characters and stuff now :) So to everyone else, make sure you remove the '#' from the lines when you modify them so they don't remain commented out. I'm running Ubuntu 18.04.

Glad you nailed down the issue, the # in unix is heavily used to enable/disable functions and to add notes without disrupting the program/scripts. Also please note that GW2 isn't the only game that produces the "too many open files" issue. I first encountered it a few years ago with the game Wasteland 2.

Historically speaking, the default open file limit was fine a few years ago, times have changed though and some programs are able to hit that limit rather easily.

@TamX.1870 said:

@TamX.1870 said:Hi, and thanks for the patches! Anyways, this newest one causes too much instability in my system, so I reverted back to the previous one. If you are trying to install GW2 at first time to Linux + Wine, I'd still recommend fresh install with staging wine. Also, the previous patch in this thread was pretty stable.

May I ask what kind of instabilities are you getting?

Of course. I can try again this evening, but last night (1) the new package first crashed to limit of open files, which I fixed based on the info here, and (2) after reboot it still crashed to an error I can't remember atm. I reverted the changes I made and went back using previous one. It might not be optimal, but for me it is OK if it can run PvP and WvW in minimal (graphics) settings. If you want, I can try the patch again this evening?

EDIT: I'm running GW2 on Linux Mint 18.3, if that matters. It's Ubuntu-based distribution.

Regarding issue (1) I imagine quite a number of people have to up that file limit, especially if you use Wine for just a handful of games. I'm more interested in fault (2).

Also please note that running the game through the 'debug.sh' file will incur a performance hit due to the infinite amount of terminal outputs.

Link to post
Share on other sites

@loseridoit.2756 said:@jbrother.1340

No, those flags are meant to enable the amdgpu kernel driver. Amdgpu and Radeon uses the same shader path for both opengl and gallium nine.Amdgpu has the ANV vulkan driver.

You should post logs printed on the console. The marketplace worked when I last remembered it.I do not feel like downloading the game and logging in anymore to test.

use stderr redirect to a file. Append this line to the gw2 console.

2> gw2_error.txt

Either way, gallium nine devs would probably ask you to run with full debug to figure out what is wrong.

@"VAHNeunzehnsechundsiebzig.3618"

D3d9 wine gentoo is gallium nine. You are using a native d3d9 driver on Linux. Of course, performance will be good.https://packages.gentoo.org/useflags/d3d9

So I have gallium nine working fine for the most part. It is more stable and less stuttery than the package here (which also does run really good overall as well) however I am still having issues with the black lion store and trading post. I get constant

net::ERR_ABORTED

I have read what I could find online about this and while it seems like a network issue if I use armor's package here I have no issue at all in any of them all load.

I have full reinstalled wine gallium and all that and deleted and started over with GW2 and let WINE setup again but with same response. I have tried various things in my network as well but that seems like the less likely culprit as it works in POL or in the Armor package.

Any thoughts?

PS:

not sure if relevant. When I am on the log in screen I cannot actually click any of the buttons are than play. The "forums" and other buttons on there do nothing if clicked.

Link to post
Share on other sites

Using Lutris with Wine 3.15 esync runner, which has PBA built in. After specifically enabling NVIDIA Threaded Optimisations and ESYNC with environment variables, I'm getting over 30 FPS in most locations on the highest possible settings on my 2011 computer, although I keep Character Model Limit at the lowest to optimise my visuals, and sometimes I need to drop from Supersample to Native/Subsample in heavy combat situations, but I don't have to touch any other settings while I used to have to drop them all to "Best performance".

CPU usage is abut 350-400% (four cores) on my Phenom II 1100T. It could be better, but its not bad. Overall performance is at least 10x what it was when I first started playing GW2 with Wine 0.9.x (?) in 2012 on the same computer.

NVIDIA users: Make sure you assign a shader cache to the game. The NVIDIA proprietary drivers have a hard limit of 128 MB for the global shader cache and GW2 blows through this easily all on its own..it was 112 MB after just a single run of the game.

Link to post
Share on other sites

@"Hannelore.8153" said:Using Lutris with Wine 3.15 esync runner, which has PBA built in. After specifically enabling NVIDIA Threaded Optimisations and ESYNC with environment variables, I'm getting over 30 FPS in most locations on the highest possible settings on my 2011 computer, although I keep Character Model Limit at the lowest to optimise my visuals, and sometimes I need to drop from Supersample to Native/Subsample in heavy combat situations, but I don't have to touch any other settings while I used to have to drop them all to "Best performance".

CPU usage is abut 350-400% (four cores) on my Phenom II 1100T. It could be better, but its not bad. Overall performance is at least 10x what it was when I first started playing GW2 with Wine 0.9.x (?) in 2012 on the same computer.

NVIDIA users: Make sure you assign a shader cache to the game. The NVIDIA proprietary drivers have a hard limit of 128 MB for the global shader cache and GW2 blows through this easily all on its own..it was 112 MB after just a single run of the game.

One of the Nvidia driver staff has recently mentioned that you can use __GL_SHADER_DISK_CACHE_SKIP_CLEANUP=1 which will disable the 128MB limit and it will cache as much shader data as your HDD can hold.

I don't know for how long this env variable has been present in the drivers but it definitely comes handy for a number of games, Witcher 3, Overwatch and GTA V can easily top 128MB. I am currently re-uploading the Nvidia version of my package to have this feature enabled by default for GW2.

Also just to note - In my package I'm already using a dedicated cache folder for GW2 in the same way you suggested. It's nice to see such an old AMD CPU handling the game well under Linux, makes me want to dig up my old Core 2 Q6600 parts and test it.

Link to post
Share on other sites

@"GIGU.6487" said:Thx for this! It run very good!A Question:The New V1.3 run with gw2.exe and not with gw64.exe. Is the gw2.exe better?

I think the stock client is just 64bit now and you have to use a "switch" to force to 32bit mode, but I am not certain and cannot find anything saying that currently for some reason.

I think though that after 2016 spring they went out of beta with the 64bit client and it is what auto installs by default from the launcher. I will post a link if I can ever find one.

Edit:

I said I could not find it then found it ten seconds later...

https://wiki.guildwars2.com/wiki/Game_updates/2016-05-17

The 64-beta client is no longer in beta. The 32-bit client will now automatically switch to the 64-bit client if the conditions appear favorable.

Link to post
Share on other sites

@jbrother.1340 said:

No, those flags are meant to enable the amdgpu kernel driver. Amdgpu and Radeon uses the same shader path for both opengl and gallium nine.Amdgpu has the ANV vulkan driver.

You should post logs printed on the console. The marketplace worked when I last remembered it.I do not feel like downloading the game and logging in anymore to test.

use stderr redirect to a file. Append this line to the gw2 console.

2> gw2_error.txt

Either way, gallium nine devs would probably ask you to run with full debug to figure out what is wrong.

@"VAHNeunzehnsechundsiebzig.3618"

D3d9 wine gentoo is gallium nine. You are using a native d3d9 driver on Linux. Of course, performance will be good.

So I have gallium nine working fine for the most part. It is more stable and less stuttery than the package here (which also does run really good overall as well) however I am still having issues with the black lion store and trading post. I get constant

net::ERR_ABORTED

I have read what I could find online about this and while it seems like a network issue if I use armor's package here I have no issue at all in any of them all load.

I have full reinstalled wine gallium and all that and deleted and started over with GW2 and let WINE setup again but with same response. I have tried various things in my network as well but that seems like the less likely culprit as it works in POL or in the Armor package.

Any thoughts?

PS:

not sure if relevant. When I am on the log in screen I cannot actually click any of the buttons are than play. The "forums" and other buttons on there do nothing if clicked.

I got it working.

I deleted all things related to this. Wine and all the GW2 stuff I have. I saved my .dat file off to the side.

It worked once I set it all back up.

I still think you are right @loseridoit.2756 and may have a bug in Gallium and am going to report it after I think of the best way to explain it as I tend to ramble.

it does run as good as the package here using OpenGL even though it runs lower fps. I get faster map loads and I notice if I run Gallium no mount lag really like I was getting.

I still wonder if I am just butting up against the limitation of my CPU.

Realistically what should my load be apx on CPU and GPU when just running around a Map?

I am getting about 40-65% of CPU / 30-65% on GPU / FPS of about 25-30 stable running around and higher with less happening or smaller view area on screen, lower in larger events but not a lot and more stable. CPU only spikes higher than 65% during map loading.

Does that sound like levels I should report a bug over with my old hardware?

Link to post
Share on other sites

@"VAHNeunzehnsechundsiebzig.3618" said:what is your hardware again?

Phenom II 955 blackRadeon HD 7950Asus Sabertooth 990fx gen1 mb16 Gb ram gskill somethings...

I have had most of this running for years. That CPU has a lot of time on it. I might have just reached the limit of what this CPU can currently handle. I just cannot afford to spend on a new machine right now. I can get a fX 8350 for cheap and thought that might help and this MB will run it.

Link to post
Share on other sites

@GIGU.6487 said:Thx for this! It run very good!A Question:The New V1.3 run with gw2.exe and not with gw64.exe. Is the gw2.exe better?

EDIT: Thx for the information @jbrother.1340 .On Windows i start the game since the 64 beta with the gw2-64.exe :disappointed:Very Good Performance. All Update better! Thank you so much!

Hi, the setup script downloads the 64bit exe from ANet's server and automatically renames it to "GW2.exe". It has always been 64bit since 1.0 :)

@jbrother.1340 said:I still wonder if I am just butting up against the limitation of my CPU.Realistically what should my load be apx on CPU and GPU when just running around a Map?

I am getting about 40-65% of CPU / 30-65% on GPU / FPS of about 25-30 stable running around and higher with less happening or smaller view area on screen, lower in larger events but not a lot and more stable. CPU only spikes higher than 65% during map loading.

Does that sound like levels I should report a bug over with my old hardware?

Considering your CPU's age and on Linux, I think you're getting decent performance. CPU/GPU usage will vary depending on the map and what's on screen.

If you can get the FX8350 for a good deal, I'd say go for it, the performance per core is much better than the 955 and you won't have to break the bank. The GPU is fine, I always liked the 7950, a bit old today but holds itself up with dignity :)

Link to post
Share on other sites

@ArmoredVehicle.2849 said:

@GIGU.6487 said:Thx for this! It run very good!A Question:The New V1.3 run with gw2.exe and not with gw64.exe. Is the gw2.exe better?

EDIT: Thx for the information @jbrother.1340 .On Windows i start the game since the 64 beta with the gw2-64.exe :disappointed:Very Good Performance. All Update better! Thank you so much!

Hi, the setup script downloads the 64bit exe from ANet's server and automatically renames it to "GW2.exe". It has always been 64bit since 1.0 :)

@jbrother.1340 said:I still wonder if I am just butting up against the limitation of my CPU.Realistically what should my load be apx on CPU and GPU when just running around a Map?

I am getting about 40-65% of CPU / 30-65% on GPU / FPS of about 25-30 stable running around and higher with less happening or smaller view area on screen, lower in larger events but not a lot and more stable. CPU only spikes higher than 65% during map loading.

Does that sound like levels I should report a bug over with my old hardware?

Considering your CPU's age and on Linux, I think you're getting decent performance. CPU/GPU usage will vary depending on the map and what's on screen.

If you can get the FX8350 for a good deal, I'd say go for it, the performance per core is much better than the 955 and you won't have to break the bank. The GPU is fine, I always liked the 7950, a bit old today but holds itself up with dignity :)

The good deal is actually free. A friend of mine owns what might be called a PC junkyard. I saw a bin of them last time I was there about 50-100 of them lol. I am guessing he will give me 10 or so and I can find 1 or 2 working ones. I will compare performance once I can get one and see if it bug related or if just my really old stuff.

I do have to say though that this x4 955 have been a really good CPU it has been on and online for almost 7 years without getting shut off. Not one issue ever. I am really happy right now the way GW2 plays for me with Linux compared to a year ago. The help in this thread from everyone has been really great. Good collaboration from everyone.

One of these days I am going to get stash of money I can spend on new PC parts and build a new one. Just waiting so I can get the parts I want rather than settling on stuff.

I do have a newer laptop that runs this well on Linux but that has a 7700HQ I think in it. I need to get it working with this package and Gallium and make comparisons.

Link to post
Share on other sites

@"VAHNeunzehnsechundsiebzig.3618" said:GW2 is very cpu bound, even more so with wine. So you should see some nice performance increase with a better cpu. The gpu is fine. Ram is fine.

Agreed.

I am actually fine right now with this I guess overall I wanted to make sure I had nothing buggy happening that I should report to help overall.

I am in a good place with what I can afford right now and it is playing better than ever. I will post performance once I update some hardware as well though.

Link to post
Share on other sites

I haven't posted in here before.

Been playing in Wine for the best part of 18 years now (GW1 and 2 included in the myriad of games

I have a simple setup with the following shell script to start GW2 .. Looking through here I realise I can optimise a little further.

I'll report back on any improvements from the current 40 - 20 FPS I currently get:

MSI Apache.Linux Mint.NVidia GTX 970MIntel Core i7 6700HQ ..

Link to post
Share on other sites

@EagleDelta.4726 said:@"ArmoredVehicle.2849" - Would you be willing to have your build used as the Semi-"official" process for running GW2 via WINE and link to it on the GW2 Wiki and/or creating a Lutris installer for it?

This way (long term) you don't have to necessarily be the only maintainer of this

I'm not familiar with Lutris and how they distribute custom builds, if someone's into it though, I'd be happy to provide the source code and help with the build progress.

@"RalloTubbs.6593" said:i currrently dual boot as my linux performance via Lutris is shocking. on my windows part im gettings 40fps avg with a mix of high and med with FXAA. but on linux i need to run all on low just to get 30fps in the big cities.

CPU: i5 6400GPU GTX1060Antergos

You probably don't have PBA or E-Sync enabled (or both). I built the latest release directly from the Lutris source code. These are some of the environment variables I'm using in my launch script (the first 2 are extremely important as they affect performance a lot):

export WINEESYNC=1export PBA_ENABLE=1export GL_SHADER_DISK_CACHE_SKIP_CLEANUP=1export GL_SHADER_DISK_CACHE_PATH="$HOME/.nv/gw2"export GL_FSAA_MODE=0export __GL_DEFAULT_LOG_ANISO=0export GL_LOG_MAX_ANISO=0export LD_PRELOAD="libpthread.so.0 libGL.so.1"export GL_THREADED_OPTIMIZATIONS=1export GL_SYNC_TO_VBLANK=0export __GL_YIELD=NOTHING

Link to post
Share on other sites

@ArmoredVehicle.2849 said:

@EagleDelta.4726 said:@ArmoredVehicle.2849 - Would you be willing to have your build used as the Semi-"official" process for running GW2 via WINE and link to it on the GW2 Wiki and/or creating a Lutris installer for it?

This way (long term) you don't have to necessarily be the only maintainer of this

I'm not familiar with Lutris and how they distribute custom builds, if someone's into it though, I'd be happy to provide the source code and help with the build progress.

@"RalloTubbs.6593" said:i currrently dual boot as my linux performance via Lutris is shocking. on my windows part im gettings 40fps avg with a mix of high and med with FXAA. but on linux i need to run all on low just to get 30fps in the big cities.

CPU: i5 6400GPU GTX1060Antergos

You probably don't have PBA or E-Sync enabled (or both). I built the latest release directly from the Lutris source code. These are some of the environment variables I'm using in my launch script (the first 2 are extremely important as they affect performance a lot):

export WINEESYNC=1export PBA_ENABLE=1export
GL_SHADER_DISK_CACHE_SKIP_CLEANUP=1export
GL_SHADER_DISK_CACHE_PATH="$HOME/.nv/gw2"export
GL_FSAA_MODE=0export __GL_DEFAULT_LOG_ANISO=0export
GL_LOG_MAX_ANISO=0export LD_PRELOAD="libpthread.so.0 libGL.so.1"export
GL_THREADED_OPTIMIZATIONS=1export
GL_SYNC_TO_VBLANK=0export __GL_YIELD=NOTHING

i have esync patches all done just not PBA, just used the lutris script tbh. ill give it a go with PBA

EDITgetting a error.

[antergos GW2]$ wineserver: failed to change priority to SCHED_FIFO/90X Error of failed request: BadValue (integer parameter out of range for operation)Major opcode of failed request: 154 (GLX)Minor opcode of failed request: 3 (X_GLXCreateContext)Value in failed request: 0x0Serial number of failed request: 165Current serial number in output stream: 166

Link to post
Share on other sites

@"RalloTubbs.6593" said:i have esync patches all done just not PBA, just used the lutris script tbh. ill give it a go with PBA

EDITgetting a error.

[antergos GW2]$ wineserver: failed to change priority to SCHED_FIFO/90X Error of failed request: BadValue (integer parameter out of range for operation)Major opcode of failed request: 154 (GLX)Minor opcode of failed request: 3 (X_GLXCreateContext)Value in failed request: 0x0Serial number of failed request: 165Current serial number in output stream: 166

The SCHED_FIFO error can be safely ignored, it's harmless. Those GLX errors though seem to be related with graphics drivers or X server settings, not GW2 specific errors.

I examined the Lutris setup script for GW2 here: https://lutris.net/games/install/1742/view Roughly it does the same thing as in my package except with a few minor differences, nothing that would impact performance though. I'll sign up for a Lutris account sometime next week and see If I can improve upon what's already there, if the author for the Lutris script reads this, thanks :)

Link to post
Share on other sites

@"ArmoredVehicle.2849" I'm not familiar with how their "builds"/Install scripts work either :(It's something I'm willing to look at, but it won't be until closer to the end of Oct, busy with some other FOSS/Conference obligations first.It would be nice to update the Wiki page about running GW2 under WINE with your build and a link to this Forum post

Link to post
Share on other sites
  • 2 weeks later...

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