Linux Troubleshooting Guide

Grim Dawn944 views20 favorites10 min readby Sir GallantUpdated May 17, 2021View on Steam ↗

Introduction

I'm writing this guide to detail a particular issue relating to audio that I encountered running this game using Proton that was rarely documented (literally only able to find one or two people having my exact issue, and their suggested fixes didn't fix the issue). Because of this, I had a difficult time troubleshooting the issue, having to spend numerous hours trying to fix it. Thanks to a post in the Steam discussion forum by RagdolltInAir, I was able to eventually resolve the issue and I desired to create this guide to give more visibility on various issues Linux users may encounter and the steps they can try to fix it.

Each section will detail a particular problem (so far only one issue is covered in this guide) and possible steps to try and resolve the issue in question. Each section will be organized as two parts, the first detailing a summary of the issue, the second detailing steps to fix it. All solution steps are in order from easiest to hardest and it is highly recommended to perform the steps in the order they are presented in.

Before trying any of the steps in this guide, I highly recommend you check out mikedsc's guide here: https://steamcommunity.com/sharedfiles/filedetails/?id=700083557 They did a wonderful job putting it together, and the information listed within should be tried before attempting any of the steps mentioned in my guide.

DISCLAIMER: Please read the entire step when following any steps in the "Solution" sections before you actually do said step.

Issue: When battling groups of enemies the framerate drops into the single digits, and the sound effects play intermittently.

The original issue I had when I made this guide. In my experience this was not a serious issue early in the game, but became nigh unplayable when it came to playing the DLC content. This issue occurs whenever you battle large groups of enemies (even a small handful of enemies if they use alot of aoe attacks), causing the game's frame rate to drop to single digits for the duration of the fight, returning to normal once things calm down. Based on my research, this issue seems to be fairly system specific, only occurring on certain setups (hence the rare cases of someone encountering this issue). The simplest way to test if this is the cause of your problem, is to set Grim Dawn's Sound Efx volume slider to 0 (all the way to the left), muting Sound Efx in the process. If the performance drops vanish after doing this, then this is the cause.

It appears to be connected to how Pulseaudio handles the game's sound effects, whenever too many sound effects are played by the game, Pulseaudio is overloaded and it negatively impacts the framerate, bringing it to a crawl until Pulseaudio catches up. On Valve's Github, cryzed reported their theory believing it to be an issue with Pulseaudio's target sample format (more can be read on that here: https://github.com/ValveSoftware/Proton/issues/466 (cryzed's comments are about midway down the page).

Solutions

Option 1: Use a different version of Proton.

This appears to be a Proton specific issue, and switching what version of Proton is used for Grim Dawn may resolve it. In my case, using any of Valve's Proton versions did not solve the problem, but using GloriousEggroll's fork of it did. You can find his fork on github here: https://github.com/GloriousEggroll/proton-ge-custom.

The specific version of his fork that worked for me is Proton-6.5-GE-2 which can be found here: https://github.com/GloriousEggroll/proton-ge-custom/releases/tag/6.5-GE-2 but you may need to test different versions if a particular one does not solve your problem. If you are unfamiliar with installing custom versions of Proton, see the steps listed below.

Installing Custom Proton Versions

Disclaimer: Only download custom Proton versions from trustworthy sources! Custom Proton versions are not made by Valve. In this case, GloriousEggroll is well known in the Linux Proton community and he provides a checksum to verify that the download has not been tampered with. (I will not be detailing how to verify the sha512 checksums, there are other guides online for that.)

Step 1: Download the desired custom Proton version. You want to download the file that ends with the .tar.gz file extension.

Step 2: Unpack the .tar.gz file downloaded and install it.

Information on how to do this is provided here: https://github.com/GloriousEggroll/proton-ge-custom#installation

Step 3: After properly installing one of GE's releases and restarting steam (you must fully exit Steam), set Grim Dawn to use the newly installed Proton release.

  1. Right click the game in your Steam Library and click Properties.
  2. At the bottom of the General tab, Check Force the use of a specific Steam Play compatibility tool, then select the desired Proton version from the drop down menu.
  3. Launch the game.

Step 4: Verify that the issue is resolved.

If the issue is not resolved, you may need to try a different release from GloriousEggroll or move on to Option 2.

Option 2: Altering Pulseaudio's daemon.conf

Disclaimer: You should keep alterations to the daemon.conf to the bare minimum as it can potentially affect other applications. Don't change a setting without knowing what it does and make sure you have a backup of the config file before altering it.

Should the first option not solve your issue you can attempt to alter some of the values listed within the daemon.conf located in /etc/pulse/daemon.conf. Before altering any settings in the daemon.conf, you should backup the original config file to another location should you need to revert to defaults. These are the following settings that you may wish to uncomment and/or set the following values (for options that do not list a value after the = sign, simply uncomment that line by removing the ; and deleting the space, do not alter any of the values for that option. To turn a setting back off, add the space and ; back):

