Jump to content
  • Sign Up

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


Recommended Posts

  • Replies 1.1k
  • Created
  • Last Reply

Top Posters In This Topic

Good news for Nvidia GPU users, an employee from Nvidia itself commented on the D9VK github that he identified the bug and will be fixed in a future driver release.

 

In other news - To avoid torturing you from downloading the full package and rebuilding the shader cache from scratch at every update, I'm considering releasing patches for small changes. They would come in the form of unzip > overwrite > you're done.

Link to comment
Share on other sites

> @"ArmoredVehicle.2849" said:

> Good news for Nvidia GPU users, an employee from Nvidia itself commented on the D9VK github that he identified the bug and will be fixed in a future driver release.

>

> In other news - To avoid torturing you from downloading the full package and rebuilding the shader cache from scratch at every update, I'm considering releasing patches for small changes. They would come in the form of unzip > overwrite > you're done.

 

If you want you have possibility to push my github on your post for help new users ^^

When you make new version im make new installer version...

Installer have possibility to upgrade install :D

 

Best Regards

Link to comment
Share on other sites

> @"ArmoredVehicle.2849" said:

> Good news for Nvidia GPU users, an employee from Nvidia itself commented on the D9VK github that he identified the bug and will be fixed in a future driver release.

 

I couldn't find this information in the previous pages, so I ask.... what exactly is this nvidia bug about?

Link to comment
Share on other sites

> @"Skotlex.7580" said:

> > @"ArmoredVehicle.2849" said:

> > Good news for Nvidia GPU users, an employee from Nvidia itself commented on the D9VK github that he identified the bug and will be fixed in a future driver release.

>

> I couldn't find this information in the previous pages, so I ask.... what exactly is this nvidia bug about?

 

When Postprocessing is set to 'High' the sun appears as a square in some areas. Screenshot below:

![](https://user-images.githubusercontent.com/6472378/58044235-f1bb7700-7b47-11e9-9846-565dd583de17.jpg "")

 

 

> @"04D95143-7F7C-4289-8567-88D4F26CEEF9.2615" said:

> > @"ArmoredVehicle.2849" said:

> > Good news for Nvidia GPU users, an employee from Nvidia itself commented on the D9VK github that he identified the bug and will be fixed in a future driver release.

> >

> > In other news - To avoid torturing you from downloading the full package and rebuilding the shader cache from scratch at every update, I'm considering releasing patches for small changes. They would come in the form of unzip > overwrite > you're done.

>

> If you want you have possibility to push my github on your post for help new users ^^

> When you make new version im make new installer version...

> Installer have possibility to upgrade install :D

>

> Best Regards

 

I will put your link as an alternative download source :)

Link to comment
Share on other sites

> @"ArmoredVehicle.2849" said:

> > I couldn't find this information in the previous pages, so I ask.... what exactly is this nvidia bug about?

>

> When Postprocessing is set to 'High' the sun appears as a square in some areas.

 

Ah, that bug. Yes, it's something pretty minor, so I can live with that until a fixed driver is released. :D

Link to comment
Share on other sites

> @"ArmoredVehicle.2849" said:

> > I couldn't find this information in the previous pages, so I ask.... what exactly is this nvidia bug about?

>

> When Postprocessing is set to 'High' the sun appears as a square in some areas.

 

Ah, that bug. Yes, it's something pretty minor, so I can live with that until a fixed driver is released. :D

Link to comment
Share on other sites

@04D95143-7F7C-4289-8567-88D4F26CEEF9.2615

 

I tried out your installer and I can say I'm loving it already. Would you be able to expand it and add 2 more checkboxes to the GUI where for example "Checkbox 1 runs script A" and "Checkbox 2 runs script B"?

 

The reason I ask is because I've been thinking about a possible way to modify my setup scripts and merge the two packages into one (Intel/AMD + Nvidia together), then you wire up those checkboxes to the corresponding one.

 

Let me know what you think :)

Link to comment
Share on other sites

> @"Exceedinglimits.8025" said:

> hi, thanks for your work. The only thing really keeping me from switching to linux more permanently is i have no clue how to make arcdps work with d9vk or if it's even possible. Anyone got it working or know how?

 

I am working with josha to make it work.. :)

Will let know here once initial version is available

Link to comment
Share on other sites

Just a brief note ....

Long time GW2 player (6 years) and long time Linux user although casually, I've always played GW2 in Windows first on 7 then on 10, never really had much issues other than the occasional graphics driver problem till I ran Win 10 which has been hit and miss as far as stability with each update MS pushes out.

 

A couple years ago I wanted to switch totally to Linux and the distro of my choice was Fedora, at that time playing a Windows game on Linux was impossible for most, Wine was just getting started up, there was no Lutris, if you got a title to run on Wine at that point it was a big accomplishment but also a big disappointment performance-wise.

 

