Jump to content
  • Sign Up

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


Recommended Posts

@ArmoredVehicle.2849 said:

@Draknil.1860 said:edit #3: I got my fonts now as I had a bad ppa that left me with broken deps. sudo apt-get --fix-missing install fixed me right up and with the inclusion of the 32bit libfreetype (I only had the 64bit version listed) it came up properly.

Thanks for confirming that this package actually solves the issue, I will add it to troubleshooting list :)

@Draknil.1860 said:I guess I will just use Windows to play the game, darn it, because 8-15fps in LA I can't handle that and that is with best performance selected. Normally I get 50-60fps (capped).

Can you please post your system specs? I'm finding it odd that you're getting such low fps. On one of my low systems with a G4560 and GT1030 the game is very playable with a mix of medium-high settings at 720p, in LA it's able to reach 35-50 depending on the area and 50+ in most other areas (outside of large group events).

I was at the bank in LA when I logged in then logged out and back in via Windows. I am on a Nvme+SSD, Ryzen 5 1600, 16 gigs of ram, 1060 GTX 6GB.

edit: Let me add this is 1920x1200 in Windows and Linux and on Windows I have a few settings cranked up but in Linux those 8-15fps was at max performance mode so Windows was actually way better in FPS and visual quality at those FPS.

Only scenario I can think of that would produce such results would be when using the open source Nvidia drivers.

Nope, I used the official one from Nvidia although I have given up on GW2 in Linux as it just can't be done at a satisfactory level on my system.

Link to comment
Share on other sites

Hello!I've been trying to get this to work, but it keeps crashing when I click play in the login window. To be honest with you, I'm not an experienced Linux user at all so I don't really know what I'm doing, but I installed the libraries mentioned as well as changed the maximum file limits (and the ulimit commands do show the new numbers). Here's the debug log (sorry that it's so long, I'm not really sure which parts are relevant):

