Jump to content
  • Sign Up

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


Recommended Posts

@ZenAge.4863 said:

@Barabeam.4638 said:In my case, when I used to game on my older laptop. It was already aged and it was always hooked up to a monitor. so I made openings in the bottom shell of the device that gives access to the CPU, GPU and rams. Then I made exact matching openings on a shoebox. And I made side openings on the shoebox for air inlet, then I stuck fans. That dropped the temperatures for me by like 20 degrees or so. I also removed the DVD-Drive and made it an empty space on purpose to help air escape :)

Thanks for the ideas, will work on improving ventilation. :)

Sooo... it turns out this isn't related to temperatures! I was playing on a cold night and my CPU temps were in the 80s way lower than thresholds and it was still continuously dropping my fps down to 5. The pattern is consistent. Approximately 3-5mins of playable 30-40fps, then sudden drop down to 5-6fps for 40secs, then repeat. It's actually becoming annoying now and difficult to play like this.

80s is freaking high! Sensors is lying, the temps are usually higher. And even if the sensor is not lying, part of the chip might/are higher. You need to check for throttling events.

Link to comment
Share on other sites

Hi All.

After testing GW2 on the latest Ubuntu with all performance options enabled I’ve come to the conclusion that running GW2 on Linux is a sub-par performance choice for the game.

Running GW2 on the D912pxy running Windows 10 is simply faster . In some scenarios 30+ frames ahead of what I’ve been getting in Linux either using Lutris or the package Armoured Vehicle is using.

I was very hopeful trialling Linux with GW2 but it doesn’t cut the mustard compared to D912pxy running Windows 10. If you're after performance go for the latter.

CPU i7 6800kGPU RX5700XT32 Gig of RAM256 GB NVme SSD

Link to comment
Share on other sites

Ok ok the throttling is 100% related to the temperatures... I've been monitoring this closely for a while and it's definitely that.

Soo.... I can't override fan controls... but I thought well hey, let me throttle the max_cpu_frequency so that it doesn't get to those throttling temperatures. I might suffer some fps loss but atleast in theory it should prevent the insane fps drops and stabilize it.

sudo cpufreq-set -c 0 -u 2600Mhz -g performancesudo cpufreq-set -c 1 -u 2600Mhz -g performancesudo cpufreq-set -c 2 -u 2600Mhz -g performancesudo cpufreq-set -c 3 -u 2600Mhz -g performance

! analyzing CPU 0:! driver: intel_pstate! CPUs which run at the same hardware frequency: 0! CPUs which need to have their frequency coordinated by software: 0! maximum transition latency: 4294.55 ms.! hardware limits: 1.20 GHz - 3.20 GHz! available cpufreq governors: performance, powersave! current policy: frequency should be within 1.20 GHz and 2.60 GHz.! The governor "performance" may decide which speed to use! within this range.! current CPU frequency is 2.39 GHz.! analyzing CPU 1:! driver: intel_pstate! CPUs which run at the same hardware frequency: 1! CPUs which need to have their frequency coordinated by software: 1! maximum transition latency: 4294.55 ms.! hardware limits: 1.20 GHz - 3.20 GHz! available cpufreq governors: performance, powersave! current policy: frequency should be within 1.20 GHz and 2.60 GHz.! The governor "performance" may decide which speed to use! within this range.! current CPU frequency is 2.45 GHz.! analyzing CPU 2:! driver: intel_pstate! CPUs which run at the same hardware frequency: 2! CPUs which need to have their frequency coordinated by software: 2! maximum transition latency: 4294.55 ms.! hardware limits: 1.20 GHz - 3.20 GHz! available cpufreq governors: performance, powersave! current policy: frequency should be within 1.20 GHz and 2.60 GHz.! The governor "performance" may decide which speed to use! within this range.! current CPU frequency is 2.37 GHz.! analyzing CPU 3:! driver: intel_pstate! CPUs which run at the same hardware frequency: 3! CPUs which need to have their frequency coordinated by software: 3! maximum transition latency: 4294.55 ms.! hardware limits: 1.20 GHz - 3.20 GHz! available cpufreq governors: performance, powersave! current policy: frequency should be within 1.20 GHz and 2.60 GHz.! The governor "performance" may decide which speed to use! within this range.! current CPU frequency is 2.54 GHz.

I have also disabled turbo boost.

sudo wrmsr -p0 0x1a0 0x4000850089sudo wrmsr -p1 0x1a0 0x4000850089sudo wrmsr -p2 0x1a0 0x4000850089sudo wrmsr -p3 0x1a0 0x4000850089

The throttling works perfectly fine, until the character selection screen loads, then the CPU frequency jumps back to 3.2Ghz. No matter what I do, the game overrides the throttle.

! analyzing CPU 0:! driver: intel_pstate! CPUs which run at the same hardware frequency: 0! CPUs which need to have their frequency coordinated by software: 0! maximum transition latency: 4294.55 ms.! hardware limits: 1.20 GHz - 3.20 GHz! available cpufreq governors: performance, powersave! current policy: frequency should be within 1.20 GHz and 2.60 GHz.! The governor "performance" may decide which speed to use! within this range.! current CPU frequency is 3.02 GHz.! analyzing CPU 1:! driver: intel_pstate! CPUs which run at the same hardware frequency: 1! CPUs which need to have their frequency coordinated by software: 1! maximum transition latency: 4294.55 ms.! hardware limits: 1.20 GHz - 3.20 GHz! available cpufreq governors: performance, powersave! current policy: frequency should be within 1.20 GHz and 2.60 GHz.! The governor "performance" may decide which speed to use! within this range.! current CPU frequency is 3.00 GHz.! analyzing CPU 2:! driver: intel_pstate! CPUs which run at the same hardware frequency: 2! CPUs which need to have their frequency coordinated by software: 2! maximum transition latency: 4294.55 ms.! hardware limits: 1.20 GHz - 3.20 GHz! available cpufreq governors: performance, powersave! current policy: frequency should be within 1.20 GHz and 2.60 GHz.! The governor "performance" may decide which speed to use! within this range.! current CPU frequency is 3.01 GHz.! analyzing CPU 3:! driver: intel_pstate! CPUs which run at the same hardware frequency: 3! CPUs which need to have their frequency coordinated by software: 3! maximum transition latency: 4294.55 ms.! hardware limits: 1.20 GHz - 3.20 GHz! available cpufreq governors: performance, powersave! current policy: frequency should be within 1.20 GHz and 2.60 GHz.! The governor "performance" may decide which speed to use! within this range.! current CPU frequency is 3.00 GHz.

