After a system update (yay - the command not the sound of joy) steam games using proton launch to a black screen. For this example we are using RDR2 but just about every non-native game is affected. The game ‘launches’ but will end up stalled on a black screen. Thankfully I can ssh in from another machine and killall rdr2* and that at least gets me back to desktop where I can try to diagnose the issue.
Reading through the Linux gaming [Guide], I attempted putting PROTON_USE_WINED3D=1 %command% in Launch Options and that DID allow the games to launch. Once the game launched I closed it down again and removed the command and… it works! But now I am insanely curious to understand 1) what the *#$% happened and 2) what I can do to prevent it in the future.
–Edit (is it an edit if I change it before posting? Do trees talk when we aren’t listening? Does gnome suck?)
I noticed while collecting information for this post that my kernel is Linux 6.12.49-1-lts
The important part there is the lts. I DID install the LTS kernel at one point mostly out of habit but realized I did not want it on my gaming rig and I thought I had removed it. I know I did use bootctl to set the default to the non-lts version. Getting the list now shows LTS as default which is not ideal.
[thealmightyos@comeputter ~]$ sudo bootctl list | grep title title: EndeavourOS (6.12.49-1-lts) (default) (selected) title: EndeavourOS (6.12.49-1-lts-fallback) title: EndeavourOS (6.16.8-arch3-1) title: EndeavourOS (6.16.8-arch3-1-fallback) title: Reboot Into Firmware Interface
So I am thinking this might be the issue. Posting this anyway so that anyone having the same issue can follow my breadcrumbs.
I haven’t played any games on steam for a couple of days, because I’ve played Diablo 2 Resurrected via Lutris (I found that I have to launch Battle.Net with proton on Lutris, to be able to play Diablo 2. Blizzard have yet to release a linux client)
Because of that, I hadn’t noticed anything, and maybe I’ve been lucky, or maybe it’s already fixed, but I tried launching Dead Cells just now on Steam, and it works
I’m not on a lts-kernel
P.S. I don’t mean to disprove yours or Canoe’s observations, I just meant to inject another datapoint
I updated yesterday, no issues with any of my Steam Proton games. I’ve made no settings changes, other than forcing Proton Experimental as the default. Biggest difference is that I’ve been using the cachyos kernels:
Update:
After some experimentation, I think it has something to do with vulkan shaders and going back and forth between the LTS (6.12.49-1-lts) and non-LTS (6.16.8-arch3-1) kernel.
Here are my steps to recreate/test the issue:
Boot into Non-LTS
Launch game (works)
Reboot into LTS
Launch game (does not work)
Put PROTON_USE_WINED3D=1 %command% in Launch Options
Launch game (works)
Reboot into LTS
Launch Game (works w/o Launch Options)
Reboot into Non-LTS
Launch Game (does not work)
Put PROTON_USE_WINED3D=1 %command% in Launch Options
Launch game (works)
Reboot into Non-LTS
Launch Game (works w/o Launch Options)
Reboot into LTS
Launch Game (does not work)
Based on my very limited knowledge of how Proton and DXVK works, my hypothesis is that such a huge difference in kernel versions (and by extension, the graphics drivers) is causing havoc with pre-cashed shaders. I would love to hear from someone that knows more about the topic though if only to sate my curiosity.
I did confirm that on a system update where kernels are updated that boot preferences between LTS and Non-LTS are not being respected. On another system that I had not got around to updating yet, I used bootctl to set the Non-LTS kernel as default then booted a few times to confirm that it was doing as expected and booting into the Non-LTS kernel. I ran yay and let it do a full update of the system. Upon reboot, I was booted into the LTS kernel.
The obvious work around for this is remove the LTS kernel but that might not be ideal for all people. There must be some sort of script or setting that can keep the LTS kernel from becoming default boot every update.
On the topic of removing a kernel, what would be the safe way to do that? I know the commands I use to do that but I don’t want to post them here and accidentally fubar someones system if it isn’t best practice/unsafe.
I’ve also had problems recently, although not exactly the same as yours. During all these days with constant systemd updates, as well as with kernels 6.16.6, 6.16.7, and then 6.16.8-arch1,2,3, I’ve been experiencing frequent crashes in Vulkan games like CS2. I tested on CachyOS and it happens there too. The solution I found after a lot of trial and error was to delete the contents of the .cache folder. As TheAlmightyOS mentioned, it might be related to shader corruption or other Nvidia - graphical issues — at least in my case. I don’t know if the problem is fully resolved, but in the last two days I haven’t had any more crashes.
I’ve been having Vulkan crashes on an all-AMD system, so I don’t think it’s specific to nVidia. I dropped back to the LTS kernel and they stopped, so I’m keeping an eye on patches for now.
That i have to test on my test laptop. Last time i used main and lts i can confirm the last installed kernel is getting used after each reboot. So when i install lts it will boots from lts instead of mainline.
Thanks, @MichelN. I keep all my systems pretty up-to-date so I am stuck waiting for the next kernel update to drop before I can run any thorough testing.
Dont get me wrong, my games are running great with steam proton. The only issue i had is lts/mainline kernel which you posted it is not respected. This i can confirm.
After some gaming, I decided to do a little housekeeping. Cleaning up my home folder, organizing some media files and deleting old downloads, installing a few widgets, configuring RGB… you know, non-essential cosmetic stuff. Nothing that should effect the system. After a few hours of this I decided to game again. Same game was playing before. Lunched it and…
Black Screen
Confused I went step by step through what I did. I removed all the widgets I installed. Nothing. I checked the trash to see if there were any game files in there. Nothing. Shut down OpenRGB -
THE <$_.Expletive_Array[3]> STARTED.
Tested a few more times. OpenRGB IS preventing this game from starting. Not sure if I should start a new thread on this or post a bug report either with OpenRGB or Proton. Don’t even have an idea yet on what is interfering with what, just that the two do not want to co-exist.
Nice (potential) catch! I found a couple of threads mentioning OpenRGB and Steam, some as old as 2022, so maybe you’re on to something. However, I did not see anything regarding Steam/Proton on OpenRGB’s Gitlab site.
I do have a lot of plugins installed for OpenRGB. And it might not be specifically Proton but the vulkan drivers. One in particular I think renders a canvas that is then used to color the LED’s. That might be the issue. Though, it will require a more testing.
I won’t get a chance to come back around to this till monday I think. I am building a win11 pc for a local church (easier than teaching them to use linux on their older systems that don’t have TPMv2’s) and will have my hands full with that aggravation.
Though it will be fun I think to diagnose this after having to fight to get windows to do what it was designed to do for a weekend
New kernel dropped today. I put that line in the loader.conf, rebooted twice (made sure that non-LTS was selected then booted automatically) and then ran yay and let the system update.
Upon reboot, LTS was selected as default and booted.
I think we found a bug Or, at least, unexpected behavior.