default-sample-rate
alternate-sample-rate
high-priority = yes
nice-level
resample-method = speex-float-10

For more information on what these options do, see the Arch Linux wiki here: https://wiki.archlinux.org/title/PulseAudio#Configuration. The Arch Linux wiki is a wonderful resource even if you do not use Arch. Please note that the resample-method option has numerous options that you can enter. You can list available resamplers by running the following command:
pulseaudio --dump-resample-methods

I recommend simply uncommenting one option at a time and restarting Pulseaudio when your troubleshooting. The commands may vary based on your distro, but if your on Ubuntu or a similiar distro, running
pulseaudio -k
followed by
pulseaudio --start
will kill and start a new Pulseaudio service.

Special Thanks to RagdolltInAir for his post in the discussion board for pointing me in the right direction for resolving this (https://steamcommunity.com/app/219990/discussions/0/3122659822732140375/).

Other Things to Try

If you tried any of my steps and failed to resolve your issue, you may wish to try some of the following:

  • Updating your graphics drivers (Distro specific, you will need to consult other guides online for this).
  • Rolling back to older graphics drivers (In the case of a problem appearing after updating your system. Again, distro specific.)
  • Consulting other guides such as mikeydsc's guide: https://steamcommunity.com/sharedfiles/filedetails/?id=700083557 While not all of the topics mentioned within may apply to those on Linux, some of their suggestions may help point you in the right direction.
  • Using a custom Proton version. One I highly recommend is GloriousEggroll's Proton fork https://github.com/GloriousEggroll/proton-ge-custom. For more information on that, please visit the link.

Additionally, here some other resources that I found while scouring the web during my troubleshooting. These are things I personally didn't try, but may still be useful for someone else:

A message to fellow Linux users...

This message is directed more towards those who wish to improve the experience of using Linux, be it for gaming or otherwise.

I just wanted to mention to fellow Linux users that we should be doing what is possible to improve the experience using Linux in the gaming sphere (and in general, but I'll stick with gaming). To start with, leaving reports regarding the compatibility of games on ProtonDB (https://www.protondb.com/) is incredibly useful to Linux users to help gauge whether or not a game will run well or not. It's helpful to make a report, even if its simply to say a game run's flawlessly, but it is even more valuable to leave a report if you encountered an issue and whether or not you were able to fix it. In some cases it even weighs into their decision of purchasing games without native Linux support. If you do not use ProtonDB, I would highly recommend that you do.

It would also be beneficial to encourage developers to support Linux where possible. Whether it's through native support, special patches made to enhance compatibility through Proton, Wine, etc., or any other support a game's developers can offer, anything is helpful and will eventually improve the gaming experience on Linux for all. Please be polite and considerate while doing this. Not all developers can afford to do so, or they do not have a strong enough financial incentive to support Linux in this way. It is especially helpful to thank developers who do offer some kind of support towards Linux. After all, they did take their time to support a relatively small section of the market.

Finally, for those that have means, help support the countless open source projects that are out there. Whether its your distro of choice, an open source alternative to closed source software, various compatibility projects, etc. The people behind these projects sacrifice much to create and improve these tools, be it volunteering their time for nothing or very little in return or sacrificing a higher paying job to work full time on an open source passion project. For these projects, monetary support can help tremendously, and it can be the difference between a project being fully realized or being abandoned.

Closing

This guide is currently a Work In Progress and only details the issue I encountered. If I run across any issues that don't have much documentation behind it I will try to include them here. If any Linux users who encountered a particularly difficult issue they eventually fixed and wish to contribute, please leave a comment below detailing the issue you had and what you did to fix it (if you followed a guide, please leave a link to that guide/ProtonDB report so I can properly link it and credit it), including your system specs and distro. If I made any glaring errors or glossed over something that should be explained in more detail, please let me know.

I aim to do what I can to list any reasonable means of fixing issues. I hope with the assistance of fellow Linux users that I can enhance this guide further, adding various issues and solutions that one might encounter when playing this game on Linux.

I hope this guide was helpful to my fellow penguins, keep on keeping on.

Credits

Just wanted to take a moment and give credit and my thanks to the following:

  • RagdolltInAir, for his forum post that led me to fixing my original issue. (Link To Post)
  • mikeydsc, for taking their time to make a wonderful guide to help people with various technical issues. (Guide)
  • Those at Crate Entertainment for making this wonderful game and for doing what they could to support Linux by releasing a few patches here and there to help improve the experience for those running it under Proton.
  • Those at Valve for the work they have done over the years to improve the experience of gaming on Linux (through Proton or otherwise).
  • Everyone who has contributed to the Wine Project to make Wine what it is today.
  • To all the developers and other contributors who work on the countless other open source/free software projects that exist on the internet today.
  • To those who wrote any resources I referenced or linked to in my guide. All credit pertaining to these resources belongs solely to their original authors.

This guide was created by its original author on the Steam Community. Are you the author and want it removed? Request removal.