So I did the next best thing and that was run Windows in a KVM with hardware pass through on top of Fedora, this was also a new-ish solution but one I mastered and ran for over a year playing Windows/GW2 just like it was on bare metal....but then...lol

 

I got the bright idea to build a new system....blah blah. Without going into a lot of detail I decided to try wine/lutris on Fedora 30 to run GW2, it took a few tries to get it configured and all the dependencies figured out (most folks seem to do this on Ubuntu or some Debian variant). The last few days I've been able to play GW2 on this setup, frame rates are mostly 35-60 and the colors don't seem as vibrant but then again I'm using a Radeon 570 and not a new card from the green team..lol

 

If I could get my Logitech G13 to work I'd be all set which is my current project, gaming on Linux is one thing but without peripheral support (which should be a easy task for the devs) it going to be more of a uphill battle, hardware manufactures like Logitech and Corsair Should be working on at the least minimal driver support for their products in Linux.

 

Anyway just wanted to thank the OP and everyone who contributed to this thread it has been a big help to me. Thank You!

 

 

Link to comment
Share on other sites

First off, huge shout out to Armored Vehicle and everyone else for their great work getting GW2 to work better with Wine! I did a bit of a comparison myself to see which gave better performance in GW2: just using straight up CrossOver or Armored Vehicle's patches. I'll post more details below, but the TL;DR is that Armored Vehicle's patches DRASTICALLY IMPROVE performance. What I absolutely adore though is that Lutris apparently includes these same patches and makes it super easy to install. The only real pain-in-the-neck was doing the registry edits as described below but it really wasn't that difficult or anything.

 

My Specs:

OS: Arch Linux 64-bit

Kernel: 5.1.5-arch1-2-ARCH

RAM: 16GB DDR3

CPU: Intel i7 3770

GPU: GeForce GT 1030 2GB

Nvidia Driver Version: 430.14

CrossOver version: 18.1

 

Environment:

Used plain CrossOver 18.1 with the" __THREADED_OPTIMIZATIONS=1 -dx9single" arguments and several wine registry edits (UseGLSL = disabled, VideoMemorySize=2048 etc).

 

With Wine-staging + esync + PBA patches, I also used the "__THREADED_OPTIMIZATIONS=1" argument but did NOT use the -dx9single as I read it causes loss of FPS. I also used the same registry edits as with CrossOver.

 

Both tests were conducted at a screen resolution of 1600x900, and I disabled some of the more demanding eye-candy like Reflections, vsync etc and lowered character model limits etc. Game still looks gorgeous.

 

What was tested:

Wandered around Queensdale, also roamed Divinity's Reach.

 

Results:

 

CrossOver 18.1:

I got anywhere from 25-70 FPS in Queensdale with CrossOver, however it seemed to hover around 35-40 FPS. The framerate was not very stable though, I experienced several moments where the FPS would drop from 60 to 25 and then rebound which was jarring at times. In Divinity's Reach the FPS was anywhere from 19-50 FPS, hovering around 25-30 FPS depending on if I was near a ton of players etc. Overall not a bad experience, definitely playable but the FPS dips were noticeable.

 

Wine-staging + esync + PBA patches (installed via Lutris):

Results were hugely improved. My FPS was anywhere from 40 FPS to as high as 100 FPS (yes, you read that right!) and it tended to average around the 60-70 FPS mark in Queensdale. In Divinity's Reach I also saw drastically improved FPS, anywhere from 45-70 FPS depending on if I was in an area with lots of other players. Overall the game played buttery smooth and the FPS was very stable. I honestly forgot I was on Linux for a while, the game felt just like I was playing on Windows!!

 

Edit: for comparison, on Windows 10 in Queensdale I would average ~60-80 FPS and ~50-75 FPS in Divinity's Reach using the same video settings. Only real difference is the FPS tends to be slightly higher and more stable on Windows 10, but not by much.

 

Verdict:

Use Armored Vehicle's installer, or use Lutris. I'll be deleting my GW2 bottle within CrossOver as it's inferior to my Lutris installation. Seriously, performance with these patches is about 95% of what I would get on Win 10 which is AWESOME!! Major kudos again to Armored Vehicle and everyone else that supported this!!

Link to comment
Share on other sites

> @"04D95143-7F7C-4289-8567-88D4F26CEEF9.2615" said:

> You have possibility to update the package for https://github.com/Joshua-Ashton/d9vk/releases/tag/0.12

 

I've tested that version and unfortunattely I noticed a small performance regression compared to the current packaged build, For example if I stand in a certain spot in the fractal lobby I lose about 9fps. I'm being selective on the updates to make sure performance remains optimal.

 

Nice work on that GUI, this weekend I should have the merging of both packages done :)

 

Link to comment
Share on other sites

Kind Greetings,

 

