Heroic, Proton+UMU, and Steam's Shader Caching Setting

I can't open Heroic in desktop mode on my deck after the latest updates went out. Running it from the command line gives the following:
flatpak run com.heroicgameslauncher.hgl
[13:1215/115304.093011:ERROR:ozone_platform_x11.cc(245)] Missing X server or $DISPLAY
[13:1215/115304.093064:ERROR:env.cc(258)] The platform failed to initialize. Exiting.
/app/bin/heroic-run: line 6: 13 Segmentation fault (core dumped) zypak-wrapper /app/bin/heroic/heroic "$@"
flatpak run com.heroicgameslauncher.hgl
[13:1215/115304.093011:ERROR:ozone_platform_x11.cc(245)] Missing X server or $DISPLAY
[13:1215/115304.093064:ERROR:env.cc(258)] The platform failed to initialize. Exiting.
/app/bin/heroic-run: line 6: 13 Segmentation fault (core dumped) zypak-wrapper /app/bin/heroic/heroic "$@"
I tried running rpm-ostree install plasma-workspace-x11 to make sure it had the xorg fallback installed, but it's still booting into Wayland right now
116 Replies
fascinating-indigo
fascinating-indigoOPβ€’6mo ago
there is also the issue that in game mode ever game has a black screen, but sound, when using UMU
fascinating-indigo
fascinating-indigoOPβ€’6mo ago
fascinating-indigo
fascinating-indigoOPβ€’5mo ago
i figured out the first issue, it turns out my flatseal permissions were a bit off after some testing. after resetting those i can launch heroic with no issue the UMU issue is still happening though. here are two logs for Cat Quest, the first is with UMU on and in Game Mode, which does not show the game but still produces sound
fascinating-indigo
fascinating-indigoOPβ€’5mo ago
fascinating-indigo
fascinating-indigoOPβ€’5mo ago
the second is with no settings changed at all, but it's in desktop mode and works without issue
fascinating-indigo
fascinating-indigoOPβ€’5mo ago
fascinating-indigo
fascinating-indigoOPβ€’5mo ago
i've asked in the bazzite discord with no concrete answers the launch commands are in a completely different order between the two, and the one in game mode has --skip-version-check where the one in desktop mode doesn't
national-gold
national-goldβ€’5mo ago
does it work correctly without UMU? becuase if it fails only with UMU maybe it's something to report in the UMU github for more visibility of their devs
fascinating-indigo
fascinating-indigoOPβ€’5mo ago
it does, yeah in your opinion, it doesn't look like user error or something that is wrong on my hardware, then?
national-gold
national-goldβ€’5mo ago
I can't tell for sure, but if the game works without UMU I'd suspect UMU (it's not the first game I see failing with UMU enabled and working without UMU)
fascinating-indigo
fascinating-indigoOPβ€’5mo ago
for me it is every single game
fascinating-indigo
fascinating-indigoβ€’5mo ago
i think the point was all games with umu dont work while they work for others
national-gold
national-goldβ€’5mo ago
oh ok, I misunderstood that
fascinating-indigo
fascinating-indigoOPβ€’5mo ago
no worries!
fascinating-indigo
fascinating-indigoβ€’5mo ago
so sounds like something uniquely configured on his machine somehow but who knows what x_x have you... just formated and started over? heh
fascinating-indigo
fascinating-indigoOPβ€’5mo ago
i'm trying with everything i have to not do that
fascinating-indigo
fascinating-indigoβ€’5mo ago
its honestly the only thought i have, not sure how much configuration time went into bazzite tho so that sucks
fascinating-indigo
fascinating-indigoOPβ€’5mo ago
not an insufferable amount, but i have a bunch of saves on here from emulated games that i don't want to hunt down
fascinating-indigo
fascinating-indigoβ€’5mo ago
are they not all stored in one place?
fascinating-indigo
fascinating-indigoOPβ€’5mo ago
no, not really yuzu in one place, snes in another, then dolphin in another
fascinating-indigo
fascinating-indigoβ€’5mo ago
i dunno what emulators bazzite uses but if its libretro based then they should all be stored in one spot in your .config
fascinating-indigo
fascinating-indigoOPβ€’5mo ago
it's emudeck it has sim links to all of the save points and it manages them all, as far as i understand it
fascinating-indigo
fascinating-indigoβ€’5mo ago
looks like some are symlinks some arent but all of it is in Emulation/saves so you can probably figure out which ones are symlinks at least still kind of annoying haha
fascinating-indigo
fascinating-indigoOPβ€’5mo ago
very, i would much rather figure out what is wrong with my system than hunt all that down
fascinating-indigo
fascinating-indigoβ€’5mo ago
too bad it doesnt have some kind of archive or backup thing since its already managing all thesaves
fascinating-indigo
fascinating-indigoOPβ€’5mo ago
this looks promising https://github.com/SeanWilken/EDSBS never mind, that's just a copy of the existing saves folder which includes the symlinks, but doesn't follow it deeper i've posted the issue here: https://github.com/Open-Wine-Components/umu-launcher/issues/318 it may be a bazzite bug based on what that thread speculated https://github.com/Open-Wine-Components/umu-launcher/issues/318#issuecomment-2567297982 the relevent piece
Assuming those logs are correct and I'm not missing anything else, the problem is because neither STEAM_COMPAT_TRANSCODED_MEDIA_PATH, STEAM_COMPAT_MEDIA_PATH, STEAM_FOSSILIZE_DUMP_PATH, and DXVK_STATE_CACHE_PATH are set for umu to get the app ID from. Those env vars being set are a requirement to fix game windows.
Assuming those logs are correct and I'm not missing anything else, the problem is because neither STEAM_COMPAT_TRANSCODED_MEDIA_PATH, STEAM_COMPAT_MEDIA_PATH, STEAM_FOSSILIZE_DUMP_PATH, and DXVK_STATE_CACHE_PATH are set for umu to get the app ID from. Those env vars being set are a requirement to fix game windows.
is this a problem with something i've accidentally deleted? Bazzite dev guy is saying it's most likely not a Bazzite issue is there any reason that you know of that umu may not be getting the steam id correctly?
stormy-gold
stormy-goldβ€’5mo ago
cannot reproduce - I was playing Brotato last night
fascinating-indigo
fascinating-indigoOPβ€’5mo ago
that is the thing that is frustrating me the most. I know that no one else has this issue, and i have no idea what i did to break it. therefore, I can't really fix it. it's driving me nuts I also don't seem to be able to explain adequately what's going on, so I feel like a failure in terms of technical communication
national-gold
national-goldβ€’5mo ago
I checked on my steamdeck and I don't have any of those env variables defined
fascinating-indigo
fascinating-indigoOPβ€’5mo ago
same
national-gold
national-goldβ€’5mo ago
I don't know what should define them but they are not there by default and heroic is not adding them either
fascinating-indigo
fascinating-indigoOPβ€’5mo ago
according to the guy helping me in the github issue, they need to be set by the OS according to the Bazzite dev, they don't touch them
national-gold
national-goldβ€’5mo ago
also, heroic does set the STEAM_COMPAT_APP_ID and GAMEID env variables that seems to be what UMU uses too? https://github.com/Open-Wine-Components/umu-launcher/blob/59a82ea8cd284c7535bc06b8f6156abb7da96f6a/tools/umu-run-posix#L40 heroic also setts some other STEAM_COMPAT_ env variables:
GAMEID=umu-0
STEAM_COMPAT_INSTALL_PATH=/home/ariel/Games/Heroic/Redacted
STEAM_COMPAT_CLIENT_INSTALL_PATH=/home/ariel/.steam/steam
STEAM_COMPAT_DATA_PATH=/home/ariel/Games/Heroic/Prefixes/[REDACTED]
STEAM_COMPAT_APP_ID=0 SteamAppId=0 SteamGameId=heroic-Redacted
GAMEID=umu-0
STEAM_COMPAT_INSTALL_PATH=/home/ariel/Games/Heroic/Redacted
STEAM_COMPAT_CLIENT_INSTALL_PATH=/home/ariel/.steam/steam
STEAM_COMPAT_DATA_PATH=/home/ariel/Games/Heroic/Prefixes/[REDACTED]
STEAM_COMPAT_APP_ID=0 SteamAppId=0 SteamGameId=heroic-Redacted
but none are the ones they mention there
genetic-orange
genetic-orangeβ€’5mo ago
rsync -avh --copy-links "/PATH/TO/EMULATION/SAVES" "/PATH/TO/YOUR/DESIREDBACKUPLOCATION" That'll follow the symlinks and copy all of your saves to a folder of your choice if you do want to go nuclear (I don't have any recommendations either way, I don't know the solution to this)
fascinating-indigo
fascinating-indigoOPβ€’5mo ago
I'll do that is there a way to copy them back since it's in the same structure? like, a reverse of --copy-links if not, i'd probably need to do this one at a time man page says that maybe --keep-dirlinks may work with the description treat symlinked dir on receiver as dir
genetic-orange
genetic-orangeβ€’5mo ago
That's what it sounds like yeah, haven't used that flag before though, https://unix.stackexchange.com/questions/116775/how-to-copy-directory-structure-without-removing-symlinks, seems like it worked here as well?
fascinating-indigo
fascinating-indigoOPβ€’5mo ago
amazing well, looks like i'm going nuclear. thank you so much for that last piece of the puzzle
genetic-orange
genetic-orangeβ€’5mo ago
The launch codes instead of a fix πŸ˜…
fascinating-indigo
fascinating-indigoOPβ€’5mo ago
LOL it's done. thanks for all your input on this
stormy-gold
stormy-goldβ€’5mo ago
what was the final resolution?
fascinating-indigo
fascinating-indigoOPβ€’5mo ago
yeah, i just reinstalled and it's working now almost done restoring the backups
national-gold
national-goldβ€’5mo ago
now you should try to break it the same way so we all know how it happened πŸ‘€
fascinating-indigo
fascinating-indigoOPβ€’5mo ago
lol you're tempting fate at my expense there and I'm not a fan i feel like I'm going crazy. it is happening yet again, and i have no idea why. I've un-installed every decky plug in, deleted heroic's umu to make it re-download, removed the prefix, un-installed a bunch of flatpaks, re-installed heroic, verified game files, and nothing works to reverse this. it worked until I updated through the game mode interface, and now it's broken. why in the hell does it work in desktop mode, but not in game mode??? that's the piece of this that is really eating at me (you just had to ask me to break it in the same way, didn't you?) I'm gonna try steamOS, I guess
stormy-gold
stormy-goldβ€’5mo ago
Updated what through game mode?
fascinating-indigo
fascinating-indigoOPβ€’5mo ago
the system at least, i assume that's what's happening when you go into Settings -> System -> Software Updates
fascinating-indigo
fascinating-indigoOPβ€’5mo ago
i've prepared three log files, one for every store. they each have as much detail as i know how to put in these i would love to know if anything sticks out to any of you i played each one until i heard a sound, then backed out of the game i can also provide desktop mode versions of each one if that would be helpful either i'm crazy or something is seriously broken that i keep doing i just reimaged to SteamOS and am having the exact same problem. the only things that i've changed on the steam deck are 1. installing heroic and games 2. installing anydesk 3. installing decky loader with the following modifications: a. SteamGridDB b. ProtonDB Badges c. TabMaster d. CSS Loader i. Art Hero ii. Better Game Badges iii. Centered Game Text iiii. Game Header Text Stroke iiiii. Mini Carousel iiiiii. Round 4. installing emudeck and games none of this (except maybe CSS Loader) should be interfering with how a game launches from Heroic every single game works from Steam or EmuDeck, but none of them work with Heroic and Proton+UMU i should note that i tested to make sure it was working after i installed all the decky plugins, and it was.
stormy-gold
stormy-goldβ€’5mo ago
I have different CSS addons than you, but I have everything else try unwinding all of the CSS addons and disabling the extension
fascinating-indigo
fascinating-indigoOPβ€’5mo ago
sure * turned off all CSS Loader themes * deleted all the themes * switched to desktop mode * disabled deckyloader entirely * restarted * no change ah, one thing i forgot to mention that i changed is that i gave Heroic a single extra permission using flatseal for All user files to be able to save one of my games The Banner Saga, i don't know where it saves, but i know it's somewhere in my home directory do you have Shader Pre-Caching on? i just turned that on and it's working now.... what the hell?
stormy-gold
stormy-goldβ€’5mo ago
I don't download precompiled shaders if that's what you mean. I cache on-device it also shouldn't affect Heroic stuff
fascinating-indigo
fascinating-indigoOPβ€’5mo ago
meaning you have the setting turned off in steam, yes? what's the proton version you launch apps with in steam's settings? is it experimental or something else?
stormy-gold
stormy-goldβ€’5mo ago
I set to experimental as default
fascinating-indigo
fascinating-indigoOPβ€’5mo ago
to be clear, you have this setting turned off?
No description
stormy-gold
stormy-goldβ€’5mo ago
I do have that turned off. it doesn't affect non-Steam stuff
fascinating-indigo
fascinating-indigoOPβ€’5mo ago
well, i just turned it off again and it's producing the same bug as before do you have Enable Steam Play for all other titles turned on or off?
stormy-gold
stormy-goldβ€’5mo ago
on, that's also a setting that doesn't affect stuff in Heroic
fascinating-indigo
fascinating-indigoOPβ€’5mo ago
just double checking, because you say that the shader pre-caching one doesn't affect anything in heroic, yet here we are
stormy-gold
stormy-goldβ€’5mo ago
when running Heroic shortcuts, it would run them as Linux-based commands, so the entire compatibility section of the Steam settings doesn't affect it and given that you're getting a game log, you haven't forced Proton on any of your Heroic shortcuts
fascinating-indigo
fascinating-indigoOPβ€’5mo ago
yeah, i haven't
stormy-gold
stormy-goldβ€’5mo ago
let me install Cat Quest to pull an equivalent log
fascinating-indigo
fascinating-indigoOPβ€’5mo ago
i'm not sure why i keep using Cat Quest as the control, but it is every single game i installed with heroic that has the behavior lol
stormy-gold
stormy-goldβ€’5mo ago
desktop mode: https://0x0.st/8ik_.log it's about 200MB to install, so I'd prefer that than GTA5
fascinating-indigo
fascinating-indigoOPβ€’5mo ago
lol true
stormy-gold
stormy-goldβ€’5mo ago
ok great, now I'm getting your behavior I had just loaded Kill Knight earlier today, so let me check that again
fascinating-indigo
fascinating-indigoOPβ€’5mo ago
okay, thank goodness lol
stormy-gold
stormy-goldβ€’5mo ago
I also just updated the OS this morning
fascinating-indigo
fascinating-indigoOPβ€’5mo ago
misery loves company
stormy-gold
stormy-goldβ€’5mo ago
this was similar behavior when umu was first integrated as well
fascinating-indigo
fascinating-indigoOPβ€’5mo ago
https://0x0.st/8ikf.log this is when it's working and the shader pre-caching is on not as clean as your log lol
stormy-gold
stormy-goldβ€’5mo ago
wait a sec, my precache setting was on and I didn't update you at the time. that's on me. I intended it to be off, but I must've turned it on and I turned it back off after we talked about it good lord is that the issue? hahaha let me turn it back on sorry if I misled you
fascinating-indigo
fascinating-indigoOPβ€’5mo ago
totally fine, i'm glad that is likely the cause what an absolutely bizarre thing i'm fine with being misled if it eventually leads to an answer :D
stormy-gold
stormy-goldβ€’5mo ago
enabling precaching brought it back what the damn hell? πŸ˜‚
fascinating-indigo
fascinating-indigoOPβ€’5mo ago
i have absolutely no clue hahaha all it took was several reinstalls of my entire operating system to figure it out :D
stormy-gold
stormy-goldβ€’5mo ago
the Linux experience
fascinating-indigo
fascinating-indigoOPβ€’5mo ago
i wouldn't have it any other way, i love this stuff
stormy-gold
stormy-goldβ€’5mo ago
I added a comment on the github issue. We'd need someone with SteamOS (or any other distro really) to confirm this is the behavior as well to isolate if this is a umu+Heroic issue or if it's a distro issue
fascinating-indigo
fascinating-indigoOPβ€’5mo ago
i am on SteamOS today i reimaged last night
national-gold
national-goldβ€’5mo ago
I can try too later
fascinating-indigo
fascinating-indigoOPβ€’5mo ago
that'd be great! :D
national-gold
national-goldβ€’5mo ago
to be clear: - I disable that shared thing - I run a game with proton+umu in gaming mode is that it?
fascinating-indigo
fascinating-indigoOPβ€’5mo ago
correct
stormy-gold
stormy-goldβ€’5mo ago
that is the extent of what I did between working this morning and not working just now
eastern-cyan
eastern-cyanβ€’5mo ago
hello im new to this discord and also new with linux mint and heroic games. so basically i tried to play "Hell let Loose". After installig the game i tried to run the game but right after it started nothing happened. recording to the log information it says "ShellExecuteEX failed: not enough memory". Im going to upload the log information as well. I hope someone can help me, thank u guy πŸ™‚ https://0x0.st/8inA.log
fascinating-indigo
fascinating-indigoOPβ€’5mo ago
please make your own thread, this one is about a very, very different issue
eastern-cyan
eastern-cyanβ€’5mo ago
oh sorry, someone gave me a link to this one
fascinating-indigo
fascinating-indigoOPβ€’5mo ago
no, they gave you the link to the general one, and this is on that list :] no worries, it happens
national-gold
national-goldβ€’5mo ago
I can't find that shader pre-caching config anywhere in my steamdeck πŸ‘€
fascinating-indigo
fascinating-indigoOPβ€’5mo ago
it's only on desktop mode in the download settings
national-gold
national-goldβ€’5mo ago
oh in desktop
fascinating-indigo
fascinating-indigoOPβ€’5mo ago
lord only knows why they did this
national-gold
national-goldβ€’5mo ago
yep, 100% can reproduce full-hd no-fake steam logo loading, can't see anything but I can hear the game in the background in gaming mode
fascinating-indigo
fascinating-indigoOPβ€’5mo ago
fantastic, i love the sound of reproducibility in the afternoon thank you all for making me not feel like i was insane
fascinating-indigo
fascinating-indigoβ€’5mo ago
is precaching on by default on a stock deck?
stormy-gold
stormy-goldβ€’5mo ago
yes. it's actually a source of a lot of newbie questions because they are confused why the Deck is always downloading stuff on boot
fascinating-indigo
fascinating-indigoβ€’5mo ago
ah if its on by default this is why i never noticed it second question: why are you turning it off? (i honestly dont know the use case so im curious)
fascinating-indigo
fascinating-indigoOPβ€’5mo ago
i don't like the cache being on the deck, and it's able to cache just fine. it's.. barely useful as i understand it plus it builds up over time, several games get their cache size bloated beyond what's reasonable
stormy-gold
stormy-goldβ€’5mo ago
The cache will always be there. Steam builds on-device on launch of the game. Also, the bulk of the cache is usually downloaded transcoded videos which cannot be disabled
fascinating-indigo
fascinating-indigoOPβ€’5mo ago
ah, so no real point in turning it off?
stormy-gold
stormy-goldβ€’5mo ago
If you’re on a metered connection, you may choose to opt out to conserve bandwidth But even then updates are deltas
fascinating-indigo
fascinating-indigoOPβ€’5mo ago
I'm not
stormy-gold
stormy-goldβ€’5mo ago
It pretty much comes down to whether you want to spend CPU cycles or bandwidth to get the shaders The Mesa GPL update helps for situations where you don’t have shaders ready to go
fascinating-indigo
fascinating-indigoOPβ€’5mo ago
aiight, i misunderstood, i suppose
genetic-orange
genetic-orangeβ€’5mo ago
The new commit makes it sound like that caching is how they retrieve the app ID? https://github.com/Open-Wine-Components/umu-launcher/commit/57f9dfce97e4c49b74eea3e19376834f949f2d69 Am I understanding that right?
stormy-gold
stormy-goldβ€’5mo ago
it's possible that precaching affects that somehow, but I don't know enough about how umu works under the hood or why precaching affects it
national-gold
national-goldβ€’5mo ago
the code is only checking these env variables:
if path := env.get("STEAM_COMPAT_TRANSCODED_MEDIA_PATH"):
# Suppress cases when value is not a number or empty tuple
with suppress(ValueError, IndexError):
return int(Path(path).parts[-1])

