Jump to content
  • Sign Up

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


Recommended Posts

5 hours ago, Hell Nirvana.9045 said:

No wonder I couldn't find it. They posted it on the wrong sub-forum xD

Here is the thing...

Using this settings(for my hardware) lutris-fshack-7.2-x86_64 and DXVK 1.9.4L-2 it all works ok except for the TP as you notices due to some memory leak, that is without the DX11 ticked, if you marked DX11 then restart it all goes back to the crashing., so I change the setting to use, lutris-GE-Proton7.1-x86_64 and DXVK 1.9-4L-2, it when back up again, and guest what!?... the problem with the TP got also fixed!, got me thinking, would this work without the DX11 checked?...

And no didn't worked... 

So:

  • lutris-fshack-7.2-x86_64 and DXVK 1.9.4L-2
    • DX11 Off
      • No Lions Trading Post
      • High FPS(60-120)
  • lutris-GE-Proton7.1-x86_64 and DXVK 1.9-4L-2
    • DX11 On
      • Yes Lion Trading Post
      • Low FPS(20-50)

There you have it, that's what has worked for me. one has TP no problem but a lower FPS and the other has high FPS but no TP has problems...

  •  
Edited by Tanker.9802
typos
Link to comment
Share on other sites

I can confirm Proton functionality in full for the base unmodified game now.

 

I've been playing the game for over a day, doing various types of content as well as using TP. No crashes, no issues whatsoever, aside from what I mentioned before where loading up mods like Radial Mount or VKBasalt will cause the game to freeze.

 

OS: Garuda Linux

Kernel: 5.18.13-zen1-1-zen

CPU: Ryzen 2700X

GPU: Radeon 6900 XT

Memory: 32GB

DE: Plasma 5.25.3 (Wayland)

 

All I did to get to this point was set up a non-steam game in Steam, point it to the GW2.exe in the data folder, and tell it to use Proton GE 7.26. It worked right out of the box once I deleted gw2radial from the addons folder.

 

I've gotten some additional performance out of the game by mimicking several of the commands from user_run to the launch options in Steam. This is what I'm running right now:

MESA_GLSL_CACHE_DISABLE=0 MESA_DISK_CACHE_SINGLE_FILE=1 mesa_glthread=true RADV_PERFTEST=aco DXVK_HUD=fps,gpuload DXVK_ASYNK=1 STAGING_SHARED_MEMORY=1 WINEFSYNC=1 %command%

Link to comment
Share on other sites

Small update after days of experimenting with Wine and Proton and after getting the game running again:

There are many here seemingly doing the same thing or running the same version with varying success, so maybe someone with more clue about the details can make sense out of this.

For me it's not actually about the Wine or DXVK version used but the prefix...

- Existing Wine prefix crashes.

- Freshly created Wine prefix with DXVK set up crashes.

- Prefix created with Proton works with Wine afterwards (after setting up DXVK for it).

Tested with wine-staging7.13/wine-ge-custom7.22 and DXVK1.10.1/1.10.2 in all combinations. Reproducible on 3 different devices (nvidia, amd and intel graphics)....

Edited by Ooops.8694
Link to comment
Share on other sites

16 hours ago, Ooops.8694 said:

Small update after days of experimenting with Wine and Proton and after getting the game running again:

There are many here seemingly doing the same thing or running the same version with varying success, so maybe someone with more clue about the details can make sense out of this.

For me it's not actually about the Wine or DXVK version used but the prefix...

- Existing Wine prefix crashes.

- Freshly created Wine prefix with DXVK set up crashes.

- Prefix created with Proton works with Wine afterwards (after setting up DXVK for it).

Tested with wine-staging7.13/wine-ge-custom7.22 and DXVK1.10.1/1.10.2 in all combinations. Reproducible on 3 different devices (nvidia, amd and intel graphics)....

I believe the desparities are a combination of:

1) People not paying attention to the fullscreen bug. Some setups need fshack or virtual desktop or crash with a similar but unrelated error to the one we're trying to debug.