First of all, I would like to thank you for your very helpful guide :)

 

I have been using your script for months now, I used it on two older laptops and both of them had intel CPUs (i7 4500U, and the other is a variant of i5), and the GPUs were nvidia based. I ran both on Ubuntu Mate, and my experience was very stable and positive and I didn't need any system tweaking.

 

I just built a PC a few days ago, and since I read that AMD is opensource friendly, I chose it.

System Specs:

CPU: Ryzen 5 2600 unlocked.

GPU: RX580

Ram: 16 GB 3200 GHz

Storage: Crucial m.2 SSD 1 TB

PSU Corsair CX 650M >> 650 Watts

 

I got a bit confused in terms of which drivers to use, but I tried both. I ended up switching though from Ubuntu Mate to Solus. In Solus though, I had to tweak things in the system and the settings to get the game to run.

 

I managed to get it to run smoothly for a day. But after that, it suddenly stopped working, and I am not sure whether I changed anything unknowingly or not. I am considering changing Distros again. But before that, I will continue to try different things here and there :) ,, if there is anything I can do to help please let me know. While my linux skills are still a work in progress, I am serious about improving myself in it, and I would like to help people like you at least by sharing results.

 

Thanks and cheers!

 

P.S. When I ran debug.sh, this is the text that was registered in the terminal

 

000b:fixme:winediag:start_process Wine Staging 4.6 is a testing version containing experimental patches.

000b:fixme:winediag:start_process Please mention your exact version when filing bug reports on winehq.org.

0009:fixme:heap:RtlSetHeapInformation 0x30000 0 0x25fd00 4 stub

0009:fixme:heap:RtlSetHeapInformation 0x380000 0 0x25fce0 4 stub

0009:fixme:heap:RtlSetHeapInformation 0x380000 1 (nil) 0 stub

002a:fixme:ver:GetCurrentPackageId (0xc3fdd0 (nil)): stub

002a:fixme:thread:SetThreadStackGuarantee (0xc3fdd0): stub

0009:err:winediag:wined3d_dll_init Setting multithreaded command stream to 0x1.

ATTENTION: default value of option vblank_mode overridden by environment.

ATTENTION: default value of option mesa_glthread overridden by environment.

0009:fixme:gameux:GameExplorerImpl_VerifyAccess (0x1906f20, L"C:\\GW2\\GW2.exe", 0x25f170)

0040:fixme:msctf:ThreadMgrSource_AdviseSink (0x1a4d800) Unhandled Sink: {ea1ea136-19df-11d7-a6d2-00065b84435c}

0040:fixme:imm:ImmDisableTextFrameService Stub

0040:fixme:ntdll:NtQueryInformationJobObject stub: 0x264 2 0x333dbb0 64 (nil)

0040:fixme:ntdll:NtQueryInformationJobObject stub: 0x264 9 0x333dbf0 144 (nil)

0047:fixme:heap:RtlSetHeapInformation (nil) 1 (nil) 0 stub

0047:fixme:process:SetProcessDEPPolicy (3): stub

0047:fixme:heap:RtlSetHeapInformation (nil) 1 (nil) 0 stub

0047:fixme:nls:GetThreadPreferredUILanguages 00000038, 0x34f674, (nil) 0x34f670

0047:fixme:nls:get_dummy_preferred_ui_language (0x38 0x34f674 (nil) 0x34f670) returning a dummy value (current locale)

0047:fixme:nls:GetThreadPreferredUILanguages 00000038, 0x34f674, 0x2ae4b70 0x34f670

0047:fixme:nls:get_dummy_preferred_ui_language (0x38 0x34f674 0x2ae4b70 0x34f670) returning a dummy value (current locale)

0047:fixme:winsock:WSALookupServiceBeginW (0x34f6e0 0x00000ff0 0x34f728) Stub!

004d:fixme:esync:__esync_wait_objects Can't wait on esync and server objects at the same time!

0047:fixme:iphlpapi:NotifyAddrChange (Handle 0x34f5b8, overlapped 0x2ae5888): stub

0047:fixme:win:RegisterDeviceNotificationW (hwnd=0x1007e, filter=0x34f798,flags=0x00000000) returns a fake device notification handle!

0047:fixme:win:RegisterDeviceNotificationW (hwnd=0x1007e, filter=0x34f798,flags=0x00000000) returns a fake device notification handle!

0056:fixme:ntdll:EtwRegisterTraceGuidsW (0x495320, 0x24ef248, {3dada31d-19ef-4dc1-b345-037927193422}, 1, 0x24a4f04, (null), (null), 0x24ef260): stub

0056:fixme:ntdll:EtwRegisterTraceGuidsW register trace class {00000000-0000-0000-0000-000000000000}

0047:fixme:winsock:WSALookupServiceBeginW (0x34dbf0 0x00000ff0 0x34dc38) Stub!

