Jump to content
  • Sign Up

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


Recommended Posts

  • Replies 1.2k
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

Hello Linux Gamers, This package aims to provide an easy way to play Guild Wars 2 on Linux without having you jump through hoops. It's completely portable and it comes with many performance tweak

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

@"insanelyapple.2870" said:I'm running Lutris almost successfully for more than a month now and I wonder if someone noticed weird mouse and camera behavior while playing among large number of people like squads (joined or not) or world bosses: sometimes camera refuses to stay in place and starts to spin character around either clockwise or counter clockwise, some rubberbanding while moving happens and often skills fails to be executed by keyboard - there's a significant delay but none if I'm operating with mouse (while trying to have camera in place). None of this happen when I'm in less dense populated areas but might happen while doing fractals.

I have the same problem whenever game has high load. Read in a wow-board about similar problems. Seems some issue with wine misinterpreting auto-repeating keystrokes.Typing "xset r off" in a console to turn off system-wide keyboard auto-repeat was the only workaround i could find. Type "xset r on" to undo and get back your normal behavior.

Link to post
Share on other sites

@"Nevin Kiludan.2639" said:Is arcdps no more working? I installed its newest version and I can't start it via Shift+Alt+T eg. Any idea how to fix this?

you can try these solutions:

if you're running from a script make sure you have this line in itexport WINEDLLOVERRIDES="d3d9=n,b"

if running from command line add it to the beginning of your wine launch command as an env varWINEDLLOVERRIDES="d3d9=n,b" WINEPREFIX=/path/to/prefix wine64 /path/to/gw2-64.exe


arcdps loads for me but can crash upon map change on wine 6.5 (very rarely though and most likely when there's a lot of entities being loaded in)

Link to post
Share on other sites

Hey everyone! I am a super new player to the game. I have been trying to get it working on my Linux PC for a while now, and it's successfully working. I am using wine-staging 6.5 (other versions don't work because of the login connection bug. 6.2 does work nicely though, if not better than 6.5. More testing is needed there) with lutris and fsync. I have two main questions for now:

  1. Is it really worth using ArmoredVehicle's package over a normal setup like what mine with wine-staging? Are there noticeable performance gains?
  2. I am a Dvorak keyboard user as well (typical linux-user rebel). Is my only way out to rebind everything one by one? Or there is a variable I could set?

Thank you in advance.

Link to post
Share on other sites

@"Erothas.5738" said:Hey everyone! I am a super new player to the game. I have been trying to get it working on my Linux PC for a while now, and it's successfully working. I am using wine-staging 6.5 (other versions don't work because of the login connection bug. 6.2 does work nicely though, if not better than 6.5. More testing is needed there) with lutris and fsync. I have two main questions for now:

  1. Is it really worth using ArmoredVehicle's package over a normal setup like what mine with wine-staging? Are there noticeable performance gains?
  2. I am a Dvorak keyboard user as well (typical linux-user rebel). Is my only way out to rebind everything one by one? Or there is a variable I could set?

Thank you in advance.

1) you can use any winebuild you want, you can even use steam's proton (but no reason to really) and there isnt much difference (performance, in fact you might not even notice a difference assuming you use fsync on all builds you want to try) between all of them more or less. ArmoredVehicle's package is just for convenience for the most part and to help non-technically inclined users on linux (like those who freshly migrated from windows) have a one-click package without much fiddling such as setting up wine manually. once GW2-Steam (in the far far future) comes out it would more or less do the same thing as AV's package if you install via Steamplay/Proton

personally, i compile my own wine build with tkg and staging patchsets which also allows me to use futex2 / fsync2 which is sort of "faster" in some cases vs esync/fsync.

there's also development on WINESYNC or FASTSYNC which is meant to be an alternative to futex2/fsync/esync but it's still in the early stages and isnt faster than any.

2) not much experience with that since i only deal with standard us layout. can't help with your rebind everything issue, sorry.


if you want performance gains (very minimal) you can try installing gamemode and lib32-gamemode + install/build a custom kernel like xanmod or linux-zen

Link to post
Share on other sites

@Astyrah.4015 said:

@"Erothas.5738" said:Hey everyone! I am a super new player to the game. I have been trying to get it working on my Linux PC for a while now, and it's successfully working. I am using wine-staging 6.5 (other versions don't work because of the login connection bug. 6.2 does work nicely though, if not better than 6.5. More testing is needed there) with lutris and fsync. I have two main questions for now:
  1. Is it really worth using ArmoredVehicle's package over a normal setup like what mine with wine-staging? Are there noticeable performance gains?
  2. I am a Dvorak keyboard user as well (typical linux-user rebel). Is my only way out to rebind everything one by one? Or there is a variable I could set?

Thank you in advance.

1) you can use any winebuild you want, you can even use steam's proton (but no reason to really) and there isnt much difference (performance, in fact you might not even notice a difference assuming you use fsync on all builds you want to try) between all of them more or less. ArmoredVehicle's package is just for convenience for the most part and to help non-technically inclined users on linux (like those who freshly migrated from windows) have a one-click package without much fiddling such as setting up wine manually. once GW2-Steam (in the far far future) comes out it would more or less do the same thing as AV's package if you install via Steamplay/Proton

personally, i compile my own wine build with tkg and staging patchsets which also allows me to use futex2 / fsync2 which is sort of "faster" in some cases vs esync/fsync.

there's also development on WINESYNC or FASTSYNC which is meant to be an alternative to futex2/fsync/esync but it's still in the early stages and isnt faster than any.

2) not much experience with that since i only deal with standard us layout. can't help with your rebind everything issue, sorry.

if you want performance gains (very minimal) you can try installing gamemode and lib32-gamemode + install/build a custom kernel like xanmod or linux-zen

Perfect answer! I didn't want to clog up my post with unnecessary information, but I am also compiling my own undead PDS (project C now) TKG kernel with futex2 and winesync. I haven't had the chance to explore how to enable the latter in-game. Futex2 sounds like it will be sufficient for the time being until winesync matures more. But I digress.

If I went all the way out and to have this setup, another wine build has to be really convincing for me to install yet another one on my PC. Thankfully, it sounds like my setup will be more or less the same performance. So, I can stick with that.

Now, my new mission is to fiddle around with in-game graphical settings. Having 60-80 fps (in a mostly empty area) is not great, but I also have most of the settings set to high on a 1440p resolution. I need to be willing to compromise and start lowering. This game is quite horribly optimized, I have got to say :(

Thank you very much for saving a lot of time for me that I would have put into researching and installing this. Regardless, Armored Vehicle is doing a great job from the looks of it. Not everyone is as crazy as I am to do stuff like compiling custom kernels. So, I hope he keeps it up for the rest of folks here!

Link to post
Share on other sites

@Erothas.5738 said:I haven't had the chance to explore how to enable the latter in-game.afaik if you have a kernel and winebuild that can utilise WINESYNC, then you don't have to set an env variable to enable it like futex2/fsync/esync, it's automatic (i havent tried so i wouldn't know 100%) as long as fsync and esync are disabled.

@Erothas.5738 said:Now, my new mission is to fiddle around with in-game graphical settings. Having 60-80 fps (in a mostly empty area) is not great, but I also have most of the settings set to high on a 1440p resolution. I need to be willing to compromise and start lowering. This game is quite horribly optimized, I have got to say :(

you can try setting Shadows to "Low or None" and Character Model Quantity to "Lowest" just those two. if you've got decent hardware with atleast rx580 or 1060 tier graphics, then everything else can be maxed at 1080p with just those two mentioned settings at Lowest and the game should run pretty much at 60fps consistently except for zerg-y WvW or PvE, 80~100+ people where the game struggles a lot

@Erothas.5738 said:Thank you very much for saving a lot of time for me that I would have put into researching and installing this. Regardless, Armored Vehicle is doing a great job from the looks of it. Not everyone is as crazy as I am to do stuff like compiling custom kernels. So, I hope he keeps it up for the rest of folks here!

also, recommend you to join those discords like VKx, Lutris, GamingOnLinux etc. as they may be able to help you with your keyboard locale issue :) and if you hang out in the VKx discord or something there's also other people doing the same as you (compiling their own linux kernel and such), i wouldn't call them crazy though lol more like someone who wants the bleeding edge newest stuff as soon as possible to bother doing that.