How can I throttle the CPU to try and bring down the temps if the game overrides system settings? Is this related to wine?

EDIT:

Ok so I got it to work by disabling intel_pstate in grub intel_pstate=disable. This forced the scaling driver to be acpi-cpufreq.

! analyzing CPU 0:! driver: acpi-cpufreq! CPUs which run at the same hardware frequency: 0! CPUs which need to have their frequency coordinated by software: 0! maximum transition latency: 10.0 us.! hardware limits: 1.20 GHz - 2.60 GHz! available frequency steps: 2.60 GHz, 2.60 GHz, 2.50 GHz, 2.40 GHz, 2.30 GHz, 2.20 GHz, 2.10 GHz, 2.00 GHz, 1.90 GHz, 1.80 GHz, 1.70 GHz, 1.60 GHz, 1.50 GHz, 1.40 GHz, 1.30 GHz, 1.20 GHz! available cpufreq governors: userspace, conservative, powersave, ondemand, performance, schedutil! current policy: frequency should be within 1.20 GHz and 1.20 GHz.! The governor "performance" may decide which speed to use! within this range.! current CPU frequency is 2.59 GHz.! cpufreq stats: 2.60 GHz:2.48%, 2.60 GHz:29.63%, 2.50 GHz:0.22%, 2.40 GHz:0.27%, 2.30 GHz:0.26%, 2.20 GHz:0.18%, 2.10 GHz:0.22%, 2.00 GHz:0.21%, 1.90 GHz:33.21%, 1.80 GHz:0.40%, 1.70 GHz:0.45%, 1.60 GHz:0.72%, 1.50 GHz:0.72%, 1.40 GHz:0.91%, 1.30 GHz:2.75%, 1.20 GHz:27.37% (2958)

coretemp-isa-0000Adapter: ISA adapterPackage id 0:  +95.0°C  (high = +87.0°C, crit = +105.0°C)Core 0:        +96.0°C  (high = +87.0°C, crit = +105.0°C)Core 1:        +90.0°C  (high = +87.0°C, crit = +105.0°C)

Temps are still high & the scaling policy looks a bit messed up but I have successfully throttled the freq to 2.6Ghz which is the hardware limit without turbo boost. Performance in-game has decreased but not having those fps drops... Will play for a day like this and see how it feels.

Link to comment
Share on other sites

@Mack.3045 said:Hi All.

After testing GW2 on the latest Ubuntu with all performance options enabled I’ve come to the conclusion that running GW2 on Linux is a sub-par performance choice for the game.

Running GW2 on the D912pxy running Windows 10 is simply faster . In some scenarios 30+ frames ahead of what I’ve been getting in Linux either using Lutris or the package Armoured Vehicle is using.

I was very hopeful trialling Linux with GW2 but it doesn’t cut the mustard compared to D912pxy running Windows 10. If you're after performance go for the latter.

CPU i7 6800kGPU RX5700XT32 Gig of RAM256 GB NVme SSD

what did you expect? WINE is a ressource/cpu hog. Because windows is a convoluted mess and translating that to linux takes cpu cycles.

30% is expected.

And no matter what, I will not install windows on my computer. I have to deal with that crapfest at work every freaking day. Thanks, but no thanks. Keep that broken mess away from MY hardware.

Link to comment
Share on other sites

@"VAHNeunzehnsechundsiebzig.3618" said:

@Mack.3045 said:Hi All.

After testing GW2 on the latest Ubuntu with all performance options enabled I’ve come to the conclusion that running GW2 on Linux is a sub-par performance choice for the game.

Running GW2 on the D912pxy running Windows 10 is
simply faster
. In some scenarios 30+ frames ahead of what I’ve been getting in Linux either using Lutris or the package Armoured Vehicle is using.

I was very hopeful trialling Linux with GW2 but it doesn’t cut the mustard compared to D912pxy running Windows 10. If you're after performance go for the latter.

CPU i7 6800kGPU RX5700XT32 Gig of RAM256 GB NVme SSD

what did you expect? WINE is a ressource/cpu hog. Because windows is a convoluted mess and translating that to linux takes cpu cycles.

30% is expected.

And no matter what, I will not install windows on my computer. I have to deal with that crapfest at work every freaking day. Thanks, but no thanks. Keep that broken mess away from MY hardware.

Much hyperbole right there...

Link to comment
Share on other sites

@Mack.3045 said:

@"VAHNeunzehnsechundsiebzig.3618" said:

@Mack.3045 said:Hi All.

After testing GW2 on the latest Ubuntu with all performance options enabled I’ve come to the conclusion that running GW2 on Linux is a sub-par performance choice for the game.

Running GW2 on the D912pxy running Windows 10 is
simply faster
. In some scenarios 30+ frames ahead of what I’ve been getting in Linux either using Lutris or the package Armoured Vehicle is using.