0061:fixme:heap:RtlSetHeapInformation (nil) 1 (nil) 0 stub

0061:fixme:process:SetProcessDEPPolicy (3): stub

0061:fixme:heap:RtlSetHeapInformation (nil) 1 (nil) 0 stub

0061:fixme:ntdll:EtwRegisterTraceGuidsW (0x495320, 0x24ef248, {3dada31d-19ef-4dc1-b345-037927193422}, 1, 0x24a4f04, (null), (null), 0x24ef260): stub

0061:fixme:ntdll:EtwRegisterTraceGuidsW register trace class {00000000-0000-0000-0000-000000000000}

0061:fixme:gdi:GdiInitializeLanguagePack stub

0058:fixme:winsock:WSALookupServiceBeginW (0x3dcf564 0x00000ff0 0x3dcf5ac) Stub!

0058:fixme:winsock:WSALookupServiceBeginW (0x3dcf564 0x00000ff0 0x3dcf5ac) Stub!

Terminated

 

Link to comment
Share on other sites

> @"VAHNeunzehnsechundsiebzig.3618" said:

> there is nothing interesting in that output. What driver are you actually using?

 

Hi, thanks for your prompt interaction :)

This is what I got under graphics using **inxi -F**

Graphics:

Device-1: AMD Ellesmere [Radeon RX 470/480/570/570X/580/580X/590]

driver: amdgpu v: kernel

Display: x11 server: X.Org 1.20.3 driver: amdgpu,ati

unloaded: fbdev,modesetting,vesa resolution: 1920x1080~60Hz

OpenGL: renderer: Radeon RX 580 Series (POLARIS10 DRM 3.27.0

5.0.16-116.current LLVM 7.0.0)

v: **4.5 Mesa 19.0.4**

 

I just remembered that I also used **taskset -c 0-5 GW2.exe** to run it using only half of my threads. I will look up how to reverse it online and check. Maybe that was the change that messed it up.

 

Thanks!

 

Link to comment
Share on other sites

As already mentioned by @"VAHNeunzehnsechundsiebzig.3618" , the terminal log looks clean. Furthermore the "taskset 0-5" doesn't make the game crash as I use the same command everyday. My only suspicion is that you may not have the Vulkan library installed, I'm not familiar with Solus, however on Ubuntu family this can be found as "libvulkan1".

 

-----

 

June 4th news:

 

Good news for Nvidia GPU users: Consider upgrading to the latest beta driver version 418.52.10 this carries with it a fix for the "square-shaped" sun in some areas when Postprocessing is set to "High". There is no need to do anything else aside from that :)

 

The game can now be considered entirely glitch free on Linux regardless of your GPU vendor.

Link to comment
Share on other sites

> @"ArmoredVehicle.2849" said:

> As already mentioned by @"VAHNeunzehnsechundsiebzig.3618" , the terminal log looks clean. Furthermore the "taskset 0-5" doesn't make the game crash as I use the same command everyday. My only suspicion is that you may not have the Vulkan library installed, I'm not familiar with Solus, however on Ubuntu family this can be found as "libvulkan1".

>

> -----

>

> June 4th news:

>

> Good news for Nvidia GPU users: Consider upgrading to the latest beta driver version 418.52.10 this carries with it a fix for the "square-shaped" sun in some areas when Postprocessing is set to "High". There is no need to do anything else aside from that :)

>

> The game can now be considered entirely glitch free on Linux regardless of your GPU vendor.

 

Hi,

 

I tried to look things further in Solus but I found that there is a limitation in terms of educational resources for new comers. I tried Ubuntu Mate, but it was not a very smooth experience for my setup although it worked fine for my older laptops :).

 

My last move was to try Manjaro (I was hesitant at first because I had some issues with it on my older laptops related to wifi drivers). And to my surprise, Manjaro worked amazingly well out of the box. When I updated the system and downloaded all required libraries it worked even better :)

 

Thanks for all the help so far :) I will try to check out the post between time to time. Let me know if there is anything I can help with.

 

Cheers!

Link to comment
Share on other sites

> @"draconicrose.6213" said:

> [https://imgur.com/q5S4IpO](https://imgur.com/q5S4IpO "https://imgur.com/q5S4IpO")

> I have an issue where parts of the skyscale are pitch black. Any idea what kind of settings might be causing this? I'd like to have a normal skyscale while playing on my normal settings.

 

Can you post some details about your setup, mainly: GPU type/model and driver version and a screenshot of your ingame settings. Also, if you open up the mounts panel and go to the Skyscale section, does it also appear like that in the preview Window?

 

I tried various graphics settings but none of them could replicate it, this is on a GTX1060, drivers version 318.52.10.

I don't have the mount yet but I can preview it and this is how it appears for me: ![](https://i.imgur.com/yllryfh.jpg "")

 

 

 

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