2) Missing dependancies, some systems don't have the 32-bit libs for Vulkan installed, and CoherintUI is a hybrid 32-bit/64-bit application even though GW2 is 64-bit.

3) Insufficient Wine or DXVK version. Protonized 7.2-2 and DXVK 1.10.1 are needed for child window rendering and shared resources, respectively.

4) Not setting WINE_ESYNC and WINE_FSYNC, both of which are required if I remember correctly.

5) Some kind of generic problem (incorrect dependancy issue again?) prevents the game from running on Lutris for some people in any configuration. The same setups work without it.

6) Whatever issue the prefix is causing, potentially from stale DLL files?

 

I'll try recreating your test and seeing what happens for me.

Edited by Mariyuuna.6508
  • Like 1
Link to comment
Share on other sites

On 7/22/2022 at 4:43 PM, SirBaldyLocks.7814 said:

I am running MX Linux on AMD Ryzen 7 4800H if that at all matters. 

 

I don't know if it matters, I'm running MX Linux too but on Intel i7, NVIDIA card, proprietary driver 470.129.06 and kernel 5.10.0-16-amd64.

  • Like 1
Link to comment
Share on other sites

On 7/23/2022 at 5:12 PM, Hell Nirvana.9045 said:

There's a memory leak currently in Coherent UI that'll eventually slow the TP to a crawl.

 

I noticed that too, though for me it's not just a slowdown, the game systematically crashes after I while I play, how long I can play before it crashes depends on what I do.

Very shortly if I use the TP a lot and/or switch chars, longer if I stick to a char without changing maps and no use of TP.

The error is always the same (coherentui gpu process crashed), same error I had when I couldn't start the game at all before installing it in its own prefix (outside of Lutris).

 

I've read some people have serious problems with TP on Windows as well so hopefully Anet can do something about it.

 

Link to comment
Share on other sites

Yeahhh it's been completely borked since the last patch.

 

Lutris-GE-Proton-7-22

DXVK v1.10.2

AMD Radeon 6700XT

All 32-bit vulkan libraries installed

DXVK enabled: Game instantly crashes before I even get to the login screen

Error: File: D:\Perforce\Live\NAEU\v2\Code\Arena\Engine\ArenaWeb\CoherentUi\AwCohContext.cpp(375)

 

DXVK disabled: I get past the login screen but game crashes before I get to character selection

Error: File: D:\Perforce\Live\NAEU\v2\Code\Arena\Engine\Gr\Bgfx\BgfxTexture.cpp(847)

 

For what it's worth - as others have already pointed out - running it inside Steam works fine.

GE-Proton-7-26

DXVK_ASYNC=1 %command%

The performance is almost identical so far, except for some lighting glitches.

Link to comment
Share on other sites

19 minutes ago, Evermore.5649 said:

Yeahhh it's been completely borked since the last patch.

 

Lutris-GE-Proton-7-22

DXVK v1.10.2

AMD Radeon 6700XT

All 32-bit vulkan libraries installed

DXVK enabled: Game instantly crashes before I even get to the login screen

Error: File: D:\Perforce\Live\NAEU\v2\Code\Arena\Engine\ArenaWeb\CoherentUi\AwCohContext.cpp(375)

 

DXVK disabled: I get past the login screen but game crashes before I get to character selection

Error: File: D:\Perforce\Live\NAEU\v2\Code\Arena\Engine\Gr\Bgfx\BgfxTexture.cpp(847)

 

For what it's worth - as others have already pointed out - running it inside Steam works fine.

GE-Proton-7-26

DXVK_ASYNC=1 %command%

The performance is almost identical so far, except for some lighting glitches.

You already solved this problem so I'm leaving this here for someone else;

The second error is because you still have DX11 enabled, which isn't supported without DXVK. You need to start the game with the following commandline: "-dx9 -dx9single". You also need to enable threaded optimisations, but its slightly different depending on whether you're on AMD or NVIDIA:

AMD: mesa_glthread=true

NVIDIA: __GL_THREADED_OPTIMIZATIONS=1

 