I was very hopeful trialling Linux with GW2 but it doesn’t cut the mustard compared to D912pxy running Windows 10. If you're after performance go for the latter.

CPU i7 6800kGPU RX5700XT32 Gig of RAM256 GB NVme SSD

what did you expect? WINE is a ressource/cpu hog. Because windows is a convoluted mess and translating that to linux takes cpu cycles.

30% is expected.

And no matter what, I will not install windows on my computer. I have to deal with that crapfest at work every freaking day. Thanks, but no thanks. Keep that broken mess away from MY hardware.

Much hyperbole right there...

no, just an appropriate response.

People KNOW that wine costs performance. What people are trying to reduce the impact. Your post is bordering on trolling.

Link to comment
Share on other sites

@"VAHNeunzehnsechundsiebzig.3618" said:

@"VAHNeunzehnsechundsiebzig.3618" said:

@Mack.3045 said:Hi All.

After testing GW2 on the latest Ubuntu with all performance options enabled I’ve come to the conclusion that running GW2 on Linux is a sub-par performance choice for the game.

Running GW2 on the D912pxy running Windows 10 is
simply faster
. In some scenarios 30+ frames ahead of what I’ve been getting in Linux either using Lutris or the package Armoured Vehicle is using.

I was very hopeful trialling Linux with GW2 but it doesn’t cut the mustard compared to D912pxy running Windows 10. If you're after performance go for the latter.

CPU i7 6800kGPU RX5700XT32 Gig of RAM256 GB NVme SSD

what did you expect? WINE is a ressource/cpu hog. Because windows is a convoluted mess and translating that to linux takes cpu cycles.

30% is expected.

And no matter what, I will not install windows on my computer. I have to deal with that crapfest at work every freaking day. Thanks, but no thanks. Keep that broken mess away from MY hardware.

Much hyperbole right there...

no, just an appropriate response.

People KNOW that wine costs performance. What people are trying to reduce the impact. Your post is bordering on trolling.

LOL, I wasn't referring to wine.. Doh ?

Link to comment
Share on other sites

Game has been stable since throttling the CPU. Can't believe I haven't done this earlier... was suffering for so long. Imagine trying to PvP or do Fractals when every 3 mins you get 5fps xD... I played like this for a year loll..

@"ArmoredVehicle.2849"Is there anyway to use Taco with your portable package? I remember I tried running it via wine installed and I would get a black screen because it required the Windows Aero theme. I tried to get it installed but gave up. Is there anyway/some dll's to add to be able to get the aero theme working for Taco?

I was only able to get gw2navi to work.

EDIT:

Sorry, the search function is terrible on this forum so I didn't see that others were asking you this as well.


UPDATE:

So I was bored... and I really wanted to get TacO to work because I have not touched Windows in over 5 years now so I've never got to experience TacO... so here are the results of some tinkering...

TacO uses DX11 so I had use dxvk which is barely supported on my cpu, so for me not really a playable option. There are also a lot of dll's, registries etc I had to play with but didn't have access to so had to find workarounds. I installed wine-5.0 (Debian 5.0-4) and used TacO Build 047.2802r. I tried earlier versions of TacO too but encountered various errors. I also tried wine-staging but something went wrong with my tinkering and TacO would just crashed without writing a log of why it crashed (so will get back to that later).

So here are a few things I found out.

TacO FAQ says:I can see the TacO icon and/or the Map Timer, but the rest of the screen is black and I can't play.-> This can happen if you have the transparency effects turned off in Windows 7, probably because you're using the classic theme for Windows. Turning on Aero should fix the problem.

So initially I tried to install the aero.msstyles theme in wine but it doesn't do anything and it's mostly for xp-non-aero theming. Then I thought well aero is just the styles its not the actual transparency service. There are a few settings that touch upon enabling transparency/aero effects. I tried to add this manually to the wine registry using winetricks.

[HKEY_CURRENT_USER\Software\Microsoft\Windows\DWM]"Composition"=dword:00000001"CompositionPolicy"=dword:00000002

However there are more that I haven't tried yet, because I don't have windows so I was looking at forums of people using windows that have Aero problems and some provide registry tweaks to "force" it on.

[HKEY_CURRENT_USER\Software\Microsoft\Windows\DWM]"Composition"=dword:00000001"ColorizationOpaqueBlend"=dword:00000001"CompositionPolicy"=dword:00000002"UseMachineCheck"=dword:00000000"Blur"=dword:00000000"Animations"=dword:00000000"EnableAeroPeek"=dword:00000001

They also mention restarting a service called Desktop Window Manager Session Manager. Which is what actually runs the show...

So I had a look at the library overrides for wine and found two that interested me. dwmapi & uxtheme. Setting them to native gives me errors, so I left it as native, then built in. Running TacO I saw in terminal it references dwmapi so it definitely is using it.... but what is it? After some quick reads, I figured its the Desktop Window Manager API which has functions to do certain things, which I am assuming the dev of TacO used to implement the overlay.

I didn't do much with it (might be worth exploring more), but saw it in /windows/system32/dwmapi.dll and by disabling it wine says TacO requires it and stops it from starting. So TacO is already using it and wine technically has it there, so theoretically there could be a way to interact with that. (also read that dwmapi requires vista or something and fails at anything besides vista or windows server 2008, so maybe change the os version in wine?)

Have a look at https://source.winehq.org/WineAPI/dwmapi.html.

So I moved on to uxtheme which is also generally required/deals with the theme/crashes games if its not working. I had a look at the wine uxtheme override and it looks like Wine is working on adding support for native theming so the apps look like your linux os styles, this led me to gtk3 and the option to use that in wine-staging.