lastly! if you're considering GW2 addons, like DPS meters or TACO, there are mixed results here for different people, some crashy some stable some just don't load at all, personally i only use ardDPS and i get rare crashes here and there when changing maps, still lazy to enable logging and check if it's a dxvk related issue (since it's a d3d9 dll hook) or if it's fsync or futex2 related, etc.

Link to post
Share on other sites

@"VAHNeunzehnsechundsiebzig.3618" said:well, I can't use arc at the moment, game will freeze after 90min. But considering that other people in my guild also have arc issues on windows I blame arc.

tbh, yeah it could also be arc itself because the recent builds of arc since feb this year (might be earlier or later than that but) have been sort of unstable for me lately to the point that i made a second script to start the game without it if i know i'll be doing any serious group content when i login lol (don't wanna burden my guild with a random crash to desktop out of the blue)

Link to post
Share on other sites

@"Astyrah.4015" said:afaik if you have a kernel and winebuild that can utilise WINESYNC, then you don't have to set an env variable to enable it like futex2/fsync/esync, it's automatic (i havent tried so i wouldn't know 100%) as long as fsync and esync are disabled.

That is apparently incorrect for futex2. I recently asked a developer about this, and you do have to set an env variable in lutris: WINEFSYNC_FUTEX2=1. After checking my lutris logs, that is indeed the way to enable futex2.you can try setting Shadows to "Low or None" and Character Model Quantity to "Lowest" just those two. if you've got decent hardware with atleast rx580 or 1060 tier graphics, then everything else can be maxed at 1080p with just those two mentioned settings at Lowest and the game should run pretty much at 60fps consistently except for zerg-y WvW or PvE, 80~100+ people where the game struggles a lot

I do have an RX 5700 XT. Ideally I would prefer nothing below 100 fps; and my card usually pushes beyond that on ultra. But yea, #JustGuildWars2Things. Thank you for recommending the settings I should target though. That's actually very helpful, as I was going to chase my own tail trying to find which setting is the best to turn down.also, recommend you to join those discords like VKx, Lutris, GamingOnLinux etc. as they may be able to help you with your keyboard locale issue :) and if you hang out in the VKx discord or something there's also other people doing the same as you (compiling their own linux kernel and such), i wouldn't call them crazy though lol more like someone who wants the bleeding edge newest stuff as soon as possible to bother doing that.

Yep. I am already a member in those channels except GamersOnLinux. I will take a look at that right away. And yea, you are right. After reading up on how trash the CFS CPU scheduler is from the vanilla kernel, it was a no brainer to try and pursue something better. It's the beauty of Linux after all; the freedom.


lastly! if you're considering GW2 addons, like DPS meters or TACO, there are mixed results here for different people, some crashy some stable some just don't load at all, personally i only use ardDPS and i get rare crashes here and there when changing maps, still lazy to enable logging and check if it's a dxvk related issue (since it's a d3d9 dll hook) or if it's fsync or futex2 related, etc.

I didn't even know there were addons in this game... Damn, you have been really helpful to me. For that, I extend my thanks =)

Link to post
Share on other sites

@Erothas.5738 said:That is apparently incorrect for futex2. I recently asked a developer about this, and you do have to set an env variable in lutris: WINEFSYNC_FUTEX2=1. After checking my lutris logs, that is indeed the way to enable futex2.

oh i misunderstood you there lol! i thought you were trying to use WINESYNC and didnt know the env var for it hence why i mentioned WINESYNC and a kernel build for it -- and disabling fsync+esync.

and yes, that's the one for futex2 (i use it too) =)

@Erothas.5738 said:I do have an RX 5700 XT. Ideally I would prefer nothing below 100 fps; and my card usually pushes beyond that on ultra. But yea, #JustGuildWars2Things. Thank you for recommending the settings I should target though. That's actually very helpful, as I was going to chase my own tail trying to find which setting is the best to turn down.