000b:fixme:winediag:start_process Wine Staging 3.15 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:err:winediag:SECUR32_initNTLMSP ntlm_auth was not found or is outdated. Make sure that ntlm_auth >= 3.0.25 is in your path. Usually, you can find it in the winbind package of your distribution.0009:fixme:heap:RtlSetHeapInformation 0x30000 0 0x25fd00 4 stub0009:fixme:heap:RtlSetHeapInformation 0x380000 0 0x25fce0 4 stub0009:fixme:heap:RtlSetHeapInformation 0x380000 1 (nil) 0 stub002b:fixme:ver:GetCurrentPackageId (0xc3fdd0 (nil)): stub002b:fixme:thread:SetThreadStackGuarantee (0xc3fdd0): stub0009:err:winediag:wined3d_dll_init Setting multithreaded command stream to 0x1.0009:err:winediag:wined3d_dll_init The GLSL shader backend has been disabled. You get to keep all the pieces if it breaks.0009:err:winediag:wined3d_dll_init Setting multithreaded command stream to 0x1.0009:err:winediag:wined3d_dll_init The GLSL shader backend has been disabled. You get to keep all the pieces if it breaks.002f:fixme:d3d_perf:wined3d_buffer_heap_create PBA: using GL_CLIENT_STORAGE_BIT quirk (mesa)002f:fixme:d3d_perf:wined3d_buffer_heap_create PBA: using GL_CLIENT_STORAGE_BIT quirk (mesa)002f:fixme:d3d:create_buffer_heap Initialized PBA (geo_heap_size: 536870912, cb_heap_size: 134217728, ub_align: 256)0009:fixme:gameux:GameExplorerImpl_VerifyAccess (0x13839e0, L"C:\GW2\GW2.exe", 0x25f170)003a:fixme:msctf:ThreadMgrSource_AdviseSink (0x14cb010) Unhandled Sink: {ea1ea136-19df-11d7-a6d2-00065b84435c}003a:fixme:imm:ImmDisableTextFrameService Stub003a:fixme:d3d9:D3DPERF_GetStatus (void) : stub003a:fixme:ntdll:NtQueryInformationJobObject stub: 0x218 2 0x264dbb0 64 (nil)003a:fixme:ntdll:NtQueryInformationJobObject stub: 0x218 9 0x264dbf0 144 (nil)0041:err:winediag:SECUR32_initNTLMSP ntlm_auth was not found or is outdated. Make sure that ntlm_auth >= 3.0.25 is in your path. Usually, you can find it in the winbind package of your distribution.0041:fixme:heap:RtlSetHeapInformation (nil) 1 (nil) 0 stub0041:fixme:process:SetProcessDEPPolicy (3): stub0041:fixme:heap:RtlSetHeapInformation (nil) 1 (nil) 0 stub0041:fixme:nls:GetThreadPreferredUILanguages 00000038, 0x35f674, (nil) 0x35f6700041:fixme:nls:get_dummy_preferred_ui_language (0x38 0x35f674 (nil) 0x35f670) returning a dummy value (current locale)0041:fixme:nls:GetThreadPreferredUILanguages 00000038, 0x35f674, 0x2b05ba0 0x35f6700041:fixme:nls:get_dummy_preferred_ui_language (0x38 0x35f674 0x2b05ba0 0x35f670) returning a dummy value (current locale)0041:fixme:winsock:WSALookupServiceBeginW (0x35f6e0 0x00000ff0 0x35f728) Stub!0041:fixme:iphlpapi:NotifyAddrChange (Handle 0x35f5b8, overlapped 0x2b0cd08): stub0048:fixme:esync:__esync_wait_objects Can't wait on esync and server objects at the same time!0041:fixme:win:RegisterDeviceNotificationW (hwnd=0x1007c, filter=0x35f798,flags=0x00000000) returns a fake device notification handle!0041:fixme:win:RegisterDeviceNotificationW (hwnd=0x1007c, filter=0x35f798,flags=0x00000000) returns a fake device notification handle!0051:fixme:ntdll:EtwRegisterTraceGuidsW (0x495320, 0x24ef248, {3dada31d-19ef-4dc1-b345-037927193422}, 1, 0x24a4f04, (null), (null), 0x24ef260): stub0051:fixme:ntdll:EtwRegisterTraceGuidsW register trace class {00000000-0000-0000-0000-000000000000}0041:fixme:winsock:WSALookupServiceBeginW (0x35dbf0 0x00000ff0 0x35dc38) Stub!005b:err:winediag:SECUR32_initNTLMSP ntlm_auth was not found or is outdated. Make sure that ntlm_auth >= 3.0.25 is in your path. Usually, you can find it in the winbind package of your distribution.005b:fixme:heap:RtlSetHeapInformation (nil) 1 (nil) 0 stub005b:fixme:process:SetProcessDEPPolicy (3): stub005b:fixme:heap:RtlSetHeapInformation (nil) 1 (nil) 0 stub005b:fixme:ntdll:EtwRegisterTraceGuidsW (0x495320, 0x24ef248, {3dada31d-19ef-4dc1-b345-037927193422}, 1, 0x24a4f04, (null), (null), 0x24ef260): stub005b:fixme:ntdll:EtwRegisterTraceGuidsW register trace class {00000000-0000-0000-0000-000000000000}005b:fixme:gdi:GdiInitializeLanguagePack stub0053:fixme:winsock:WSALookupServiceBeginW (0x3eff564 0x00000ff0 0x3eff5ac) Stub!0057:fixme:ntdll:NtLockFile I/O completion on lock not implemented yet0053:fixme:winsock:WSALookupServiceBeginW (0x3eff564 0x00000ff0 0x3eff5ac) Stub!0041:fixme:win:UnregisterDeviceNotification (handle=0xcafeaffe), STUB!0041:fixme:win:UnregisterDeviceNotification (handle=0xcafeaffe), STUB!0041:fixme:iphlpapi:CancelIPChangeNotify (overlapped 0x2b0cd08): stub0041:fixme:ntdll:EtwUnregisterTraceGuids deadbeef: stub003a:fixme:nvapi:unimplemented_stub function 0x2dc95125 is unimplemented!003a:fixme:wbemprox:wbem_services_CreateInstanceEnum unsupported flags 0x00000030003a:fixme:wbemprox:enum_class_object_Next timeout not supported003a:fixme:ddraw:ddraw7_Initialize Ignoring guid {aeb2cdd4-6e41-43ea-941c-8361cc760781}.007a:fixme:d3d_perf:wined3d_buffer_heap_create PBA: using GL_CLIENT_STORAGE_BIT quirk (mesa)007a:fixme:d3d_perf:wined3d_buffer_heap_create PBA: using GL_CLIENT_STORAGE_BIT quirk (mesa)007a:fixme:d3d:create_buffer_heap Initialized PBA (geo_heap_size: 536870912, cb_heap_size: 134217728, ub_align: 256)003a:err:winediag:MIDIMAP_drvOpen No software synthesizer midi port found, Midi sound output probably won't work.003a:fixme:d3d:debug_d3dformat Unrecognized 0x434f5441 (as fourcc: ATOC) WINED3DFORMAT!003a:fixme:d3d:wined3d_get_format Can't find format unrecognized (0x434f5441) in the format lookup table.003a:fixme:msctf:ThreadMgrSource_AdviseSink (0x14cb010) Unhandled Sink: {ea1ea136-19df-11d7-a6d2-00065b84435c}003a:fixme:imm:ImmDisableTextFrameService Stub003a:fixme:wtsapi:WTSRegisterSessionNotification Stub 0x50064 0x00000000003a:fixme:nvapi:unimplemented_stub function 0xdc6dc8d3 is unimplemented!003a:fixme:nvapi:unimplemented_stub function 0xbe7692ec is unimplemented!007f:fixme:d3d_perf:wined3d_buffer_heap_create PBA: using GL_CLIENT_STORAGE_BIT quirk (mesa)007f:fixme:d3d_perf:wined3d_buffer_heap_create PBA: using GL_CLIENT_STORAGE_BIT quirk (mesa)007f:fixme:d3d:create_buffer_heap Initialized PBA (geo_heap_size: 536870912, cb_heap_size: 134217728, ub_align: 256)003a:fixme:nvapi:unimplemented_stub function 0xdc6dc8d3 is unimplemented!007f:fixme:d3d_perf:wined3d_buffer_heap_create PBA: using GL_CLIENT_STORAGE_BIT quirk (mesa)007f:fixme:d3d_perf:wined3d_buffer_heap_create PBA: using GL_CLIENT_STORAGE_BIT quirk (mesa)007f:fixme:d3d:create_buffer_heap Initialized PBA (geo_heap_size: 536870912, cb_heap_size: 134217728, ub_align: 256)