if path := env.get("STEAM_COMPAT_MEDIA_PATH"):
with suppress(ValueError, IndexError):
return int(Path(path).parts[-2])

if path := env.get("STEAM_FOSSILIZE_DUMP_PATH"):
with suppress(ValueError, IndexError):
return int(Path(path).parts[-3])

if path := env.get("DXVK_STATE_CACHE_PATH"):
with suppress(ValueError, IndexError):
return int(Path(path).parts[-2])
if path := env.get("STEAM_COMPAT_TRANSCODED_MEDIA_PATH"):
# Suppress cases when value is not a number or empty tuple
with suppress(ValueError, IndexError):
return int(Path(path).parts[-1])

if path := env.get("STEAM_COMPAT_MEDIA_PATH"):
with suppress(ValueError, IndexError):
return int(Path(path).parts[-2])

if path := env.get("STEAM_FOSSILIZE_DUMP_PATH"):
with suppress(ValueError, IndexError):
return int(Path(path).parts[-3])

if path := env.get("DXVK_STATE_CACHE_PATH"):
with suppress(ValueError, IndexError):
return int(Path(path).parts[-2])
https://github.com/Open-Wine-Components/umu-launcher/blob/57f9dfce97e4c49b74eea3e19376834f949f2d69/umu/umu_run.py#L485 one is DXVK_STATE_CACHE_PATH but I don't think it's the same as the Shared Pre-Cache, it's just an env variable maybe when caching is enabled the steamdeck sets that DXVK_STATE_CACHE_PATH variable?
stormy-gold
stormy-goldβ€’5mo ago
I can envision all 4 of those being tied to the shader cache.
national-gold
national-goldβ€’5mo ago
oh I found it, enabling the cache adds STEAM_COMPAT_MEDIA_PATH with /home/deck/.local/share/Steam/steamapps/shadercache/xxxxxxx/fozmediav1, and that xxxxxx is the steamid and STEAM_FOSSILIZE_DUMP_PATH also references the shadercache ok, it just adds all of them they all have similar paths all part of the shadercache I'm surprise that's the only place to get that ID from, sounds wrong haha my understanding of the issue is: - steam puts the loading screen on top of everything while the game is launching in gaming mode - umu tries to find that screen to remove it from the top to display the game - because it couldn't find the steamappid, it can't find the window, so it just returns None instead of calling rearranged.remove(steamappid) - without those paths (all added when shareds are enabled), umu can't get the steamappid what suprises me is that's the only way of getting the steamappid, but I guess it's the safest in the sense that it's the default and it's in the env so you don't need access to any folder that you may not have access to
fascinating-indigo
fascinating-indigoOPβ€’5mo ago
is there a way to set that environment variable if it's not already set when you launch a game on steam deck in game mode?
national-gold
national-goldβ€’5mo ago
I don't know where steam gets that steamappid from /home/deck/.local/share/Steam/steamapps/shadercache has so many folders over time I imagine there must be a better way to get that id from the system, but I have no idea
fascinating-indigo
fascinating-indigoOPβ€’5mo ago
yeah, fair enough i feel so much relief at this not being a me problem lol it was like a month and a half of on and off troubleshooting
national-gold
national-goldβ€’5mo ago
I'm thinking we could add some check in heroic to print something in the logs: - if steamdeack, and gaming mode, and none of these env variables are defined => print a message in the logs saying Shader Pre-Caching is required by UMU to work properly in gaming mode because UMU is now adding some log saying the ID is not found, but id doesn't say how to fix it
fascinating-indigo
fascinating-indigoOPβ€’5mo ago
and exit the game? or leave it?
national-gold
national-goldβ€’5mo ago
I wouldn't exit the game in case something changes in UMU and it uses something else to get the steamappid in the future, so the code doesn't prevent that from working users can always check the logs if they have some issue and find the message
fascinating-indigo
fascinating-indigoOPβ€’5mo ago
that was my immediate thought after I hit send lol
national-gold
national-goldβ€’5mo ago
We already show some information like The system is a steam deck and we know if it's gaming mode or desktop mode in the logs, so we only need to check for the env variables and add one more line in the same place with a big WARNING: ....

Did you find this page helpful?