I enabled it and yes, now winecfg and a few others looks like my linux styles. So this made me look for transparency settings in my DE (xfce) settings and found something that interested me under Window Manager Tweaks -> Composition. The closest option I could use was "Opacity of inactive windows" which I set to 50%.

I ran GW2 and TacO. Now TacO dominates and shows the black screen, if I switch to desktop and back to GW2 it shows me the game and TacO hides itself. I was able to get it back by right clicking the window panel -> Always below other windows. This brings back TacO, and "Always on Top" brings back GW2. Now remember the option we set transparency to was only for inactive windows. So set GW2 "Always below other windows" (this puts TacO on top) and Alt-tab to get it inactive.

WOAH!!.... I now see GW2 with TacO overlayed :D ooh this is exciting... it runs a bit darker but we are getting somewhere... now the issue is that by using the mouse, you make the window active which kills the opacity. However... keyboard works fine... I can use skills and run around but cant use the mouse (which is obviously a problem)..

But having said all this, understand that my linux knowledge is limited and im not a pro programmer, so I can't code/fix this, but I do see this a potential "hack" to get this working and maybe diving into the subject of dwmapi & uxtheme (gtk3) could yield results. Theoretically this also would improve performance by using linux window management and playing with transparencies etc. Someone recently mentioned that their GW2 game has lower fps running TacO because of the Aero resource hog.

So this is my input for now... might dive into this further bit later, but for now just want to play the game lol...


UPDATE 2:

I somehow managed to get the mouse to work!! :D I need some coffee and some more time on this lol its about 75% usable... the only thing that doesn't work are mouse clicks, everything else works. With Alt-Tabbing you can switch between states and use mouse clicks but screen becomes black for that period. You can also hide TacO completely and go back to "normal mode" with the "Always on Top" frame control.

I am SURE someone can come up with a few lines of code & linux tweaks to get it working 100%!

UPDATE 3

These are some of the scenarios that I encountered:

1) NoTaco (only GW2 shows) [solution: Set "Always below other windows"]2) BlackTaco [solution: Alt-Tab to enable opacity]3) Taco+NoMouseHover (mouse-hover-over-ingame-items does not show anything) [solution: Enable 2 workspaces and switch between between them once]4) Taco+MouseCamera [solution: Click once and BlackTacO will show, if you right click it should activate mousecamera. Alt+Tab to enable transparency, then Alt+Tab once more time to enable MouseCamera with opacity.]5) Taco+MouseCamera+InvertedMovements (mouse camera works but trying to move character left-right-forward moves you in a different directions) [solution: Repeat 4 or 3 and it should re-align]6) Taco+GameFocusAlternation (the focus of taco or game is in a frenzy sate of 0 & 1 preventing the use of mouse, or skills and random weirdness. Any user input becomes RNG) [solution: Minimize the game then maximize]

I guess the next steps are to test with different linux window managers, enable opacity for ACTIVE windows (which would theoretically make Taco 100% usable, because the only reason BlackTaco appears on mouse interaction is because the window becomes active and we have set opacity only on inactive windows). Also would be good to figure out how to increase contrast to compensate for the 50% opacity.

Link to comment
Share on other sites

UPDATE 4

Ok I'm making really good progress... it's turning out to be quite an easy solution really. I've created a second post because the first one was getting too long and limit setting in.

So I started researching about what compositors are and this is a good summary -> https://passthroughpo.st/linux-desktop-compositors-performance-functionality/

Having read that, I started digging into the configurations of xfwm4 which is the compositor for xfce. It looks as if there is no active-opacity only inactive-opacity is provided and it would take me too long to figure out how to code it in (if it's even possible?), so I took the quicker route and searched for another compositor and compton seemed like a good option.

sudo apt install compton compton-confthen compton-conf

Opacity TabSet inactive-opacity to 1.00 (100%)Set active-opacity to 0.70 (70%)Set GW2 window to Always on Top.

Disable "composition" in your native Window Manager.then compton in terminal to activate and Ctrl+C to deactivate.

The intended functionality is perfect so far, TacO now works without the mouse issues/workarounds... I just need to tinker about with the opacities to find the right sweet spot & look for other tweaks. There is the issue of darker contrast, and you can play with setting the active-opacity, higher means GW2 is brighter but taco fades, and lower is vice-versa.

I will make a proper video on all of this later. There is still room for tweaks & improvements. I will update my posts once everything is in order and make it look neat. If anyone is willing to try out on their setups and give some feedback, would be awesome! :) I can't believe it's actually working and a simple workaround lol, would like to see this working for peeps, taco looks cool ^^

Link to comment
Share on other sites

On another note... Here is something that I've been meaning to share, that helped me with performance issues even when using ArmordVehicle's package.

According to https://wiki.guildwars2.com/wiki/Guild_Wars_2_on_Wine:If the game keeps stuttering when turning the view.It is usually because of weak HDD/SSD performance and in addition because some mesa data is stored in your $HOME. First you can try to just use a faster SSD for installation. Second you can try to move your mesa cache to RAM. Most current Distros use /tmp as mounted in tmpfs (RAM) if that is the case just execute the following.

$ cd ~/.cache/ && rm mesa && cd /tmp && ln -s ~/.cache/mesa_shader_cache mesa

I required persistency and Armourd's portable package stores the cache elsewhere... so here's a script I use, I initially found it somewhere on the web (so its not my work, I just modified it for GW2, but cant seem to find the original anymore for credit).

Copy the following script and save it as ramdrivetick.sh in the portable gw2 package root.