Any idea what could be wrong? Thanks!

Link to comment
Share on other sites

@Villakarvarousku.7160 said:Hello!I've been trying to get this to work, but it keeps crashing when I click play in the login window. To be honest with you, I'm not an experienced Linux user at all so I don't really know what I'm doing, but I installed the libraries mentioned as well as changed the maximum file limits (and the ulimit commands do show the new numbers). Here's the debug log (sorry that it's so long, I'm not really sure which parts are relevant):

Can you please share some info about your system, mainly distro version (Ubuntu 18.04, Mint 19...etc), GPU type and driver version. I get similar messages if I run the game in terminal too but it works fine, so far your log looks fine.

Link to comment
Share on other sites

@ArmoredVehicle.2849 said:Can you please share some info about your system, mainly distro version (Ubuntu 18.04, Mint 19...etc), GPU type and driver version. I get similar messages if I run the game in terminal too but it works fine, so far your log looks fine.

Ha, ok, so... I went to check the driver version, and turns out it was using Nouveau instead of the Nvidia one by default. I feel pretty silly, but it seems to work great now. Thank you very much!

Link to comment
Share on other sites

@Villakarvarousku.7160 said:

@ArmoredVehicle.2849 said:Can you please share some info about your system, mainly distro version (Ubuntu 18.04, Mint 19...etc), GPU type and driver version. I get similar messages if I run the game in terminal too but it works fine, so far your log looks fine.

Ha, ok, so... I went to check the driver version, and turns out it was using Nouveau instead of the Nvidia one by default. I feel pretty silly, but it seems to work great now. Thank you very much!