yeah those two settings i mentioned are the ones that tank FPS a lot, especially when both are set to highest. and please don't worry about setting shadows to low, sure it will look pretty on High/Ultra, but when you're fighting or moving very fast (which you'll be doing a lot later on, especially when you get your mounts or do instanced group content) you'd pay less attention to trees drawing shadows dynamically

@Erothas.5738 said:Yep. I am already a member in those channels except GamersOnLinux. I will take a look at that right away. And yea, you are right. After reading up on how trash the CFS CPU scheduler is from the vanilla kernel, it was a no brainer to try and pursue something better. It's the beauty of Linux after all; the freedom.

the GoL community is almost like the Lutris one but it's nice to have another set of people/community who are in the same setup as you! and it never hurts to get a second/third opinion on things/linux issues/games/etc.

@Erothas.5738 said:I didn't even know there were addons in this game... kitten, you have been really helpful to me. For that, I extend my thanks =)

you're welcome! so just to name a few:

arcdps is the go-to parsertaco is an information overlay that provide many useful things for farming, gathering, bosses, etc.gw2 radial is a better mount selector

most of them are d3d9.dll hooks except for taco, and i assume you may know already, that you need to do dll overrides via lutris' menu, winecfg or WINEDLLOVERRIDES= env var so wine would look for them in the gw2 directory first and if you need to use more than one, arcdps has to be the one named d3d9.dll in bin64 folder the rest have to be named in a specific way to "chainload" them see: https://www.deltaconnected.com/arcdps/

do note that, they can get crashy =) (or be completely stable for you)

Link to post
Share on other sites

@SmokingLord.6108 said:

@Astyrah.4015 said:EDIT:can confirm. compiled wine 6.5 with staging and tkg patchsets and the game logs in just fine. no issues playing whatsoever with just a very very rare crash after a map change/loading screen whenever i run arcdps (no crashes if not running arc even after long hours of play) -- this could be more of arcdps not playing nice with the latest dxvk build

I'm having the same crashes when I have arcdps installed, but for me it isn't so rare, doesn't take more than 30min on WvW to crash. Its quite annoying since crash on WvW means waiting on long queue to get in again lol. I may give a try with dxvk 1.7.x to see if there is any difference.

I've had so many random crashes with arcdps, I just stopped using it.Before I would get about one crash per week. Now I've gotten one over the last 3 months.

Link to post
Share on other sites

Guys I follow the video tutorial but when I run ./play.sh to install it says this:

sync: up and running.Wine cannot find the ncurses library (libncurses.so.5).


  • WARNING: Unknown option RADV_PERFTEST='aco'. ACO is enabled by default now. *

    And then stops doing anything. If I retype it it just repeats. I don't know how to get around this.Any ideas?I just installed Linux Mint last night and I"m a total newb so be gentle

Link to post
Share on other sites

@Pyrisal.7394 said:Wine cannot find the ncurses library (libncurses.so.5).

I just installed Linux Mint

assuming you have that package installed, this is most likely the cause of a misconfigured LD_LIBRARY_PATH or LD_PRELOAD env var

but if you're not sure, you can check and see if you have it installed by doing the command:

sudo apt install libncurses6 libncurses6:i386for 64bit + 32bit package

Link to post
Share on other sites

@Astyrah.4015 said:oh i misunderstood you there lol! i thought you were trying to use WINESYNC and didnt know the env var for it hence why i mentioned WINESYNC and a kernel build for it -- and disabling fsync+esync.

I was trying to figure out how to enable both winesync and futex2, really =) So, it's all good.

@"Erothas.5738" said:I didn't even know there were addons in this game... kitten, you have been really helpful to me. For that, I extend my thanks =)Why the hell did I mistype and write "kitten"? I don't even remember what the actual word I wanted to write is... Sorry about that haha.you're welcome! so just to name a few:

arcdps is the go-to parsertaco is an information overlay that provide many useful things for farming, gathering, bosses, etc.gw2 radial is a better mount selector