#!/bin/bash# ===== Configuration START =====SIZE="128M" #Size of the RAM folder. This obviously can not be more than the RAM available on your system.FOLDER_RAM="$HOME/gw2/shader_mount" # Path to the folder where the ram will be mountedFOLDER_HDD="$HOME/gw2/shader_cache" # Path to our backup hdd folderPERMMODE="0755" # The permission for the folders. Used when creating non-existing folders and when mounting.MARKFILE_INITIATED=".zz_ramdrive_initiated" # This file is used to mark if the initial move of items from hdd to ramdisk yet is doneMARKFILE_RUNNING=".zz_ramdrive_sync_is_running" # Marking that an action is running at the moment.# ===== Configuration END =====# Calculate folderpaths for the markersMARKFILE_INITIATED_FOLDER="${FOLDER_RAM}/${MARKFILE_INITIATED}"MARKFILE_RUNNING_FOLDER="${FOLDER_RAM}/${MARKFILE_RUNNING}"# ===== Function Declarations START =====func_sayhi(){    echo ""    echo "====== RamDriveTick START ======"}func_exit(){    echo "====== RamDriveTick END ======"    exit 0}func_mark_open(){    # Stop if a sync is running already    if [ -e "${MARKFILE_RUNNING_FOLDER}" ]; then        echo "A sync is already in progress. Exiting."        func_exit    fi    # Otherwise mark this sync in progress    sudo touch "${MARKFILE_RUNNING_FOLDER}"}func_mark_close(){    sudo rm "${MARKFILE_RUNNING_FOLDER}"}func_makefolders(){    # Create the folders if they don't exist :)    if [ ! -d "${FOLDER_HDD}" ]; then        echo "Creating hdd folder \"${FOLDER_HDD}\""        mkdir -p "${FOLDER_HDD}"        chmod ${PERMMODE} "${FOLDER_HDD}"    fi    if [ ! -d "${FOLDER_RAM}" ]; then        echo "Creating ram folder \"${FOLDER_RAM}\""        mkdir -p "${FOLDER_RAM}"        chmod ${PERMMODE} "${FOLDER_RAM}"    fi}func_mount(){    # Mount the tmpfs if it isn't already mounted    if ! mountpoint -q "${FOLDER_RAM}"; then        echo "Mounting a tmpfs with size ${SIZE} to the ram mountpoint folder \"${FOLDER_RAM}\"."        sudo mount -t tmpfs -o size=${SIZE},mode=${PERMMODE} tmpfs "${FOLDER_RAM}"    fi}func_sync(){    # Syncronize    if [ -e "${MARKFILE_INITIATED_FOLDER}" ]; then        echo "Saving from memory to disk."        sudo rsync -av --delete --exclude "${MARKFILE_INITIATED}" --exclude "${MARKFILE_RUNNING}" "${FOLDER_RAM}/" "${FOLDER_HDD}"    else        echo "INIT! The ram drive content will now be synchronized to look like the hdd content."        sudo rsync -av "${FOLDER_HDD}/" "${FOLDER_RAM}"        sudo touch "${MARKFILE_INITIATED_FOLDER}"    fi}# ===== Function Declarations END =====# ===== Execute START =====func_sayhifunc_makefoldersfunc_mountfunc_mark_openfunc_syncfunc_mark_closefunc_exit# ===== Execute END =====

Assuming your portable package is in /home/user/gw2

sed -i 's/\/shader_cache/\/shader_mount/' $HOME/gw2/bin/user_run

then use sh ~/gw2/ramdrivetick.sh to activate the mount. If you run it again while it's mounted it will run a "tick" that will sync back to the shader_cache folder for persistency. I do this manually but it can be setup to run automatically in the background when starting/stopping GW2.

Link to comment
Share on other sites

@"ZenAge.4863"

Interesting find there with TacO, I've only ever managed to get it working up to the "BlackTaco" part. From what I can gather it requires some tinkering and it doesn't look like something that can be setup entirely out of the box without some tweaking, feel free to correct me here. Maybe this can be provided into a form of separate addon as in "unzip in GW2 folder and run sh file"?

Regarding the shader cache - I think a ram drive is a bit overkill if the cache is read from an SSD. However I like the idea, can't say no to better performance. What if instead of rsync'ing data back and forth, we could mount a ram-file the game reads/writes to at launch and unmount when not in use?

Thanks for the input, I like your ideas :)

Link to comment
Share on other sites

@"ArmoredVehicle.2849" said:

Interesting find there with TacO, I've only ever managed to get it working up to the "BlackTaco" part. From what I can gather it requires some tinkering and it doesn't look like something that can be setup entirely out of the box without some tweaking, feel free to correct me here. Maybe this can be provided into a form of separate addon as in "unzip in GW2 folder and run sh file"?

Yes definitely, what I posted earlier was just a slap-together for anyone who want's to test it, however, this is like my second script ever, im total noob here but if I spend some time I can write something up that could work well, but will need to be double checked because I'll probably make errors.

Basically, if you don't mind the drop in contrast of the game/taco then it is working 100%. However, I would need someone to test on different hardware to see if performance issues arise because different compositors work differently with different hardware. However compton seems to be very lightweight, lighter than xfwm4. I will also install KDE soon to see if the native compositor has active-opacity then compton is not needed.

The script would have to do something like this.

1) install.sh asks user to select their current DE/compositor.2) If supported it either applies a simple patch to their native compositor or installs and configures compton.3) Then extracts the TacO build and sets everything up in its own folder4) configure.sh would give option to adjust opacity levels per user needs, & any other tweaks that are available. Also an option to hook into your user_run if users just want toggle taco to start automatically when they launch gw2 via play.sh4) run.sh would launch TacO manually and activate/deactivate the compositor opacity, as you don't want to have half transparent windows when doing basics like browsing etc.

