SteamDeckHomebrew / decky-loader

A plugin loader for the Steam Deck.
https://decky.xyz
GNU General Public License v2.0
4.27k stars 154 forks source link

[BUG] Update to 2.0.16 causes popup menus to not appear in Steam Deck Game Mode. #586

Closed stat-void closed 4 months ago

stat-void commented 4 months ago

Please confirm

Bug Report Description

I've started constantly having issues after updating Decky from 2.10.14 to 2.10.16.

Popup menus (Like the ones where you hold down the power button, or try to exit the game through the Steam menu) no longer appear, although the sound of them can still be heard.

Steam settings also don't work properly (They make noises and do change when I've resetted the console, but visuals don't update).

As long as password protection is enabled, these menus can be temporarily forced to reappear when "opening" them, then going to sleep mode several times. Otherwise the only solution is to hard shutdown the Steam Deck.

I've confirmed that the issue disappears when uninstalling Decky, and reappears when doing a fresh install of it.

How it happens - Turning on Brotato (haven't tested with other games) in game mode, playing the game for a bit of time, and then at some point, the issue just happens. It might be related to aiming in the game, because I have a small lag spike during those moments and have manually limited the TDP to 5W.

I also use the Powertools plugin, but the only thing enabled there is a battery charge limit. Other plugins are for emudeck, checking out bluetooth connections and controller statuses.

I also couldn't view anything through the CEF console while this issue was active.

I uploaded a video of the problem happening and a screenshot of the CEF console to Google Drive

Expected Behaviour

Any popup menus would continue to pop up normally while in game mode, or Steam settings can be changed.

SteamOS version

SteamOS Stable 3.5.7

Selected Update Channel

Stable

Have you modified the read-only filesystem at any point?

No response

Logs

deckylogs.txt

stat-void commented 4 months ago

I've been using the latest preview version and the issue will appear when the device is put into sleep and then any game is started. I've honestly been contemplating on potentially getting in contact with the developers so that I could figure out how to build Decky and manually go through the commit history between versions 2.0.14 and 2.0.16 and pinpoint what commit is the breaking point.

PartyWumpus commented 4 months ago

I've been using the latest preview version and the issue will appear when the device is put into sleep and then any game is started. I've honestly been contemplating on potentially getting in contact with the developers so that I could figure out how to build Decky and manually go through the commit history between versions 2.0.14 and 2.0.16 and pinpoint what commit is the breaking point.

Decky can be compiled by running act/run-act.sh prerelease. You'll need act and docker installed. I would do this myself but I still cannot reproduce this, and I have no idea why not.

Also instead of compiling it yourself, you can grab an artifact from github actions, there's one made for every commit.

stat-void commented 4 months ago

Decky can be compiled by running act/run-act.sh prerelease. You'll need act and docker installed. I would do this myself but I still cannot reproduce this, and I have no idea why not.

Also instead of compiling it yourself, you can grab an artifact from github actions, there's one made for every commit.

Okay, found the PluginLoader files for every build in Github Actions. The other 2 questions that I have on this are:

PartyWumpus commented 4 months ago

Okay, found the PluginLoader files for every build in Github Actions. The other 2 questions that I have on this are:

  • How do I correctly overwrite it so that when I go back to Game Mode, it recognizes that the version has changed? I tried doing this before but must have done something wrong .-.
  • Do you know from what build onwards was everything beyond 2.0.14 started? I don't notice any kind of tags on them to indicate what starts where.

You replace the file in ~/homebrew/services, maybe also run systemctl restart plugin_loader to restart decky.

The first commit after 2.10.14 was fix the tasks but it didn't get an action because I think AA pushed multiple commits. The first build is fix: bump dfl to fix error on latest steam beta

You'll only want to grab the ones from the main branch (they say main) the other ones are unrelated.

Edit: here's the list of commits between the two releases

Edit 2: the version shown in the UI is exclusively based on the text file in the services folder, and will not change when you replace the PluginLoader file.

stat-void commented 4 months ago

I realized what the problem was on the PluginLoader file - I had to make the file executable.

Anyway, I went through the initial release builds (not the ones under actions) and determined that the earliest version where it breaks is Prerelease v2.10.15-pre2

So the problem stems from these commits

PartyWumpus commented 4 months ago

That doesn't make any sense. Neither of those commits should do anything.

stat-void commented 4 months ago

I am just as perplexed as you are. I've been installing these plugin several times to make sense of it, but the one where you specified ubuntu 22.04 is where it starts breaking. I'm going to check prerelease 1 again just in case I might have missed making a file executable.

Edit: Okay, yeah, false alarm. the problem is existing on prerelease 1 too. I reaaly need to double verify that I make the file executable. Continuing with the commits from there.

Edit 2: I can say with 100% certainty that 2.10.15-pre1 is where it breaks. there is really only 1 build available before the official prerelease build was made and by that point all 3 commits had been made. As my final test I downgraded back to 2.10.14 and everything was working properly.

Now it needs to be determined if there is any code in there that doesn't like it when the Steam Deck goes to sleep. Because from what I'm looking at, there really is only 1 update to a toaster? Something related to popup messages? Everything else is version updates and command changes.

Adding the changes as context here

GrandaddyShmax commented 4 months ago

Update 4: the issue came back.. it happens when I'm running more than one game/application at the same time.

PartyWumpus commented 4 months ago

it's probably the DFL version update. The changes in that are listed here: https://github.com/SteamDeckHomebrew/decky-frontend-lib/compare/v3.24.2...v3.24.5 I'll give it a look when I can.

Thanks a lot for helping track this down btw.

aarron-lee commented 4 months ago

According to my limited testing, it appears that downgrading PluginLoader binary was sufficient to mitigate the issue. You can downgrade via running the following command and then rebooting, or by just manually replacing the PluginLoader file with the 2.10.14 one and before rebooting. sudo kill -9 $(pgrep -d ' ' PluginLoader) && sudo rm -f $HOME/homebrew/services/PluginLoader && curl https://github.com/SteamDeckHomebrew/decky-loader/releases/download/v2.10.14/PluginLoader -o $HOME/homebrew/services/PluginLoader && chmod +x $HOME/homebrew/services/PluginLoader EDIT: fixed the command.

For some reason, this didn't work for me. Even after manually downloading the PluginLoader file + placing it + make it executable, it wouldn't work.

For anybody else that wants to rollback to v2.10.14, I modified the decky install script to install it

https://raw.githubusercontent.com/aarron-lee/legion-go-tricks/main/decky_v2_10_14_install.sh

dcu commented 4 months ago

bad news, it just happened to me again today. I need to test more but maybe the difference is that I didn't have internet today

dcu commented 4 months ago

I think I can reproduce the issue consistently by adjusting the volume during the suspend animation and during the pin lock screen

can someone confirm?

aarron-lee commented 4 months ago

One thing I should note is that I encountered this exact same issue on a Legion Go with BazziteOS. pin lock enabled both for lock screen and switch to desktop mode. I know it's not an officially supported device or distro, but just wanted to note it here.

When I'd encounter the issue, doing a suspend-resume would temporarily fix the issue, but it'd always come back.

Decky v2.10.14 has been flawlessly working.

Menojohnson commented 4 months ago

Hey folks, after updating Decky loader to the lastest stable build 2.11.1 and testing, I can confirm that there is still an issue with certain popups in Game mode not showing up. I was able to recreate this issue by playing a game for 30+ minutes and then attempting to exit the game using the Steam button, followed by selecting "exit." However, no menu to confirm the exit popped up. After force rebooting the Steam Deck, the issue temporarily goes away.

I also encountered the same issue by running a game (Kingdom Hearts), then putting the deck to sleep for an hour or so. Upon waking the deck, the pin code works, but again, when attempting to exit the game, the exit button does not work. Additionally, when holding the power button, the popup to shutdown, restart, or switch to desktop mode does not show.

Hope this help team thanks :-)