Unfortunately Nouveau is not in good shape for gaming, especially with newer GPU's. Great job on getting it solved :)

Link to comment
Share on other sites

@draconicrose.6213 said:I've been having connection issues for the past few weeks. I think it's on ANet side because my internet is fine. Still, I tried it in Windows and I'm having the same connection problems.

I'm gonna open a ticket eventually but in the meanwhile how can I make sure the problem isn't because I'm running GW2 on Wine?

I think you answered your own question there :)

I think you'd have better ping on Linux than on Windows as it doesn't have a bunch of background processes that could access the network (including system updates).

Link to comment
Share on other sites

@ArmoredVehicle.2849 said:

@draconicrose.6213 said:I've been having connection issues for the past few weeks. I think it's on ANet side because my internet is fine. Still,
I tried it in Windows and I'm having the same connection problems.

I'm gonna open a ticket eventually but in the meanwhile how can I make sure the problem isn't because I'm running GW2 on Wine?

I think you answered your own question there :)

I think you'd have better ping on Linux than on Windows as it doesn't have a bunch of background processes that could access the network (including system updates).

Yeah, I just wanted to discard options. Whatever is happening, is happening after the packets leave my home and are in the hands of my ISP. ?

Link to comment
Share on other sites

@"biczkowski.2961" said:I just installed GW2 through lutris on mint. Runs OK (faster than the macOS client on my hackintosh install). My only problem: the mouse is too fast. It's set up so that it's perfect for my desktop use but in GW2 it's simply too sensitive. Is there a way to decrease mouse sensitivity just for GW2 or wine?

If it has any adjustable DPI you may want to play around with that to begin with. I have a mouse which came as part of a kb+mouse set and on its' highest setting it's great for my dual screen setup but uncomfortable for GW2. Eventually I found a middle ground and haven't looked back.

Quick Edit: A quick google search returned this thread: https://askubuntu.com/questions/205676/how-to-change-mouse-speed-sensitivity

What you can do is add a command line that changes the mouse settings before the game opens, and another command to revert them when you close it. If you find the right settings I can help you integrate it into the GW2 launch script :)

EDIT 2: I dug a bit around that link I pasted above and managed to automatically slow down the mouse when opening the game, and speeding it back to normal when I close it, unfortunately I don't know how to make it switch dynamically in case of alt tabbing, so as long as the game is running it will be in effect across the entire system. In case you want to try it out here's what I did (in terminal):

1) Determining your mouse id: 'xinput --list' (unless you have over 9000 usb devices plugged in, you should recognize the mouse id fairly easy) in my case it was id=92) Listing the mouse properties: 'xinput --list-props 9' (as above, 9 represents the mouse id number).3) What we're looking for is "Device Accel Constant Deceleration", next to it will have a number, in my case it's 274 which represents the function's number and 1.000000 is the sensitivity it's currently set to.4) To slow it down type: 'xinput --set-prop 9 274 5.0' . This basically tells the mouse with id=9 to set function 274 (which represents movement speed) to 5.0 (the higher the number the slower the mouse moves).

The change takes effect as soon as you hit enter, play around with the value and If you think this method will help you, let me know and I will guide you to integrate it at game launch. :)

Link to comment
Share on other sites

  • 2 weeks later...

For some reason, I can't get this to run without stuttering on Solus distribution (Intel i5, Nvidia GT740M). Tried changing wine regedit, "export __GL_THREADED_OPTIMIZATIONS=1", dx9single, GLSL, etc.

Only reporting this here as a warning to those interested in that distribution. (or maybe some Solus user can help me?)In Debian 9, it worked out-of-the-box.

Link to comment
Share on other sites

Is there a way to unlock the cursor from the window when playing in windowed fullscreen/borderless mode? No matter what I do the cursor won't move to my second monitor unless I alt-tab.

I'm guessing it has something to do with GW2 or this wine configuration because this doesn't happen when playing Sims 4 in windowed fullscreen.

Link to comment
Share on other sites

@"draconicrose.6213" said:Is there a way to unlock the cursor from the window when playing in windowed fullscreen/borderless mode? No matter what I do the cursor won't move to my second monitor unless I alt-tab.