This will run the game the "oldschool" way with WineD3D9 instead of DXVK. Otherwise, you won't be able to start the game when DXVK is disabled without it crashing or running poorly.

Edited by Mariyuuna.6508
  • Like 1
Link to comment
Share on other sites

Update: I do have a different crash, it does seem separate from the one below. The one below (related to AwCohContext.cpp) doesn't seem to happen as often now on dxvk-async-1.10.2 with lutris-fshack-7.2.

The game just closed when I tabbed out:
015c:err:virtual:try_map_free_area mmap() error Cannot allocate memory, range 0x7fab39a00000-0x7fab39e00000, unix_prot 0x3.
015c:err:virtual:try_map_free_area mmap() error Cannot allocate memory, range 0x7fab3a760000-0x7fab3ab60000, unix_prot 0x3.
015c:err:virtual:alloc_area_in_reserved_or_between_callback Could not map in reserved area.
-autologin: /home/ubuntu/buildbot/runners/wine/wine-src/dlls/ntdll/unix/virtual.c:1520: create_view: Assertion `!((UINT_PTR)base & page_mask)' failed.
015c:err:seh:call_stack_handlers invalid frame 0000000006E4E420 (0000000006D32000-0000000006E30000)
015c:err:seh:NtRaiseException Exception frame is not in stack limits => unable to dispatch exception.
Initial process has exited (return code: 0)
Monitored process exited.
Exit with return code 0


This seems to be a problem for me:

File: D:\Perforce\Live\NAEU\v2\Code\Arena\Engine\ArenaWeb\CoherentUi\AwCohContext.cpp(375)

I also see a lot of this when I open items in the Trading Post / Black Lion Store. However, this seems to only happen on DXVK 1.10.1, not 1.10.2:

info:  DXVK: Using 7 compiler threads
info:  D3D9DeviceEx::ResetSwapChain:
info:    Requested Presentation Parameters
info:      - Width:              1
info:      - Height:             1
info:      - Format:             D3D9Format::R5G6B5
info:      - Auto Depth Stencil: false
info:                  ^ Format: D3D9Format::Unknown
info:      - Windowed:           true
err:   Failed to create swap chain

+

on 1.10.2 but without crashing:
info:  DXVK: Using 7 compiler threads
warn:  D3D9DeviceEx::SetRenderState: Unhandled render state 26

+

some of this, unsure when:

warn:  D3D9: Failed to write shared resource info for a texture
err:   Failed to create shared resource: VK_KHR_EXTERNAL_MEMORY_WIN32 not supported

I keep seeing 32-bit libraries mentioned. What do I need to make sure I have? wine-core.i686 vulkan-loader.i686 are both installed.

I am using Lutris and had problems initially post-patch but got everything (mostly) working after the patch by creating a new Wine prefix and using lutris-fshack-7.2 instead but I still ran into the odd crash. The Trading Post / Black Lion Store were working too. I never got to see the dialog box though, it just closed. Sometimes, when I opened the map and tried to waypoint somewhere. I enabled the debugging logs now so I can keep an eye on it when it crashes again. I'm not sure if the random crashes I have are the same as the above as I didn't often see that dialog nor did I have the logging enabled. It doesn't seem to make a difference whether or not I have the Lutris runtime enabled or disabled. Fsync + Esync are both enabled. Feral GameMode is also enabled.

I can replicate a crash (due to the line mentioned at the start) consistently now though by clicking around the Black Lion Trading / Trading Post.

Lastly, if anyone knows how to fix this one, when I launch the Guild Wars 2 launcher, sometimes I will get a message about running greater than Windows XP. Why this doesn't happen consistently is beyond me. However, my Wine Configuration is set to Windows 10 and the regedit CurrentVersion confirms this. However, the Guild Wars 2 crashes note Wine 7.0 or Wine 0.0, like this:
OSVersion: Wine 0.0-unknown (64 bit)

I was on a slightly older release and usually, I only use dxvk-async but just wanted to rule it out. I am now on:

  • OS: Fedora 36 (GNOME 42.3 on Wayland)
  • CPU: AMD Ryzen 5600X
  • GPU: AMD Radeon 6800 XT
  • Drivers: 22.1.4 (RADV / Open)
  • Kernel: 5.18.13
  • DXVK: DXVK 1.10.2 / 1.10.1 / dxvk-async-1.10.2 / dxvk-async-1.10.1 + the DXVK build from here: https://github.com/doitsujin/dxvk/issues/2729
Edited by Vakky.7241
Link to comment
Share on other sites

14 hours ago, Niagara.2715 said:

I noticed that too, though for me it's not just a slowdown, the game systematically crashes after I while I play, how long I can play before it crashes depends on what I do.

I've tried to force myself to crash, unsuccessfully. It seems Coherent UI only bloats to a certain point, about 625 MiB for me, and doesn't go further. TP turns into a slideshow around the half point of that.

Link to comment
Share on other sites

I've had a running setup (lutris-GE-Proton7-14) since before and after the patch, but the TP had problems (worked only the first few times per restart, then a blank screen, but occasionally would flash the contents w/an upper-left origin). AMD Radeon, vulkan-radeon drivers, i3, updated Archlinux, etc. My DXVK version was outdated (1.10-2); installing the update (1.10.2) made the TP work fine for me again. Adding `export DXVK_HUD=devinfo,fps,version` to the Lutris generated launch script enabled me to check my installed DXVK version (but may have interferred w/ArcDPS, so I removed it afterwards).

Link to comment
Share on other sites

Guys can somebody here that has arcdps working with lutris guide me through how they installed it please? I have tried following the guides, I have tried with both the d3d9 and d3d11 putting the d9 in bin64 etc aswell as the wineconfig .dll overrides but still cant seem to get it to work. Any help would be appericated.

Link to comment
Share on other sites

Yes, this seems to be what suddenly closes my game now without an ArenaNet / GW2 event crash.

184:err:fsync:get_shm Failed to map page 63393 (offset 0xf7a1000).
0184:err:fsync:get_shm Failed to map page 63394 (offset 0xf7a2000).
0158:err:virtual:alloc_area_in_reserved_or_between_callback Could not map in reserved area.
-autologin: /home/ubuntu/buildbot/runners/wine/wine-src/dlls/ntdll/unix/virtual.c:1520: create_view: Assertion `!((UINT_PTR)base & page_mask)' failed.
0158:err:seh:call_stack_handlers invalid frame 0000000006D2E420 (0000000006C12000-0000000006D10000)
0158:err:seh:NtRaiseException Exception frame is not in stack limits => unable to dispatch exception.
Initial process has exited (return code: 0)
Monitored process exited.
Exit with return code 0

 

 

