Jump to content
  • Sign Up

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


Recommended Posts

20 hours ago, Hell Nirvana.9045 said:

Wine-staging is currently at 6.21. I haven't followed Wine development much lately, but has there been any patches that might benefit GW2?

 

For GW2 none that I'm aware of.  My eye is currently on the upcoming futex2 feature in Kernel 5.16 + Wine related patches. It might replace esync (and hopefully perform better too).

  • Like 1
Link to comment
Share on other sites

On 10/18/2021 at 4:19 PM, teru.2946 said:

When running wine (both vanilla and staging) version 6.18-6.19 I have really bad performance in bigger zergs, be it wvw, metas or even in crowded cities, fps chopped down by half and some stuttering. No issues when running wine<=6.17, both DX9 and 11 with dxvk-1.9.2.

Curious if there was some regression or it's something wrong on my end. Anyone else running latest vanilla/staging noticed any performance degradation?

Will try proton/GE later, sticking with staging-6.17 for now.

I also have problems when in WvW or big metas. It feels like the game is delaying key press, like my character keeps walking after releasing any WASD key for about 2 sec, but it still reacts perfectly to mouse movements (I can turn the camera and my character will keep walking and turn). I think the delay is even longer when arcdps with wvw encounter reports are active, so I disabled it, but might be placebo. I don't remember this behavior in a previous version, but I was not playing much on Linux at the time.

I have an Intel I7-3770k and this gives an error in terminal regarding Vulkan support. I have a nVidia GTX 1660 Super, so the video card supports Vulkan though. Game is launching fine, except issue above which happens even with the Legacy package.

 

Also, could anyone confirm that they are not able to Jump-Dodge? It's easy to do on Windows, but I'm not managing it on Linux. What could cause this issue? Is there a workaround?

Link to comment
Share on other sites

1 hour ago, ManiacMika.9851 said:

It feels like the game is delaying key press, like my character keeps walking after releasing any WASD key for about 2 sec, but it still reacts perfectly to mouse movements

Is your system using ibus by default? That one likes to fail relaying properly timed keypresses to wine for me all the time...

  • Thanks 1
Link to comment
Share on other sites

1 hour ago, Ooops.8694 said:

Is your system using ibus by default? That one likes to fail relaying properly timed keypresses to wine for me all the time...

That was it! Dodge-jump is now easy to do and I could do some Octovine Meta without any loss of control. Thanks a lot!

For reference, I'm using Pop!_OS 21.04 and to temporarily disable IBus I used the following command:

killall ibus-daemon

I'll have to learn a bit more about this IBus as I don't really know how critical it is. But using Lutris to launch the play.sh I can set a pre-launch script and a post-exit script if needed.

 

Link to comment
Share on other sites

On 11/15/2021 at 5:46 AM, ArmoredVehicle.2849 said:

 

For GW2 none that I'm aware of.  My eye is currently on the upcoming futex2 feature in Kernel 5.16 + Wine related patches. It might replace esync (and hopefully perform better too).

