Playing Guild Wars 2 on Linux - Performance optimizations and more. - Page 18 — Guild Wars 2 Forums
Home

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

11516182021

Comments

  • Nevin Kiludan.2639Nevin Kiludan.2639 Member ✭✭
    edited May 14, 2020

    I think the massive FPS drop was related to export WINEESYNC=1 and export WINEFSYNC=1. I get in The Eye of the North at Auren's place FSYNC 30 FPS and with ESYNC = 67 FPS. Looks like FSYNC has some issues with GW2.

    Now after installing the latest Kernel and Nvidia patches I get pretty stable 70-80 FPS and even improved graphics rendering in GW2. The postprocessing = high setting no longer makes the game look blurry anymore. It really looks and performs better than ever. - NICE!

  • @Nevin Kiludan.2639 said:
    I think the massive FPS drop was related to export WINEESYNC=1 and export WINEFSYNC=1. I get in The Eye of the North at Auren's place FSYNC 30 FPS and with ESYNC = 67 FPS. Looks like FSYNC has some issues with GW2.

    Are you sure the Kernel you were using had the fsync patched in? Because the game performs at half performance without both *syncs.

  • ZenAge.4863ZenAge.4863 Member ✭✭
    edited May 15, 2020

    Big Thanks to ArmoredVehicle for this project! It's pathetic that Linux is still undermined to this day, at least valve had some common sense to jump on this wagon ;D

    Anyways, I would just like to point out a few things.

    1) All of the links you posted that are in the google drive are inaccessible (at least to me, from multiple locations) and have been last time (1 year ago) that I tried to download the package. It just says "Unable to connect, can’t establish a connection to the server at drive.google.com." The only packages that are accessible are the ones stored in your FTP server. Nvm, got it to work from another location. Last time it was a problem with the download not starting when I pressed "Download Anyways" in google drive.
    2) The MD5 Checksums do not match. I have only checked the Intel package from your FTP, FrontPage=dfaaa13b2ea47fe0ad3213fba25dc0d9 MyTerminal=43f75ba60aef6112b3f5199d5ccb98dc Have you forgotten to update those, or should I be worried? :) Oof, nvm, looks like I need some more coffee. The checksum mismatch was due to a corrupt download (twice)... Intel one is looking good.
    3) I can traverse your FTP directories, including the SSH folder containing strange, distorted IMG files. :)
    4) If possible can you please update the legacy packages, and also host them on your FTP server - for people like me stuck on old hardware... really keen to play :)
    5) The GitHub installer maintained by liberodark shows last update to the packages was 16 months ago, sitting at v1.9.1. Your FTP shows v2.0.0.

    Thanks again for the amazing work you have done, and to everyone for providing their tweaks and tests! <3

  • @Hell Nirvana.9045 said:

    @Barabeam.4638 said:

    @Hell Nirvana.9045 said:
    Does anyone have experience running both GW2Hook (essentially ReShade) and arcdps simultaneously?
    I'm moving from Windows to Manjaro soon, and wondering whether I have to make a choice which to drop.

    Edit: The DLL files I have to use arcdps and GW2Hook together is to name arcdps as d3d9.dll, grab d3d9_chainload.dll linked on deltaconnected's website for ReShade, and GW2Hook as ReShade64.dll

    Hi, to be honest I haven't tried to run GW2Hook on linux, but I am using a vkBasalt (https://github.com/DadSchoorse/vkBasalt) which is described as: ("vkBasalt is a Vulkan post processing layer to enhance the visual graphics of games"). It has its own modifiers, and it can be configured to use Reshade shaders. It doesn't have a GUI, so I had to do a lot of tinkering to link things properly and set up the graphics to my liking :)

    Edit: There is a GUI application that can be used to configure vkBasalt to your liking (https://github.com/benjamimgois/goverlay), it can also configure Mangohud which is an overlay that can display fps, temps, cores utilization and more. I haven't tried it yet though and this is why I forgot to mention it.

    The reason I use GW2Hook as my ReShade version is the UI bypass. I don't believe it's done right anywhere else...

    Is it legal to use GW2Hook?

  • ArmoredVehicle.2849ArmoredVehicle.2849 Member ✭✭✭
    edited May 15, 2020

    @ZenAge.4863 said:
    Big Thanks to ArmoredVehicle for this project! It's pathetic that Linux is still undermined to this day, at least valve had some common sense to jump on this wagon ;D

    Anyways, I would just like to point out a few things.

    1) All of the links you posted that are in the google drive are inaccessible (at least to me, from multiple locations) and have been last time (1 year ago) that I tried to download the package. It just says "Unable to connect, can’t establish a connection to the server at drive.google.com." The only packages that are accessible are the ones stored in your FTP server. Nvm, got it to work from another location. Last time it was a problem with the download not starting when I pressed "Download Anyways" in google drive.
    2) The MD5 Checksums do not match. I have only checked the Intel package from your FTP, FrontPage=dfaaa13b2ea47fe0ad3213fba25dc0d9 MyTerminal=43f75ba60aef6112b3f5199d5ccb98dc Have you forgotten to update those, or should I be worried? :)
    3) I can traverse your FTP directories, including the SSH folder containing strange, distorted IMG files. :)
    4) If possible can you please update the legacy packages, and also host them on your FTP server - for people like me stuck on old hardware... really keen to play :)
    5) The GitHub installer maintained by liberodark shows last update to the packages was 16 months ago, sitting at v1.9.1. Your FTP shows v2.0.0.

    Thanks again for the amazing work you have done, and to everyone for providing their tweaks and tests! <3

    1) I put up the ftp server a few months ago because of that google issue, you're not the only one not able to access it, I recall someone else had the issue a few pages back.

    2) I downloaded the package from the server and ran the MD5 test, the result is the same as on the front page. Have you tried re-downloading it?

    3) That was a small slip up, I've recently updated the server's package and it didn't retain all settings, I found out the entire system was explorable only a day later (woops). The image files, they're a mini photo shoot for my dad for a local magazine, sending large pictures by email is not very practical, the SSH folder is meant to be for private stuff I transfer from home to work. :)

    4) The legacy packages are basically stuck at Wine 2.21 due to some patches incompatible with modern Wine versions, without these patches the game would run slower. I've uploaded them on the FTP server, link is here: ftp://jrugia.com:1025/GW2_Legacy_Packages/

    5) I'll try to get in touch with liberodark. His 1.9.1 package is from last December which could use a little update.

  • @Suzumiya.3049 said:

    @Hell Nirvana.9045 said:

    @Barabeam.4638 said:

    @Hell Nirvana.9045 said:
    Does anyone have experience running both GW2Hook (essentially ReShade) and arcdps simultaneously?
    I'm moving from Windows to Manjaro soon, and wondering whether I have to make a choice which to drop.

    Edit: The DLL files I have to use arcdps and GW2Hook together is to name arcdps as d3d9.dll, grab d3d9_chainload.dll linked on deltaconnected's website for ReShade, and GW2Hook as ReShade64.dll

    Hi, to be honest I haven't tried to run GW2Hook on linux, but I am using a vkBasalt (https://github.com/DadSchoorse/vkBasalt) which is described as: ("vkBasalt is a Vulkan post processing layer to enhance the visual graphics of games"). It has its own modifiers, and it can be configured to use Reshade shaders. It doesn't have a GUI, so I had to do a lot of tinkering to link things properly and set up the graphics to my liking :)

    Edit: There is a GUI application that can be used to configure vkBasalt to your liking (https://github.com/benjamimgois/goverlay), it can also configure Mangohud which is an overlay that can display fps, temps, cores utilization and more. I haven't tried it yet though and this is why I forgot to mention it.

    The reason I use GW2Hook as my ReShade version is the UI bypass. I don't believe it's done right anywhere else...

    Is it legal to use GW2Hook?

    As legal as ReShade. It's just that, but built for GW2, specifically.

  • Nevin Kiludan.2639Nevin Kiludan.2639 Member ✭✭
    edited May 15, 2020

    @ArmoredVehicle.2849 said:
    1) I put up the ftp server a few months ago because of that google issue, you're not the only one not able to access it, I recall someone else had the issue a few pages back.
    2) I downloaded the package from the server and ran the MD5 test, the result is the same as on the front page. Have you tried re-downloading it?

    Just install IPFS Browser extensions and share the files' URI:

    As an example I uploaded the current 2.0.0 releases (right click links and open in new tab eg.):

    Some free alternatives would be:

    I can help you set one up just PM me your Steam, Matrix or Jami ID if you like.

  • ZenAge.4863ZenAge.4863 Member ✭✭

    @ArmoredVehicle.2849 said:
    2) I downloaded the package from the server and ran the MD5 test, the result is the same as on the front page. Have you tried re-downloading it?

    Yes, my bad, it was due to a corrupt download...

    3) That was a small slip up, I've recently updated the server's package and it didn't retain all settings, I found out the entire system was explorable only a day later (woops). The image files, they're a mini photo shoot for my dad for a local magazine, sending large pictures by email is not very practical, the SSH folder is meant to be for private stuff I transfer from home to work. :)

    Haha... woops... sorry for snooping around, I thought I might find the legacy package so I looked around and realized it's all open. And "by strange & distorted images" I was referring to them being cut up on my side when I viewed them... I wasn't referring to the person or anything... haha... phew... what a morning... :#=)

  • Skotlex.7580Skotlex.7580 Member ✭✭✭✭
    edited May 15, 2020

    @ArmoredVehicle.2849 said:
    Thanks for the feedback, the only workaround to this would be to apply the staging patches without the affected patch. I need to read a bit how to exclude some of the staging patches in order still provide the good stuff that works (such as esync). Might take some time though but I'll keep it in mind.

    I've managed to trace this down to the Wine patchset called "user32-rawinput-mouse-experimental", and the specific patch that introduces this issue is "user32-rawinput-mouse-experimental/0001-winex11.drv-Add-support-for-absolute-RawMotion-event.patch". However, it makes me feel like the issue might be in the xf86_input_joystick driver, which initializes the device as InitValuatorAxisStruct() with the Absolute variable because the joystick IS reporting absolute values, however handling axis information invokes xf86PostMotionEvent() with the parameter is_absolute=0 (meaning, relative).

    I think I'll report this to the wine bug-tracker, as it seem the calls are being done correctly by the joystick driver.

    EDIT: Wine bugzilla report https://bugs.winehq.org/show_bug.cgi?id=49163

  • Hello, if I may ask, as a total idiot: there is a strange problem that occurs randomly: the gw2 window gets the Linux bar (with date, time etc) on top of it. If i do anything regarding graphics, tabbing out or closing the game, the whole linux UI dies. Then i can only shut down the PC. If i then reboot, the OS wont boot until like 15 minutes after that. This graphic thing happens with any ingame graphic settings.
    if any of you could tell me what i can do in any of these steps, i would appreciate it. Anything helps, i am very unknowledgeable :)

  • Torben.5628Torben.5628 Member ✭✭

    @Berobad.4536 said:
    I've been probing around with the available cpu schedulers a bit and the difference of running around in Amnoon is quite big
    (12 Core Ryzen 3900X with Navi on 4K)

    on both FSync and ESync:

    Default CFS: 35-55 FPS
    Zen Patched CFS: 40-65 FPS
    PDS: 30-55 FPS


    MuQSS and BMQ don't seem to like FSync
    | | |
    | -----------------:| ----------------- |
    | MuQSS ESync: | 30-45 FPS |
    | MuQSS FSync: | 15-35 FPS |
    | BMQ Esync: | 35-55 FPS |
    | BMQ Fsync: | 30-45 FPS |


    But for BMQ limiting GW2 to 6 cores with taskset -c 0-5 does bring it to 40-60 FPS.

    GPU was forced to high for this test (2GHz shader clock), but a short test againt auto (1.3 to 1.8 GHz shader clock) showed no difference in fps.
    cpufreq set to performance


    So at least for an high core Ryzen with AMD GPU the -zen kernels with patched CFS scheduler seem to be the best choice for Guild Wars 2

    Could you please add some more info? Like, is using this kernel from the arch repo and booting to it enough? https://www.archlinux.org/packages/extra/x86_64/linux-zen/
    Or do you need to apply some sort of patch yourself to that in order to get the "Zen Patched CFS"?

    thanks.

  • Mack.3045Mack.3045 Member ✭✭✭
    edited May 28, 2020

    With the news Windows 2020 May update it's now shipping with it's own Linux Kernel

    "Meet the Windows Subsystem for Linux 2, and Terminal
    When Microsoft introduced the Windows Subsystem for Linux (WSL) as part of the Windows 10 Anniversary Update in 2016, it was a shock to see Microsoft embrace Linux after opposing it for so many years. But the original Windows Subsystem for Linux was hobbled by the fact that it wasn’t running a real Linux kernel. Certain kernel modules, such as device drivers, were unable to run"

    "With WSL2, Linux now runs on its own kernel, in what’s essentially a virtual machine. If you use Linux, you’ll also be able to place your Linux files within the Linux root file system, and access them via Windows File Explorer inside the Linux virtual hard disk. Consequently, performance is expected to improve, one of the key upgrades for WSL2 over WSL1."

    https://www.pcworld.com/article/3526472/windows-10-20h1-review-microsoft-boosts-linux-and-your-phone-but-cortana-slips-hard.html

    @ArmoredVehicle.2849
    Does that mean i can essentially run GW2 in the virtual Linux System embedded within the Windows 2020 May update once i install a distro ?

  • Does anyone know of any Linux alternative solutions for Yolomouse? I have trouble losing my cursor when there's a lot of effects on-screen.

  • Knox.3748Knox.3748 Member ✭✭

    Is this version using dx9 or 12 ? If its , is it possible to install the 12 mod and is there any benefits ?

  • @Knox.3748 said:
    Is this version using dx9 or 12 ? If its , is it possible to install the 12 mod and is there any benefits ?

    It uses DXVK which is DX9 to Vulkan. d912pxy might work with VKD3D but I never tried it.
    Having said that, (so far) all the DX12 games I tried in Wine perform slower than DXVK's DX11 implementation, I don't think GW2 would fair any better.

    @Mack.3045 said:
    @ArmoredVehicle.2849
    Does that mean i can essentially run GW2 in the virtual Linux System embedded within the Windows 2020 May update once i install a distro ?

    Most probably you can with some tinkering, wouldn't count the game as playable though.

  • Knox.3748Knox.3748 Member ✭✭

    @ArmoredVehicle.2849 said:

    @Knox.3748 said:
    Is this version using dx9 or 12 ? If its , is it possible to install the 12 mod and is there any benefits ?

    It uses DXVK which is DX9 to Vulkan. d912pxy might work with VKD3D but I never tried it.
    Having said that, (so far) all the DX12 games I tried in Wine perform slower than DXVK's DX11 implementation, I don't think GW2 would fair any better.

    @Mack.3045 said:
    @ArmoredVehicle.2849
    Does that mean i can essentially run GW2 in the virtual Linux System embedded within the Windows 2020 May update once i install a distro ?

    Most probably you can with some tinkering, wouldn't count the game as playable though.

    Thank you :)

  • ZenAge.4863ZenAge.4863 Member ✭✭

    Hey, would appreciate an opinion on this:

    I am using the legacy Intel/AMD packages and so far it has worked wonders... I get something between a stable 25fps to a whopping 45fps depending on location/activity,

    However...

    For some reason I get this constant pattern of ~5mins running smooth, ~1min low fps... then repeats. I have noticed during these fps drops that my fan speed alternates.
    Now I have already overrided the cpu into max-freq/performance mode, however every time the FPS drops to around 8fps, the cpu runs quiet, and as soon as the FPS restores to about 25fps, it speeds up again.

    I have a feeling that the system is still throttling the CPU despite the overrides? Maybe it's a heat issue? I would imagine the system would force a cooldown/throttle when it sees the CPU running at max freq/temps.

    Would appreciate some input/advice as it kinda makes it unplayable for me because every ~5mins I drop back to 8fps... even though I get up to 45fps in the same, region/environment. I tested this running around in circles in heart of the mists, and it just alternates between 8fps and 30fps, with an approximately fixed time-span.

  • Barabeam.4638Barabeam.4638 Member ✭✭

    @ZenAge.4863 said:

    I have a feeling that the system is still throttling the CPU despite the overrides? Maybe it's a heat issue? I would imagine the system would force a cooldown/throttle when it sees the CPU running at max freq/temps.

    Hi, if it is a software/hardware issue, I don't think I can help, but if it is thermal I might have ideas. Do you keep track of your thermals while playing? you can use dxvk_hud or mango_hud. I prefer mango, here is the link: https://github.com/flightlessmango/MangoHud

    setup should be easy, and so is running it. in the website you will have details on how to configure it to your liking. There is an option to log data to a file so you can analyze them or even create your own benchmarks. There are also videos on youtube that walkthrough you through that. i.e.

    Is it a laptop or desktop PC? I assume providing hardware information could make helping you much easier. Anyway, having a clear track of the thermals can help you make sure whether the issue is related to thermals or not :).

  • Is there currently any difference in running Lutris version or packages provided here?

  • ZenAge.4863ZenAge.4863 Member ✭✭
    edited June 10, 2020

    So I used watch -n 1 sensors to monitor my temps and indeed the temps are running near critical levels...

    acpitz-acpi-0
    Adapter: ACPI interface
    temp1:       +102.0°C  (crit = +127.0°C)
    
    coretemp-isa-0000
    Adapter: ISA adapter
    Package id 0: +102.0°C  (high = +87.0°C, crit = +105.0°C)
    Core 0:        +98.0°C  (high = +87.0°C, crit = +105.0°C)
    Core 1:       +100.0°C  (high = +87.0°C, crit = +105.0°C)
    
    BAT1-acpi-0
    Adapter: ACPI interface
    in0:          12.01 V 
    

    This led me down a long and annoying rabbit hole of trying to force my fan to run full speed constantly (I don't mind the noise).

    did sensors-detect & then pwmconfig which just shows "There are no pwm-capable sensor modules installed". Tried about 10+ forum posts regarding this issue and the workarounds but nothing worked. I have a Lenovo G580 and it has some kind of noise-control feature, which according to an 8 year old unresolved lenovo forum thread, is uncontrollable. The forum was funny to read tho, they have horrible support, won't ever buy another lenovo product lol.

    It could be some firmware I have to install but I can't be bothered to go any deeper right now..

    So not sure what I can do, if I could control the fan speeds I could force it to cool better and prevent it from jumping up and down which seems to cause the FPS drops.

  • @ZenAge.4863 said:
    So I used watch -n 1 sensors to monitor my temps and indeed the temps are running near critical levels...

    The temperatures are indeed very high!

    If I were you I would do the following:
    1- Open up the device and clean it from any dust that might impede heat transfer.
    2- Check if there is a way to change the connections of the fans manually to make it run at full speed if you don't mind the noise as you mentioned. But this can be risky if you don't have the skills and tools to clip and soldier and so on.

    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 :)

    Software wise, the forums of the distribution you are using would be your best bet. It seems like you have already done your homework though.

  • VAHNeunzehnsechundsiebzig.3618VAHNeunzehnsechundsiebzig.3618 Member ✭✭✭✭
    edited June 10, 2020

    @ZenAge.4863 said:
    So I used watch -n 1 sensors to monitor my temps and indeed the temps are running near critical levels...

    acpitz-acpi-0
    Adapter: ACPI interface
    temp1:       +102.0°C  (crit = +127.0°C)
    
    coretemp-isa-0000
    Adapter: ISA adapter
    Package id 0: +102.0°C  (high = +87.0°C, crit = +105.0°C)
    Core 0:        +98.0°C  (high = +87.0°C, crit = +105.0°C)
    Core 1:       +100.0°C  (high = +87.0°C, crit = +105.0°C)
    
    BAT1-acpi-0
    Adapter: ACPI interface
    in0:          12.01 V 
    

    This led me down a long and annoying rabbit hole of trying to force my fan to run full speed constantly (I don't mind the noise).

    did sensors-detect & then pwmconfig which just shows "There are no pwm-capable sensor modules installed". Tried about 10+ forum posts regarding this issue and the workarounds but nothing worked. I have a Lenovo G580 and it has some kind of noise-control feature, which according to an 8 year old unresolved lenovo forum thread, is uncontrollable. The forum was funny to read tho, they have horrible support, won't ever buy another lenovo product lol.

    It could be some firmware I have to install but I can't be bothered to go any deeper right now..

    So not sure what I can do, if I could control the fan speeds I could force it to cool better and prevent it from jumping up and down which seems to cause the FPS drops.

    well, if you can't turn it off in the bios, you are basically out of luck. Some people do manipulate bios files, but that is nothing anyone without a deep understanding should ever try.

  • Appipapi.7019Appipapi.7019 Member
    edited June 11, 2020

    @draconicrose.6213 said:
    I have tried stuff myself, but I honestly can't get it to show up over the game and I'm very much out of my depth with it. Sorry to keep bothering you but it's the ONLY thing that makes me miss Windows.

    I am actualy one step further. I can make it show up over the game, no problem.
    But it is not transparent, and therefore not realy usable as an overlay.
    im using manjaro,, patched today, and basicly the default configuration that lutris has,
    ge-protonified-4.9 for me both nofshack and the usual work that way.
    when i start the executable with lutris "start exe inside wine prefix", or when i just run
    /home/username/.loca
    l/share/lutris/runners/wine/ge-protonified-nofshack-4.9-x86_64/bin/wine GW2TacO.exe

  • ZenAge.4863ZenAge.4863 Member ✭✭
    edited June 26, 2020

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

    It doesn't matter where I am in-game or what i'm doing. I could be standing in an empty zone in some instance at 45fps doing nothing and every 3mins get these fps drops... I have no idea whats happening/what the CPU logic is thinking. I dunno, the issue is consistent so there should be a link somewhere to something..


    On another note... I finished war eternal the other night... and as soon as I threw the spear at kralkatoriks heart, just before the cinematic, my entire game froze. I could hear the sounds/music, but apart from that was permanently frozen...

    When I logged back in, I was back to the start of that mission (obviously) and it didn't register that I finished it. So I did it again... and same thing happened.. froze as soon as I pierce the heart. Atm I am unable to finish LWS4 because of this... Just curious if this is a wine issue, is my game corrupt, or is this a gw2 issue others are having too unrelated to wine? I am going to try play the mission again with a party member, see if that helps...

    UPDATE
    On the 3rd playthrough I tried with a party member, they were able to watch the cinematic but mine was frozen. They got kicked shortly after.
    On the 4th playthrough and 2 game file rechecks, I tried finishing the mission under the dxvk package (not legacy), FPS was terrible but I managed to get through and finally finished the mission.

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

  • Mack.3045Mack.3045 Member ✭✭✭

    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 6800k
    GPU RX5700XT
    32 Gig of RAM
    256 GB NVme SSD

  • ZenAge.4863ZenAge.4863 Member ✭✭
    edited June 18, 2020

    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 performance
    sudo cpufreq-set -c 1 -u 2600Mhz -g performance
    sudo cpufreq-set -c 2 -u 2600Mhz -g performance
    sudo 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 0x4000850089
    sudo wrmsr -p1 0x1a0 0x4000850089
    sudo wrmsr -p2 0x1a0 0x4000850089
    sudo 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-0000
    Adapter: ISA adapter
    Package 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.

  • @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 6800k
    GPU RX5700XT
    32 Gig of RAM
    256 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.

  • Mack.3045Mack.3045 Member ✭✭✭

    @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 6800k
    GPU RX5700XT
    32 Gig of RAM
    256 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...

  • @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 6800k
    GPU RX5700XT
    32 Gig of RAM
    256 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.

  • Mack.3045Mack.3045 Member ✭✭✭

    @VAHNeunzehnsechundsiebzig.3618 said:

    @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 6800k
    GPU RX5700XT
    32 Gig of RAM
    256 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 😂

  • ZenAge.4863ZenAge.4863 Member ✭✭
    edited October 2, 2020

    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.

  • ZenAge.4863ZenAge.4863 Member ✭✭
    edited June 26, 2020

    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-conf
    then compton-conf

    Opacity Tab
    Set 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 ^^

  • ZenAge.4863ZenAge.4863 Member ✭✭
    edited June 22, 2020

    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 mounted
    FOLDER_HDD="$HOME/gw2/shader_cache" # Path to our backup hdd folder
    PERMMODE="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 done
    MARKFILE_RUNNING=".zz_ramdrive_sync_is_running" # Marking that an action is running at the moment.
    # ===== Configuration END =====
    
    # Calculate folderpaths for the markers
    MARKFILE_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_sayhi
    func_makefolders
    func_mount
    func_mark_open
    func_sync
    func_mark_close
    func_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.

  • ArmoredVehicle.2849ArmoredVehicle.2849 Member ✭✭✭
    edited June 22, 2020

    @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 :)

  • ZenAge.4863ZenAge.4863 Member ✭✭

    @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 folder
    4) 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.sh
    4) 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 ^^

  • ArmoredVehicle.2849ArmoredVehicle.2849 Member ✭✭✭
    edited June 22, 2020

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

  • ZenAge.4863ZenAge.4863 Member ✭✭
    edited June 23, 2020

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

  • ZenAge.4863ZenAge.4863 Member ✭✭
    edited October 2, 2020

    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 Video / Manual Method

    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

  • Hell Nirvana.9045Hell Nirvana.9045 Member ✭✭
    edited June 25, 2020

    @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?

    +1
    I'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.

  • Little Howl.5231Little Howl.5231 Member ✭✭✭

    @VAHNeunzehnsechundsiebzig.3618 said:

    @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 6800k
    GPU RX5700XT
    32 Gig of RAM
    256 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.

  • ZenAge.4863ZenAge.4863 Member ✭✭

    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.

  • Little Howl.5231Little Howl.5231 Member ✭✭✭

    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 😝

  • @Little Howl.5231 said:

    @VAHNeunzehnsechundsiebzig.3618 said:

    @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 6800k
    GPU RX5700XT
    32 Gig of RAM
    256 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.

  • Hell Nirvana.9045Hell Nirvana.9045 Member ✭✭
    edited July 11, 2020

    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

  • draconicrose.6213draconicrose.6213 Member ✭✭✭

    @ZenAge.4863 said:
    Guild Wars 2 TacO on Linux

    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.

  • ZenAge.4863ZenAge.4863 Member ✭✭
    edited July 15, 2020

    @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 Settings
    Section Preferences: General
    Disable 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 would
    1) kill cinnamon
    2) run openbox
    3) run compton
    4) run gw2
    5) run taco
    6) 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?

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

  • many years ago, a plain kwin gave me the best performance. These days I don't see a difference betwen kwin&plasma, openbox&lxqt, openbox plain and twm. A year ago, I tried using no wm at all, just going down the startx/xinitrc route. But the difference was so minor, it was not worth the hassle.

  • ZenAge.4863ZenAge.4863 Member ✭✭

    @ArmoredVehicle.2849 said:
    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.

    I think you are right, it should be left to the user... but maybe a mention that they could do something like this (if they looking for that extra fps) would help... I honestly didn't know about openbox until now when messing around with the WMs.

    @VAHNeunzehnsechundsiebzig.3618 said:
    many years ago, a plain kwin gave me the best performance. These days I don't see a difference betwen kwin&plasma, openbox&lxqt, openbox plain and twm. A year ago, I tried using no wm at all, just going down the startx/xinitrc route. But the difference was so minor, it was not worth the hassle.

    You are right, these days the differences are minor... however it also depends on the hardware, so in your setup it might of been minor, but for others (maybe those with low end pcs, or nvidia related issues) it could be quite the improvement... and some some people really go that extra mile for a boost of 1fps xD