Localhorst86 commented 4 months ago

I can now replicate the issue on my end consistently, without even running a game.

This is with all plugins uninstalled:

  1. Start the steam deck
  2. Bring up the left hand side menu
  3. Closse left hand side menu
  4. Put steam deck to sleep
  5. Wake up steam deck, enter pin

At this point, popup menus are broken. I can bring up the left hand side menu, but selecting e.g. On/Off does not bring up the menu with the power options.

EDIT: if still needed, I can upload a log file after work.

Localhorst86 commented 4 months ago

decky.txt decky log atached

aarron-lee commented 4 months ago

steam client just updated, so rollback no longer works as a temp fix. However, I can no longer replicate the bug on the new steam client with latest decky loader. I'll try testing for longer and try to replicate the bug.

stat-void commented 4 months ago

I can also personally confirm that after updating to the newest Steam Client and updating Decky, the issue is no longer reproducable. I would assume that this issue could be closed down in this case, but maybe a pin should be kept in case it breaks down on future updates again?

Menojohnson commented 4 months ago

It seems that the issue has been resolved following the update of the Steam client and by using the latest version of Decky Loader. I've been unable to reproduce the problem. I'll continue monitoring it and will update my post if there are any further developments.

PartyWumpus commented 4 months ago

I don't know how comfortable I am with issues being fixed by Magic™️ but if several people are reporting it's gone on the new client then it probably is gone, so I'll close this. If anyone on the most recent stable client can still reproduce this then I'll reopen the issue.