most of them are d3d9.dll hooks except for taco, and i assume you may know already, that you need to do dll overrides via lutris' menu, winecfg or WINEDLLOVERRIDES= env var so wine would look for them in the gw2 directory first and if you need to use more than one, arcdps has to be the one named d3d9.dll in bin64 folder the rest have to be named in a specific way to "chainload" them see: https://www.deltaconnected.com/arcdps/

do note that, they can get crashy =) (or be completely stable for you)

I actually didn't know that already. So, this is more and more informative. Yet again, thank you for this! I will be coming and set this all up once I fix the newest problem I am facing. Apparently my GPU hangs whenever I play most games (which are admittedly few, but still) on Linux only. So, Linux is currently unusable for me until I fix this. The VKx discord failed to help me with the issue as well. So, I don't know where to go, and that's what I am trying to figure out first.

Sorry for the late reply too. Last few days have been very busy for me. But things should be clearing up soon.

Link to post
Share on other sites

@Erothas.5738 said:Why the hell did I mistype and write "kitten"? I don't even remember what the actual word I wanted to write is... Sorry about that haha.

"kitten" is the forum's built-in profanity/language filter. anything the mods have deemed as offensive/bad language will be replaced with "kitten" :)

@Erothas.5738 said:I actually didn't know that already. So, this is more and more informative. Yet again, thank you for this! I will be coming and set this all up once I fix the newest problem I am facing. Apparently my GPU hangs whenever I play most games (which are admittedly few, but still) on Linux only. So, Linux is currently unusable for me until I fix this. The VKx discord failed to help me with the issue as well. So, I don't know where to go, and that's what I am trying to figure out first.

Sorry for the late reply too. Last few days have been very busy for me. But things should be clearing up soon.

try asking on the Lutris discord maybe they can help you over there.

but for starters though i'd test the setup on another distro (the debuntu or debian/ubuntu distros are good for this) running on a stock kernel and check if the issues persist then work around from there if it's your kernel, your drivers, your system environment, packages, etc.

Link to post
Share on other sites

@"Pyrisal.7394" said:Guys I follow the video tutorial but when I run ./play.sh to install it says this:

sync: up and running.Wine cannot find the ncurses library (libncurses.so.5).


  • WARNING: Unknown option RADV_PERFTEST='aco'. ACO is enabled by default now. *

    And then stops doing anything. If I retype it it just repeats. I don't know how to get around this.Any ideas?I just installed Linux Mint last night and I"m a total newb so be gentle

libncurses does not matter. That message can be safely ignored and has nothing to do with your problem. The warning is harmless as well. Try running the debug script.

Link to post
Share on other sites

Wondering if someone can help me figure this out. I recently got an upgrade \o/ and can now play gw2 properly and use dxvk.

I'm trying to run taco using the portable package binaries but get a lib error.

info:  Game: GW2TacO.exeinfo:  DXVK: v1.8-asyncinfo:  Built-in extension providers:info:    Win32 WSIinfo:    OpenVRinfo:    OpenXRwarn:  OpenVR: Failed to locate moduleinfo:  Enabled instance extensions:info:    VK_KHR_get_surface_capabilities2info:    VK_KHR_surfaceinfo:    VK_KHR_win32_surfaceThe NVIDIA driver was unable to open 'libnvidia-glvkspirv.so.460.67'.  This library is required at run time.warn:  Skipping Vulkan 1.0 adapter: llvmpipe (LLVM 11.0.1, 256 bits)warn:  DXVK: No adapters found. Please check your device filter settings and Vulkan setup.err:   D3D11CreateDevice: No default adapter available

libnvidia-glvkspirv is installed and it starts fine if I use native wine binaries. Wondering if there is a config or symlink I need for the portable package?

Link to post
Share on other sites

@ZenAge.4863 said:Wondering if someone can help me figure this out. I recently got an upgrade \o/ and can now play gw2 properly and use dxvk.

I'm trying to run taco using the portable package binaries but get a lib error.

