Special K DLL injection freezes Steam Deck
Software information
- Any game.
System information
- Steam Deck OLED.
- Stable channel.
Quoting Sangeki from the Special K thread:
With anything newer than Proton 9.0-2 Special K causes RAM to fill up to exhaustion on launch of a game. 9.0-3 was recently promoted from RC and is probably causing this issue and your Deck to freeze
Can confirm Special K DLL injection was working before that update.
Hello @SaltyBet, please add PROTON_LOG=1 %command% to a couple game's launch options and attach the generated $HOME/steam-$APPID.log to this issue report as a file. (Proton logs compress well if needed.) Also, please explicitly note what OS release you're using as "stable channel" doesn't age well (SteamOS 3.5.19 expected).
OS: Arch Linux
Proton Version(s): Working: 8.0-5 Broken: 9.0-3 Last known working version: 9.0-2
Games Tested: NieR:Automata (524220) NieR Replicant ver.1.22474487139... (1113560)
Observed Behavior: Proton 9.0-3: Games launch but run very slowly and immediately start consuming all available RAM and SWAP. Proton 8.0-5: Games launch and appear to function normally.
This isn't on Steam Deck/SteamOS but the issue isn't directly related to either and the outcome is the same.
Software information
Granblue Fantasy: Versus (1090630)
System information
Steam Deck OLED
(deck@steamdeck ~)$ cat /etc/os-release
NAME="SteamOS"
PRETTY_NAME="SteamOS"
VERSION_CODENAME=holo
ID=steamos
ID_LIKE=arch
ANSI_COLOR="1;35"
HOME_URL="https://www.steampowered.com/"
DOCUMENTATION_URL="https://support.steampowered.com/"
SUPPORT_URL="https://support.steampowered.com/"
BUG_REPORT_URL="https://support.steampowered.com/"
LOGO=steamos
VARIANT_ID=steamdeck
VERSION_ID=3.5.19
BUILD_ID=20240422.1
Steam Beta Branch: Steam Deck Stable Steam Version: 1726683985 Steam Client Build Date: Wed, Sep 18 12:13 UTC -08:00 Steam Web Build Date: Mon, Sep 16 18:12 UTC -08:00 Steam API Version: SteamClient021
Log:
it seems like something happened between valve exp and bleeding edge. when i used exp proton tkg/wine tkg it worked fine, but anything newer than that causes games to crash on a fresh Vanilla Arch install.
The reason why this breaks is caused by the addition of the (incomplete?) implementation of IAudioSessionEnumerator Inside Special K, we attempt to enumerate all of the Audio Sessions in order to provide audio mixing in-game, however, Wine memory leaks every time we construct the SessionEnumerator, which we do repeatedly until we get the audio session for the current process, the code responsible for that can be found here: https://github.com/SpecialKO/SpecialK/blob/e727014e2b77d38469b6090ba1d8656c8093d9ee/src/sound.cpp#L486 On the meanwhile, the latest Special K nightly has a workaround for this issue, which from my testing seems to be all that is required to get Special K working under Proton again.
I can confirm that it does indeed work again, starting with Special K 24.10.19. Awesome!
Thanks @MapleHinata / @Sangeki.
Confirmed fixed here too.
Will close the issue.
Cheers.