I'm guessing it has something to do with GW2 or this wine configuration because this doesn't happen when playing Sims 4 in windowed fullscreen.

You can run the Wine settings for the game using the "wine_settings.sh" > "Graphics" tab > untick "Automatically capture the mouse in full-screen windows". I tried it on my setup which has 2 screens but it didn't work, whatever option I choose the mouse is still locked to the game. I've been able to get by with normal Windowed mode, I browse a lot while playing.

@"Fye.7594" said:For some reason, I can't get this to run without stuttering on Solus distribution (Intel i5, Nvidia GT740M). Tried changing wine regedit, "export __GL_THREADED_OPTIMIZATIONS=1", dx9single, GLSL, etc.

Only reporting this here as a warning to those interested in that distribution. (or maybe some Solus user can help me?)In Debian 9, it worked out-of-the-box.

You was using Debian 9 on that same system? Try turning off the Compositor, sorry can't be of much help, I'm not very familiar with Solus.

Link to comment
Share on other sites

@ArmoredVehicle.2849 said:

@"draconicrose.6213" said:Is there a way to unlock the cursor from the window when playing in windowed fullscreen/borderless mode? No matter what I do the cursor won't move to my second monitor unless I alt-tab.

I'm guessing it has something to do with GW2 or this wine configuration because this doesn't happen when playing Sims 4 in windowed fullscreen.

You can run the Wine settings for the game using the "wine_settings.sh" > "Graphics" tab > untick "Automatically capture the mouse in full-screen windows". I tried it on my setup which has 2 screens but it didn't work, whatever option I choose the mouse is still locked to the game. I've been able to get by with normal Windowed mode, I browse a lot while playing.This worked for me! Thank you very much!

Link to comment
Share on other sites

Please can you help me get GW2 working? I am using ElementaryOS 5.

I have used your package to download and install the game, and I am left with a launcher that looks like the screenshot you have posted in your original post.

I have downloaded and installed the Libc whatever package as a prerequisite to the libfreetype:i386 freetype package as you described in a comment.

I have tried installing the i386 package, which I have (I think?) located here: https://packages.ubuntu.com/xenial/libfreetype6 but my system is telling me it cannot be installed. I tried looking in Synaptic as well as AppCentre but the i386 package is not listed in either of those repositories.

When I open the package in Eddy (for installing .deb packages) I am given the options of Downgrade and Uninstall. I'm assuming it says downgrade because I already have the 64 bit versions installed....

EDIT: I fixed it! I was able to use the sudo apt-get install libfreetype:i386 command to just download it with the terminal. This command didn't work for me before when I tried it, because I have Synaptic package manager open which was impinging on my ability to use apt in the terminal.GW2 appears to be running flawlessly now!

Thanks so much for your hard work!!!

Link to comment
Share on other sites

@tonac.2394 said:Hi. I have a question. To install gw2, do i need to install first wine or only use this file that you have put there. its my first time using linux of any kind so i am lost in this. i have ubuntu 18.04 installed.

The archive comes complete with its' own wine, no need to install the one from the repo. You might have to install a few libraries though such as 'libfreetype6:i386'.

Link to comment
Share on other sites

Alright. But i had installed before this, or i tried to install gw2 with playonlinux and i couldnt make it. after i unistalled, wine is left from playonlinux. and i see in readme it says that any previous version should be uninstalled. so how i do it or do i need to then if i have it. version from current wine is 3.0.4

Link to comment
Share on other sites

@"tonac.2394" said:Alright. But i had installed before this, or i tried to install gw2 with playonlinux and i couldnt make it. after i unistalled, wine is left from playonlinux. and i see in readme it says that any previous version should be uninstalled. so how i do it or do i need to then if i have it. version from current wine is 3.0.4

The package runs entirely in a portable mode, it doesn't integrate anything into the system (you don't have to use sudo once for the matter).

Download the file > extract it somewhere and in terminal run './setup.sh' and it will setup everything automatically. When it says "End of Setup." you can launch the game with './play.sh', if you get stuck somewhere run the './debug.sh' and post the log here. :-)

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