Edited by Vakky.7241
Link to comment
Share on other sites

has anyone gotten it working with just regular wine, no playonlinux, no lutris no bottles?

 

I've had it working since launch with just wine (with FPS no higher than 35), and over the last few years with wine+dxvk with the FPS starting in the mid 40's, usually on average it was low 50's.

 

now, it's a no go with just wine(staging) and no front end (bottles, lutris, etc). I installed bottles to test other wine versions/configurations, and it's mostly miss. however, if I do gt into the game with dxvk enabled, my fps doesn't go above 20.

 

I prefer to not install steam, since GW2 is the only game I've played and it's worked flawlessly since launch with just wine(staging).

 

I've really missed my evening wind down sessions.

 

if anyone has any tips on how to get it playable again (without steam), I'd be very grateful.

Link to comment
Share on other sites

9 minutes ago, handsomedrave.2870 said:

has anyone gotten it working with just regular wine, no playonlinux, no lutris no bottles?

 

 

As I understand it, for a lot of people, they need WINE compiled with this patch: https://bugs.winehq.org/show_bug.cgi?id=45277  Proton, ge-proton, and others already have it, but vanilla wine and wine-staging don't, yet. So if you're able to build WINE with that patch, it *should* work, so long as you don't have a problem with anything else.  That is, if you're fixed by using proton, ge-proton, or the like, that patch should be enough to fix the issue. (Assuming, too, that you're using dxvk 1.10.1 or above.)