I will start writing up something more solid and provide support for the different compositors, as I have only tested on XFCE by running Compton.

Regarding the shader cache - I think a ram drive is a bit overkill if the cache is read from an SSD.Strangely enough I still had unplayable stuttering with my SSD (although its a cheap one) and only the ramdrive saved me.

However I like the idea, can't say no to better performance. What if instead of rsync'ing data back and forth, we could mount a ram-file the game reads/writes to at launch and unmount when not in use?

Whatever we mount in ram gets purged once unmounted, so rsync creates persistence by dumping the accumulated data from ram back to "shader_cache" on the SSD. I have just been lazy to rewrite the way the ramdrivetick works, but what can be done is that is activates with play.sh in the background to mount the "shader_cache" folder and once GW2 gets an exit code, to unmount "shader_cache" from ram, dumping any new shaders that were cached during playtime. The rsync is quick and takes only 2-3 seconds to mount and unmounting almost instant if no new cache was generated.

I have tried mounting just one "shader_cache" folder into ram but it does not maintain persistance on unmount, hence the rsync and other empty folder "shader_mount". I think I understood your idea about the ram-file, but due to the way mounting/unmounting works with a tmpfs(ram), without rsync it looses persistence. The "shader_cache" folder is basically our ram-file that we mount that grows with new caches.

Thanks for the input, I like your ideas :)I'm glad I can input something. I have just simply been struggling with these things for a while and enjoy linux... so last night everything just somehow came all together in the spur of the moment, but otherwise, im still newbie :P interesting to see everyone's works and talks.

I will work on these 2 "addons/modules" to be able to hook in and out of your setup, to provide TacO support & Rammed Shader_caches. :) Good learning curve for me and something fun to work on ^^

Link to comment
Share on other sites

@ZenAge.4863 said:

@ArmoredVehicle.2849 said:Regarding the shader cache - I think a ram drive is a bit overkill if the cache is read from an SSD.Strangely enough I still had unplayable stuttering with my SSD (although its a cheap one) and only the ramdrive saved me.

I've been testing the rammed cache for the past couple hours. On my main system with an SSD (both game + cache) didn't notice much difference (SSD is a Samsung Evo 250GB). I'm sure if I looked hard enough I'd probably spot something.

The real surprise though came from my 2nd system which has no SSD, without the rammed cache loading times were a bit longer and even after I got into the game, some stutter was present till the game loaded all the cache.

Turning on the rammed cache though was a different story, loading times were quicker by a rough 10-15sec estimate and the stutter was much less after as I got in game. I think a fast storage for Mesa (Intel/AMD) helps a lot here since the shader cache is composed of thousands of small files, Imagine the HDD trying to load all those shader files + the game's data = stutter. What do you know though, a small 75MB ram drive can make the difference.

On the technical side: I'd love to implement this in a user friendly way with as little interaction from the end user as possible, inputting the sudo password will be required for sure in order to mount the drive itself. The sync'ing can be done either at interval times (ticking) or after the game's exe file is closed (flush everything at the end).

Implementing this feature in the installer shouldn't be too hard, I could rewire the custom cache folder to be the mounted ram drive, and add a secondary folder to store the shaders.

Link to comment
Share on other sites

@"ArmoredVehicle.2849" said:On the technical side: I'd love to implement this in a user friendly way with as little interaction from the end user as possible, inputting the sudo password will be required for sure in order to mount the drive itself. The sync'ing can be done either at interval times (ticking) or after the game's exe file is closed (flush everything at the end).