info:  Game: GW2TacO.exeinfo:  DXVK: v1.8-asyncinfo:  Built-in extension providers:info:    Win32 WSIinfo:    OpenVRinfo:    OpenXRwarn:  OpenVR: Failed to locate moduleinfo:  Enabled instance extensions:info:    VK_KHR_get_surface_capabilities2info:    VK_KHR_surfaceinfo:    VK_KHR_win32_surfaceThe NVIDIA driver was unable to open 'libnvidia-glvkspirv.so.460.67'.  This library is required at run time.warn:  Skipping Vulkan 1.0 adapter: llvmpipe (LLVM 11.0.1, 256 bits)warn:  DXVK: No adapters found. Please check your device filter settings and Vulkan setup.err:   D3D11CreateDevice: No default adapter available

libnvidia-glvkspirv is installed and it starts fine if I use native wine binaries. Wondering if there is a config or symlink I need for the portable package?

Does the issue occur only when trying to run it with Taco?

Link to post
Share on other sites

yes, and only when using portable package wine binaries. :/I also get 0014:err:winediag:xrandr12_init_modes Broken NVIDIA RandR detected, falling back to RandR 1.0. Please consider using the Nouveau driver instead.

thanks for your package btw, running gw2 straight via wine without tweaks runs gw2 at 15-25fps with stutters and with your latest package i get 70-200fps without any fuss :D

EDIT:

I got it to work by installing libnvidia-glvkspirv:i386 :smirk:

Link to post
Share on other sites
  • 2 weeks later...
Posted (edited)

Hey guys, I'm playing on a MSI Alpha 15 laptop (Vega 10 and 5600m dedicated), I'm using opensource drivers and using prime to run using the dedicated card.

 

I'm using the wine version from this post and with arcdps, and the game freezes after some time. I can see in comments here that this is happening with others.

 

I ran the game with debug, and I was able to reproduce the crash, here the logs:

0046:fixme:msctf:KeystrokeMgr_TestKeyUp STUB:(0000000005C44990)
0046:fixme:msctf:KeystrokeMgr_TestKeyUp STUB:(0000000005C44990)
........
//until here all was good
....
0046:fixme:esync:add_to_list too many allocated handles, not caching 0x400024
0046:fixme:esync:add_to_list too many allocated handles, not caching 0x400028
0046:fixme:esync:add_to_list too many allocated handles, not caching 0x400024
0046:fixme:esync:add_to_list too many allocated handles, not caching 0x400024
0037:fixme:esync:add_to_list too many allocated handles, not caching 0x400024
00bb:fixme:esync:add_to_list too many allocated handles, not caching 0x40005c
0045:fixme:esync:add_to_list too many allocated handles, not caching 0x400060
0045:fixme:esync:add_to_list too many allocated handles, not caching 0x400064
0045:fixme:esync:add_to_list too many allocated handles, not caching 0x400068
0045:fixme:esync:add_to_list too many allocated handles, not caching 0x40005c
00bb:fixme:esync:add_to_list too many allocated handles, not caching 0x40006c
00bb:fixme:esync:add_to_list too many allocated handles, not caching 0x400070
003d:fixme:esync:add_to_list too many allocated handles, not caching 0x400064
00bb:fixme:esync:add_to_list too many allocated handles, not caching 0x400074
0037:fixme:esync:add_to_list too many allocated handles, not caching 0x400090
0037:fixme:esync:add_to_list too many allocated handles, not caching 0x400090
0046:fixme:esync:add_to_list too many allocated handles, not caching 0x400098
0046:fixme:esync:add_to_list too many allocated handles, not caching 0x400098
0046:fixme:seh:call_stack_handlers nested exception
....
//errors above repeat
...
0046:fixme:seh:call_stack_handlers nested exception
0046:fixme:seh:call_stack_handlers nested exception
0046:fixme:seh:call_stack_handlers nested exception
0046:fixme:seh:call_stack_handlers nested exception
0046:err:seh:setup_exception stack overflow 1664 bytes in thread 0046 eip 000000007bc92d1f esp 0000000003410f90 stack 0x3410000-0x3411000-0x3510000
^C010f:fixme:console:CONSOLE_DefaultHandler Terminating process c2 on event 0
0119:fixme:console:CONSOLE_DefaultHandler Terminating process 8 on event 0

 

Edited by huuof.9231
Link to post
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...