Link to comment
Share on other sites

14 hours ago, Umiz.5786 said:

Guys can somebody here that has arcdps working with lutris guide me through how they installed it please? I have tried following the guides, I have tried with both the d3d9 and d3d11 putting the d9 in bin64 etc aswell as the wineconfig .dll overrides but still cant seem to get it to work. Any help would be appericated.

Need to have only d3d9 or d3d11 (arcdps.dll) at the same time.
The author said that he completely stops supporting arcdps for dx9-mode. So just put the arcdps file (d3d11.dll) in the root of the game.
If you are using DXVK then no WINEDLLOVERRIDES are needed. However, make sure that Lutris is actually using DXVK 1.10.2 - known that Lutris can deceive the user (the user will think that he is using DXVK, while Lutris was actually unable to download the selected DXVK version to the user's computer - but there were no failure notifications!!) so add DXVK_HUD=full to env var and make sure the game is using dx11 (second line) and dxvk version 1.10.2 (first line).
Also, if you are using Lutris make sure that in the "Runner options" tab the option "Enable D3D Extras" Version2 is enabled (outside Lutris just use winetricks -q d3dcompiler_47).

10 hours ago, Vakky.7241 said:

184:err:fsync:get_shm Failed to map page 63393 (offset 0xf7a1000).
0184:err:fsync:get_shm Failed to map page 63394 (offset 0xf7a2000).

since this is a problem, probably related to Fsync, need information about which kernel and wine build is being used.
as a quick alternative answer - try just disabling Fsync and switch to using Esync.

Link to comment
Share on other sites

37 minutes ago, handsomedrave.2870 said:

has anyone gotten it working with just regular wine, no playonlinux, no lutris no bottles?

now, it's a no go with just wine(staging) and no front end (bottles, lutris, etc). I installed bottles to test other wine versions/configurations, and it's mostly miss. however, if I do gt into the game with dxvk enabled, my fps doesn't go above 20.

To play GW2 in an acceptable way, the Wine build needs to contain 3 things:
1. LFH patchset (not included in Wine-Staging) or ntdll-Heap_Improvements (Disabled in Wine-Staging-6.18)
2. Esync or Fsync
3. for DXVK to work (actually for Vulkan, but dxvk depends on it anyway - so it doesn't really matter how they talk about it) after 19 Jul 2022 update you need a childwindow patch. (You don't need this patch to play with WineD3D[OpenGL])

if you don't want to use ready-made third-party builds, then you can't do without patching and compiling, since vanilla Wine (apparently) will never have any of them. And the work of DXVK should be broken after 19 July 2022 update.

Link to comment
Share on other sites

41 minutes ago, Reactor.6975 said:

Need to have only d3d9 or d3d11 (arcdps.dll) at the same time.
The author said that he completely stops supporting arcdps for dx9-mode. So just put the arcdps file (d3d11.dll) in the root of the game.
If you are using DXVK then no WINEDLLOVERRIDES are needed. However, make sure that Lutris is actually using DXVK 1.10.2 - known that Lutris can deceive the user (the user will think that he is using DXVK, while Lutris was actually unable to download the selected DXVK version to the user's computer - but there were no failure notifications!!) so add DXVK_HUD=full to env var and make sure the game is using dx11 (second line) and dxvk version 1.10.2 (first line).
Also, if you are using Lutris make sure that in the "Runner options" tab the option "Enable D3D Extras" Version2 is enabled (outside Lutris just use winetricks -q d3dcompiler_47).

since this is a problem, probably related to Fsync, need information about which kernel and wine build is being used.
as a quick alternative answer - try just disabling Fsync and switch to using Esync.

So after following your advice here i put the d3d11 files into my games root. I made sure that dxvk was set to 1.10.2 after enabling the HUD the lines i got were dxvk was indeed set to 1.10.2 and the second line was showing D3D11 FL 11_1. D3D extras were already enabled i also went back and took the winedlloverrides off but its still not working.

Link to comment
Share on other sites

1 hour ago, handsomedrave.2870 said:

has anyone gotten it working with just regular wine, no playonlinux, no lutris no bottles?

Not regular wine because, as others said, you need patches wine doesn't have yet, but I didn't need to compile it myself.

It's not guaranteed to work for everyone but luckily it does for me, because everything else failed (I usually use Lutris).

Here's what I've done:

  • Upgrade system wine to staging 7.13, it's needed for dependencies (both 32 and 64 bit even if games are 64bit only)
  • Download latest custom wine from here: https://github.com/GloriousEggroll/wine-ge-custom
  • Download latest DXVK from here: https://github.com/doitsujin/dxvk
  • Create a new 64bit prefix with wine-ge-custom binary (not the system one)
  • Install DXVK downloaded into the new prefix with "--with-d3d10" option
  • Download GW2 setup exe from their site and install it into the new prefix using wine-ge-custom binary (not the system one)
  • Edit/create a launcher using wine-ge-custom binary

It still crashes every now and then (there's a memory leak) but it's mostly playable.

Edited by Niagara.2715
  • Like 1
Link to comment
Share on other sites

53 minutes ago, Umiz.5786 said:

So after following your advice here i put the d3d11 files into my games root. I made sure that dxvk was set to 1.10.2 after enabling the HUD the lines i got were dxvk was indeed set to 1.10.2 and the second line was showing D3D11 FL 11_1. D3D extras were already enabled i also went back and took the winedlloverrides off but its still not working.

I just checked, arcdps (build 20220719.175330-446-x64) works on 131907 gw2 build.
if the option "Enable D3D Extras" is enabled and actually works as expected (no silent failures), then these changes should be enough.
Please make sure you are using the latest version of Lutris v0.5.10.1
If there really is some kind of error, it is probably caused by some deviation from the standard settings and the log from WINEDEBUG="+loaddll" would help clarify the situation.
(not desirable to go around, but as a last resort just set d3dcompiler_47 to prefix with gw2 manually)

Link to comment
Share on other sites

2 hours ago, Reactor.6975 said:

To play GW2 in an acceptable way, the Wine build needs to contain 3 things:
1. LFH patchset (not included in Wine-Staging) or ntdll-Heap_Improvements (Disabled in Wine-Staging-6.18)
2. Esync or Fsync
3. for DXVK to work (actually for Vulkan, but dxvk depends on it anyway - so it doesn't really matter how they talk about it) after 19 Jul 2022 update you need a childwindow patch. (You don't need this patch to play with WineD3D[OpenGL])

if you don't want to use ready-made third-party builds, then you can't do without patching and compiling, since vanilla Wine (apparently) will never have any of them. And the work of DXVK should be broken after 19 July 2022 update.

thanx for the reply.

 

I'm ok with installing a different flavor of wine (just stuck with wine-staging because it worked), or even use bottles to launch, I'm just hoping it can be done without steam.

Link to comment
Share on other sites

After a week I've finally got the game running on both my desktop and laptop (AMD gpu and Intel HD respectively).  took me a little longer than most due to running an old distro. It's good to be back despite the TP still being a mess.

 

2 hours ago, handsomedrave.2870 said:

thanx for the reply.

 

I'm ok with installing a different flavor of wine (just stuck with wine-staging because it worked), or even use bottles to launch, I'm just hoping it can be done without steam.

 

I don't like Steam or clients in general, so I feel you on that.  I used this build: https://github.com/GloriousEggroll/wine-ge-custom/releases/download/GE-Proton7-21/wine-lutris-GE-Proton7-21-x86_64.tar.xz  (pre-compiled Wine build)

 

From there I setup a new prefix,  added DXVK game worked fine. If for some reason you're 100% sure you did everything correctly but game is still crashing, try enabling Virtual Desktop in Wine config, this has solved the issue for me on Intel HD.

  • Like 1
  • Thanks 1
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...