I like user friendliness ^^ I think the flushing option is better, minimal disturbances than a ticking in the background (besides there aren't that many shaders after you've loaded most of them. The bulk of work gets done on game launch when it has to load all the shaders into the ramdrive, but that takes like 2-3 secs (on my old hardware) that's not even close to logging in to your account. So user won't notice anything apart from having to enter that sudo password.

Might be possible to work around this by adding the mount cmd for user to sudoers file, so you would only need to ask for the sudo password once. However, this might not be good for security as the user account will now be able to use the mount command without a password. Maybe if we could get only the script to run without sudo.

Could try something like echo "$USER ALL=NOPASSWD:/path/to/script" | (sudo su -c 'EDITOR="tee" visudo -f /etc/sudoers.d/customscript')

I also noticed, that eventually the ramdrive needs to be a bit larger (depending on how much of the game you've visited). I started off with a 64mb ramdrive and it was reaching it's peak, so I bumped it up to 128mb. I think that one will last for a while. Although I end up flushing the cache folder to reset the shaders sometimes because my game goes through its mood swings :P

Another thing I've noticed (not sure if this is true) but I run on minimal graphics with shaders at low and shadows at none. If I increase the shaders to medium or high, then it feels like it starts caching shaders again... it makes me think that for each level of graphic settings there are more quantity/complexity of shaders that need to be cached.

Implementing this feature in the installer shouldn't be too hard, I could rewire the custom cache folder to be the mounted ram drive, and add a secondary folder to store the shaders.You are better at this, the ramdrivetick.sh is relatively straightforward, but could do with a bit of a rewrite to make it more suitable for your package.

Link to comment
Share on other sites

Guild Wars 2 TacO on Linux


Ok so this will be the "official" post for the TacO module for @ArmoredVehicle.2849 portable package. This is a workaround, and not an actual implementation of the Aero theme's composition/transparency effects that are required by TacO to run properly.

Explanation

When launching GW2TacO on Linux (using wine) you encounter a black background and cannot see GW2. This is due to TacO utilizing the Desktop Window Manager API and the Aero theme's composition/transparency effects which is unavailable in Linux.

This workaround uses Linux's own window desktop managers & their compositor's window opacity effects. Because we are using Opacity and not Transparency we get diminished results with lower contrast/brightness.

By setting our active-window's opacity to slightly lower than the inactive one we can see through it. By setting TacO to always be below (inactive-window) and GW2 always on top (active-window), we are able to go around the BlackTaco issue, although with diminished clarity compared to using transparency.

Different desktop environments on Linux come with different Window Managers/Compositors. Therefore the workaround will be slightly different depending on your distribution. If your distributions native compositor provides active-opacity then it's just a matter of changing the opacity level. However if the compositor lacks this feature (or you are getting horrible performance), then installing Compton (a great lightweight compositor) is your next best option.

The provided module attempts to make this process easier for a wide variety of configurations and easy integration into ArmordVehicle's Portable Performance Package.

Overview

Installer Method

NOTE This project has moved to GitLab, please find up to date info there.

If you are having difficulties with the installer have a look at the FAQ / Troubleshooting or the Development Board / Issues for any active issues.

Alternatively, if you do not find your specific issue, then you can Submit a new issue. Try to include as much detail as possible:-> Describe what happened or if you noticed any errors/etc-> Provide the output of the terminal-> Provide the latest entries from the gw2taco.log-> Provide info from the settings.conf file

Edited by ZenAge.4863
  • Like 1
Link to comment
Share on other sites

@Nevin Kiludan.2639 said:I try to add GW2 into Steam in a way that I can use the Steam Overlay, Steam Broadcasting and Steam Link with Steam Controller to work. Has anyone got this working and which are the steps to take to get this running in a way that I am able to play GW2 via Steam Link on my TV?

Having said this, I have performance issues with this version. I mean, in the past I could e.g. set the CPU governor to performance and FPS almost doubled, Currently I have no effect at all and with Ryzen 3800X + GTX1070 the performance should be higher than 15-20FPS or? --> SOLVED: Disable FSYNC and enable ESYNC

On the other hand, the Lutris version of GW2 does add to Steam but suddenly misses Steam Overlay and therefore Steam Link features. Additionally, having added GW2 to Steam arcdps is no longer working, too.

I did clean install both versions, but it looks like each one has its issues to prevent me from playing it via Steam Controller. Do you have any ideas how each of those issues can be fixed or even all of them?

+1I've also tried to get the overlay working. Nothing seems to work. It's possible you'd have to run the game through Proton instead.

Link to comment
Share on other sites

  • 2 weeks later...

@"VAHNeunzehnsechundsiebzig.3618" said:

@"VAHNeunzehnsechundsiebzig.3618" said:

@Mack.3045 said:Hi All.

After testing GW2 on the latest Ubuntu with all performance options enabled I’ve come to the conclusion that running GW2 on Linux is a sub-par performance choice for the game.

Running GW2 on the D912pxy running Windows 10 is
simply faster
. In some scenarios 30+ frames ahead of what I’ve been getting in Linux either using Lutris or the package Armoured Vehicle is using.

I was very hopeful trialling Linux with GW2 but it doesn’t cut the mustard compared to D912pxy running Windows 10. If you're after performance go for the latter.

CPU i7 6800kGPU RX5700XT32 Gig of RAM256 GB NVme SSD

what did you expect? WINE is a ressource/cpu hog. Because windows is a convoluted mess and translating that to linux takes cpu cycles.

30% is expected.

And no matter what, I will not install windows on my computer. I have to deal with that crapfest at work every freaking day. Thanks, but no thanks. Keep that broken mess away from MY hardware.

Much hyperbole right there...

no, just an appropriate response.

People KNOW that wine costs performance. What people are trying to reduce the impact. Your post is bordering on trolling.

I think he was referring to the part of your post about Windows being a "crapfest" and "broken". That to me sounds hyperbolic.Certainly subjective however Windows 10 runs smooth for me without issues. Neither of your descriptive's match my experience with the platform. I turn my PC on, double click the GW2 icon and the game runs. Terrible experience really :P

I'm not sure why people aren’t running dual boot anyways if you love Linux. You're just cheating yourself out of performance if you're not running the game on Windows.

Link to comment
Share on other sites

Can we please leave the Windows nonsense out of this thread? I'm a little bit annoyed having to read these posts.

This thread is called "Playing Guild Wars 2 on Linux - Performance optimizations and more" there is not one mention of Windows in the title, and no one asked for tests and comparisons on how "it simply runs faster/better on windows", that's a bit obvious. It defeats the purpose of the thread and turns the conversations into debates about Operating Systems.

Windows IS a crapfest and a horrible system, and if it works for you then cool, no need to come onto a linux thread and shove it in our face. I am happier to trade those 10fps and keep myself and my system secure and happy, than EVER installing windows. That 10fps loss today will be a 20fps gain tomorrow.

Personally I will never dual boot windows, why? because I have no reason to, linux does everything I need it to and better than windows ever could. I can post an entire book on why linux is better, and how windows is broken, but I wont, why? because this isn't the place for this kind of nonsense.

IIRC it was already mentioned/requested to keep the Windows vs Linux talk out of this thread. You're welcome to start a new forum if you want to discuss these things, but this thread has a purpose and let's stick to that purpose.

Link to comment
Share on other sites

Why is this nonsense ? I think the MACK guy was just pointing out his experience after he tried running GW2 on both Linux and Windows. He was just pointing out and posing the question "Why would you play on a OS that gimps your performance with GW2" ? I understand you love Linux and i think it's great too ( I’m running Mint and it rocks ).I don't have a bias for either Os but to say Windows IS a crapfest... now that is nonsense! . And it runs GW2 better.....

I'd completely jump ship tomorrow if Linux distros out-performed GW2 on Windows :)

Please don't be so touchy !

I’m off my soap box now so back to the original thread ?

Link to comment
Share on other sites

@Little Howl.5231 said:

@"VAHNeunzehnsechundsiebzig.3618" said:

@"VAHNeunzehnsechundsiebzig.3618" said:

@Mack.3045 said:Hi All.

After testing GW2 on the latest Ubuntu with all performance options enabled I’ve come to the conclusion that running GW2 on Linux is a sub-par performance choice for the game.

Running GW2 on the D912pxy running Windows 10 is
simply faster
. In some scenarios 30+ frames ahead of what I’ve been getting in Linux either using Lutris or the package Armoured Vehicle is using.

I was very hopeful trialling Linux with GW2 but it doesn’t cut the mustard compared to D912pxy running Windows 10. If you're after performance go for the latter.

CPU i7 6800kGPU RX5700XT32 Gig of RAM256 GB NVme SSD

what did you expect? WINE is a ressource/cpu hog. Because windows is a convoluted mess and translating that to linux takes cpu cycles.

30% is expected.

And no matter what, I will not install windows on my computer. I have to deal with that crapfest at work every freaking day. Thanks, but no thanks. Keep that broken mess away from MY hardware.

Much hyperbole right there...

no, just an appropriate response.

People KNOW that wine costs performance. What people are trying to reduce the impact. Your post is bordering on trolling.

I think he was referring to the part of your post about Windows being a "crapfest" and "broken". That to me sounds hyperbolic.Certainly subjective however Windows 10 runs smooth for me without issues. Neither of your descriptive's match my experience with the platform. I turn my PC on, double click the GW2 icon and the game runs. Terrible experience really :P

I'm not sure why people aren’t running dual boot anyways if you love Linux. You're just cheating yourself out of performance if you're not running the game on Windows.

well, maybe because I do not want to cheat myself out of security and sanity when I run windows.

I have supported windows installs. I do prowl security related websites. I do not touch windows at home. That simple.

Link to comment
Share on other sites

So, I've gotten myself a second monitor, which is 1440p. GW2 refuses to switch to this resolution, staying at 1080p...I tried increasing the DPI in Wine Settings, didn't change a thing. Emulating virtual desktop just launched the game in a window.

Edit: I tried with other games, and they work in 1440p just fine.

Edit2: Game's clearly getting it's display properties from my secondary screen (I've set the 1440p as primary). It's clear, because I noticed that the game limits itself to 50 fps, because the secondary had dropped to 50 Hz after I connected the new one. I fixed it back to 60, and game is now running at that.Also, the cursor jumps to the secondary screen when I get past the launcher. The launcher does open on the main monitor.

Is this something that was set when I first installed this standalone Wine package for this game? Should I reinstall so that the game notifies the new primary display?

Edit3: Nevermind, had to go force the new resolution via the GFXSettings.GW2.exe.xml

Link to comment
Share on other sites

@"draconicrose.6213" said:Omg I'm so excited for this! Of course I'm on Cinnamon and the compositor can't be disabled, apparently. ? Oh well, I've waited this far! If you need a tester when you get to Cinnamon, hit me up.

Glad to hear someone might have use for this :tongue:

I haven't looked into Cinnamon yet, and will start work on KDE soon... however it seems like you are right... after reading some forums Cinnamon's compositor is a core feature and more difficult to turn off... I say "more difficult" because I am sure that somewhere there is a config that can be overridden.

I stumbled upon this:

Menu button - Preferences - System SettingsSection Preferences: GeneralDisable compositing for full-screen windows: switch it on.

Normally you run GW2 with TacO in windowed/full-screen windowed mode. However, because this is a workaround which works with linux compositors, taco might work in full screen... Im not sure yet... and "full-screen windowed" might be seen as "full screen" by cinnamon.

You could try those tweaks, in the meantime I will do a bit of digging and add experimental support for cinnamon in the installer/module. :)

EDIT:The window manager for cinnamon is called Muffin based on Mutter & Metacity. The compositor is Clutter.

I am installing cinnamon now to see if I can find some overrides.

EDIT 2:I have managed to get compton working by killing the cinnamon process. However, it makes the desktop almost unusable and creates other issues. Installing Openbox and running that after killing cinnamon did the trick. It's all experimental at this point and not sure what issues might arise... theoretically might even improve performance. Will add this to the installer for testing.

Process would go like this:

install_taco.sh would install compton (& additionally openbox under the cinnamon option)run_taco.sh would1) kill cinnamon2) run openbox3) run compton4) run gw25) run taco6) on gw2 exit -> kill compton && openbox -> run cinnamon

This would simulate enabling/disabling composition without having to relogin/restart pc. Alternatively you can change cinnamon to a different DE to use permanently, but this way its portable.

Both Openbox & Compton are lightweight and should have minimal impact on performance (theoretically improving it actually)


@ArmoredVehicle.2849 as I dig deeper into these compositors I am noticing that different window managers/compositors affects gaming performance / screen tearing. Maybe we could investigate if using different window managers (ex. openbox) & compositors (ex. compton) and tweaking their configs could improve performance in gw2-wine?

Link to comment
Share on other sites

@ZenAge.4863 said:

@ArmoredVehicle.2849 as I dig deeper into these compositors I am noticing that different window managers/compositors affects gaming performance / screen tearing. Maybe we could investigate if using different window managers (ex. openbox) & compositors (ex. compton) and tweaking their configs could improve performance in gw2-wine?

Different WM's and compositors can affect performance, especially on low end systems, I switch my low end laptop to a plain openbox session for gaming which helps a bit. I think these kind of tweaks are best left to the user to experiment with though.

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