You can try Proton Experimental now with the new Futex2 patches already applied 😃😃😃-(Proton fsync patches updated to futex_waitv version https://github.com/GloriousEggroll/proton-ge-custom/releases/tag/6.21-GE-2

Edited by Midnight.9657
Link to comment
Share on other sites

@ArmoredVehicle.2849

 

Heya! Recently switched to linux and im trying to figure this all out thanks in advance for you guide!

Im trying to extract the folder that you give so that i can run the setup but to no avail.

When i try to extract the file the output is not a folder like i see in your video, its a .tar file (not tar xz) if i try then to extract that file it says archive type not supported.

Any ideas ?

Link to comment
Share on other sites

On 11/20/2021 at 11:40 AM, Barce.5136 said:

When i try to extract the file the output is not a folder like i see in your video, its a .tar file (not tar xz) if i try then to extract that file it says archive type not supported.

I think it's hard to know exactly what happened on your system without knowing which OS or file manager you are using.

However, when the graphical interface is failing, the console interface can come to the rescue and you can try to extract it with this alternative method.
Open a Terminal and go to the folder where you downloaded the archive. For example:

cd ~/Downloads

Then we can use the command tar to extract the file:

tar -xvf wine_gw2_2.3.2_nvidia.tar.xz

x stands for eXtract;
v for Verbose (makes it show you the details);
f for pointing at the targeted File.

You should get a folder called GW2, and it should be like the rest of the video.

Link to comment
Share on other sites

On 11/27/2021 at 1:12 AM, huuof.9231 said:

Any idea why arcdps does not work with proton-ge-6.21?

Works fine with proton-5.0-10. Other protons higher than that I cannot login in the game.

What else was changed for you?

Last time I could use arcDPS I was using wine-6.10-ish(not proton, wine staging), dx9 gw2 render, X11 session with plasma.

Now I'm on wine6.22, dx11 and wayland. And after I start gw2, it turns black screen with visible UI and arcDPS settings window. Only log out button works.  Still I could login, not enter the game though.

Link to comment
Share on other sites

/wiki command doesn't seem to work after KDE Plasma got updated to 5.23.4 🤔

Say I wanna open the Guild Bounty wiki page. I type "/wiki gb" in the chat box. Normally this would open the wiki page in my browser. Now it seems to be working on it for a few seconds, and then I get a notice that a file has been copied to "~/.cache/kioexec/krun/103869_0/unnamed", which appears to be the wiki page in HTML...

P.S. Clicking links in the launcher has similar results.

 

Edit: I think I figured it out. Winebrowser had set itself as the default application for HTML files... 😑

Edited by Hell Nirvana.9045
Link to comment
Share on other sites

  • 2 weeks later...
On 11/2/2021 at 8:41 PM, ArmoredVehicle.2849 said:

 

Hi, I don't know how the game performs in Lutris without Vulkan. My package is portable, so you can install it in a separate folder and compare the performance between the two.

I got the game to work on my laptop also today using that OpenGL version you have at bottom here. Not super good performance, but playable.

Link to comment
Share on other sites

Hello I just wanted to say thank you because, even though I set up GW2 to run through lutris, since I am too lazy to set it up to run from my previous installation of gw2 in windows with your setup, I got the game working and taking into account that my pc is potato the game is working wonders.

So, again thanks a lot for making the script and making sure it works after all this time.

Link to comment
Share on other sites

On 12/16/2021 at 5:24 AM, draconicrose.6213 said:

Any word on getting Burrito to work with this package?

It can and does work but getting it to stay on top is funky at best. Not an issue with this package, more of an issue in terms of DE and managing to overlay the Burrito window properly.

  • Sad 1
Link to comment
Share on other sites

On 12/19/2021 at 7:42 PM, pixtrix.9347 said:

It can and does work but getting it to stay on top is funky at best. Not an issue with this package, more of an issue in terms of DE and managing to overlay the Burrito window properly.

Sad to hear that. How would one go about getting to work? The instructions on the website are for Lutris.

Link to comment
Share on other sites

Short answer: launch the windows executable with the same parameters as the game executable and launch the linux executable normally

 

Long answer: in GW2 folder, go into the bin folder, create a copy of "user_run" and give it a name (something like "user_run_b")

copy burrito_link.exe to the same folder as GW2.exe and in "user_run_b" change the last line to : "../../../bin/wine64" ./burrito_link.exe

make sure "user_run_b" is executable (chmod +x or via a gui file manager)

you can either run that script or create another play.sh one that launches it.

Now to run it, you need to run the "user_run_b" script to start the link part of burrito, the game and the linux binary that come with burrito (order shouldn't matter but in some cases the game might fail to run if the link is started before the game)

 

There probably is a better way of doing things but since i don't use it often enough i never bothered.

 

At this stage everything should be working and you should be able to load your track from the burrito menu. Getting it to overlay properly is going to take some trial and error and it depends on the desktop environment. You need compositing to be enabled and the game to be in either windowed fullscreen or windowed. Also, the burrito app needs to be on top of the game. For me the most consistent way of achieving this was to put the game in windowed fullscreen and set the game window to be below others in kde . It's doable on xfce and gnome too but as i said, trial and error.

Edited by pixtrix.9347
Missing word
  • Thanks 1
Link to comment
Share on other sites

On 11/29/2021 at 2:35 PM, wshaman.7453 said:

What else was changed for you?

Last time I could use arcDPS I was using wine-6.10-ish(not proton, wine staging), dx9 gw2 render, X11 session with plasma.

Now I'm on wine6.22, dx11 and wayland. And after I start gw2, it turns black screen with visible UI and arcDPS settings window. Only log out button works.  Still I could login, not enter the game though.

 

This has a fix. It took me a while to find it. Apparently it has something to do with dxvk, you are supposed to create a file called "dxvk.conf" in your main gw2 folder and inside you need to type

Quote

dxgi.deferSurfaceCreation = True

 

This fixed arcdps under dx11 blackscreen bug for me.

Link to comment
Share on other sites

Anybody using reshade by calling it dxgi.dll?

 

This used to work for me and allowed reshade to work both on dx9 and dx11 without changing anything. Unfortunately about a month ago this stopped working. I can still use reshade if I call it d3d11.dll or d3d9.dll but this prevents me from using arcdps under dx9 since I can't chainload them both together.

 

Looking deeper into it I get this dxgi.log when I try to use reshade as dxgi

Quote

10:52:01:038 [00336] | INFO  | Initializing crosire's ReShade version '4.9.1.1003' (64-bit) built on '2021-01-09 21:12:36' loaded from "Z:\home\ndranc\Games\Guild Wars 2\dxgi.dll" into "Z:\home\ndranc\Games\Guild Wars 2\Gw2-64.exe" ...
10:52:01:053 [00336] | INFO  | Registering hooks for "user32.dll" ...
10:52:01:053 [00336] | INFO  | > Libraries loaded.
10:52:01:054 [00336] | INFO  | > Found 14 match(es). Installing ...
10:52:01:061 [00336] | INFO  | Registering hooks for "ws2_32.dll" ...
10:52:01:061 [00336] | INFO  | > Libraries loaded.
10:52:01:061 [00336] | INFO  | > Found 8 match(es). Installing ...
10:52:01:068 [00336] | INFO  | Registering hooks for "C:\windows\system32\d2d1.dll" ...
10:52:01:068 [00336] | INFO  | > Delayed.
10:52:01:068 [00336] | INFO  | Registering hooks for "C:\windows\system32\d3d9.dll" ...
10:52:01:068 [00336] | INFO  | > Libraries loaded.
10:52:01:068 [00336] | INFO  | > Found 9 match(es). Installing ...
10:52:01:068 [00336] | ERROR | Failed to install hook for D3DPERF_EndEvent with status code 8!
10:52:01:068 [00336] | ERROR | Failed to install hook for D3DPERF_GetStatus with status code 8!
10:52:01:068 [00336] | ERROR | Failed to install hook for D3DPERF_QueryRepeatFrame with status code 8!
10:52:01:068 [00336] | ERROR | Failed to install hook for D3DPERF_SetMarker with status code 8!
10:52:01:068 [00336] | ERROR | Failed to install hook for D3DPERF_SetOptions with status code 8!
10:52:01:068 [00336] | ERROR | Failed to install hook for D3DPERF_SetRegion with status code 8!
10:52:01:074 [00336] | INFO  | Registering hooks for "C:\windows\system32\d3d10.dll" ...
10:52:01:074 [00336] | INFO  | > Delayed.
10:52:01:074 [00336] | INFO  | Registering hooks for "C:\windows\system32\d3d10_1.dll" ...
10:52:01:074 [00336] | INFO  | > Delayed.
10:52:01:074 [00336] | INFO  | Registering hooks for "C:\windows\system32\d3d11.dll" ...
10:52:01:075 [00336] | INFO  | > Delayed.
10:52:01:075 [00336] | INFO  | Registering hooks for "C:\windows\system32\d3d12.dll" ...
10:52:01:075 [00336] | INFO  | > Delayed.
10:52:01:075 [00336] | INFO  | Registering hooks for "C:\windows\system32\dxgi.dll" ...
10:52:01:075 [00336] | INFO  | > Delayed until first call to an exported function.
10:52:01:075 [00336] | INFO  | Registering hooks for "C:\windows\system32\opengl32.dll" ...
10:52:01:075 [00336] | INFO  | > Libraries loaded.
10:52:01:075 [00336] | INFO  | > Found 359 match(es). Installing ...
10:52:01:084 [00336] | INFO  | Initialized.
10:52:01:084 [00336] | INFO  | Redirecting CreateDXGIFactory1(riid = {770AAE78-F26F-4DBA-A829-253C83D1B387}, ppFactory = 000000000AD7F378) ...
10:52:01:085 [00336] | INFO  | Installing export hooks for "C:\windows\system32\dxgi.dll" ...
10:52:01:085 [00336] | INFO  | > Found 5 match(es). Installing ...
10:52:01:092 [00336] | INFO  | Exiting ...
10:52:01:092 [00336] | INFO  | Uninstalling 397 hook(s) ...
10:52:02:151 [00336] | INFO  | Finished exiting.

 

Any insight on what the problem could be?

Link to comment
Share on other sites

6 hours ago, NdranC.5107 said:

Anybody using reshade by calling it dxgi.dll?

I don't use reshade on linux, but I do use an alternative called vkBasalt >> https://github.com/DadSchoorse/vkBasalt

I recall someone posted a very nice configuration file for gw2 somewhere in this post. 

 

If you prefer dealing with GUI, https://github.com/benjamimgois/goverlay

GOverlay is an application that helps in configuring vkBasalt as well as some other gaming related tools on linux. 

Link to comment
Share on other sites

On 12/30/2021 at 12:45 PM, NdranC.5107 said:

 

Yeah I've heard about it, but force of habit has kept me using reshade. I might give it a shot. Thanks.

Regardless I still would like to know what the problem with reshade as dxgi.dll is, if anybody has any insight.

To be honest by the looks of it none of the forks are still in development. The last one recommends using gshade (this one seems to have a linux installer too) but at this stage you will probably be better off using vkbasalt.

 

 

Link to comment
Share on other sites

Hey there, tried installing this, step by step how you did it and running play.sh just says esync: up and running. and does nothing else.

I'm running on Ubuntu 20.04.03 LTS and my GPU is Mesa Intel® UHD Graphics 620 (KBL GT2)

 

This is my debug.sh output:

❯ ./debug.sh
esync: up and running.
002c:fixme:winediag:LdrInitializeThunk wine-staging 6.10 is a testing version containing experimental patches.
002c:fixme:winediag:LdrInitializeThunk Please mention your exact version when filing bug reports on winehq.org.
0034:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
0034:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
0064:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
0064:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
0068:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
0068:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
0070:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
0070:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
00a4:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
00a4:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
002c:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
002c:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
0024:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
0024:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
0100:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
0100:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
0108:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
0108:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
0108:fixme:heap:RtlSetHeapInformation 0000000000120000 0 000000000011FD30 4 stub
0108:fixme:heap:RtlSetHeapInformation 00000000013B0000 0 000000000011FD10 4 stub
0108:fixme:heap:RtlSetHeapInformation 00000000013B0000 1 0000000000000000 0 stub
0108:fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_PERFORMANCE_INFORMATION
0108:err:seh:RtlUnwindEx invalid frame 0000000000120008 (0000000000022000-0000000000120000)
0108:err:seh:call_stack_handlers invalid frame 0000000000120008 (0000000000022000-0000000000120000)
0108:err:seh:NtRaiseException Exception frame is not in stack limits => unable to dispatch exception.
 

Thanks a lot.

Link to comment
Share on other sites

On 1/6/2022 at 4:58 PM, eleven.2351 said:

Hey there, tried installing this, step by step how you did it and running play.sh just says esync: up and running. and does nothing else.

I'm running on Ubuntu 20.04.03 LTS and my GPU is Mesa Intel® UHD Graphics 620 (KBL GT2)

 

This is my debug.sh output:

❯ ./debug.sh
esync: up and running.
002c:fixme:winediag:LdrInitializeThunk wine-staging 6.10 is a testing version containing experimental patches.
002c:fixme:winediag:LdrInitializeThunk Please mention your exact version when filing bug reports on winehq.org.
0034:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
0034:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
0064:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
0064:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
0068:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
0068:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
0070:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
0070:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
00a4:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
00a4:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
002c:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
002c:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
0024:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
0024:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
0100:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
0100:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
0108:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
0108:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
0108:fixme:heap:RtlSetHeapInformation 0000000000120000 0 000000000011FD30 4 stub
0108:fixme:heap:RtlSetHeapInformation 00000000013B0000 0 000000000011FD10 4 stub
0108:fixme:heap:RtlSetHeapInformation 00000000013B0000 1 0000000000000000 0 stub
0108:fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_PERFORMANCE_INFORMATION
0108:err:seh:RtlUnwindEx invalid frame 0000000000120008 (0000000000022000-0000000000120000)
0108:err:seh:call_stack_handlers invalid frame 0000000000120008 (0000000000022000-0000000000120000)
0108:err:seh:NtRaiseException Exception frame is not in stack limits => unable to dispatch exception.
 

Thanks a lot.

 

Hello,

Can you try to run the game in a Virtual Desktop mode and see if that helps? You can do this by running the 'wine_settings.sh' file > then go to 'Graphics' tab and tick the 'Emulate a virtual desktop' option (pick your desired resolution).

 

 

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