SteamDeckHomebrew / decky-loader

A plugin loader for the Steam Deck.
https://decky.xyz
GNU General Public License v2.0
4.26k 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

Update. I had an idea to force the CEF console to become visible. So I reinstalled Decky again, played around for a bit until the issue appeared again and then used the sleep with password protection trick to make popups visible again. Then, I opened up the console and looked around.

Took some screenshots of errors that looked out of the ordinary and added them to the Google Drive link.

The most prominent error that I saw that might be related to the popup was: Assertion failed: Modal was shown but ModalManager has no associated DialogOverlay

Took pictures of other info or warnings that looked interesting as well

daweiandahalf commented 4 months ago

I had the same issue. I removed and reinstalled Decky and repaired steamOS to be safe, and this issue appears to be fixed. Unfortunately, I now am unable to install plugins - when I click install the dialog appears as normal, but when I click install again it indicates that it is installing but then continues indefinitely. I tried switching to the pre release build to see if that would help, a similar thing happened. I went into desktop mode and switched to pre release through the install tool, but still am facing the same issue with installing plugins.

TrainDoctor commented 4 months ago

@stat-void can you try the pre-release at let us know if you encounter the same issue(s) like @daweiandahalf did?

PartyWumpus commented 4 months ago

The most prominent error that I saw that might be related to the popup was: Assertion failed: Modal was shown but ModalManager has no associated DialogOverlay

Interesting. The error is raised in this function on valve's side:

OnModalCountChanged(e) {
    "show" == e && 0 == this.m_cMountedOverlays && window.setTimeout((()=>{
        (0,
        l.X)(this.m_cMountedOverlays > 0, "Modal was shown but ModalManager has no associated DialogOverlay")
    }
    ), 50),
    this.m_OnModalCountChangedCallbacks.Dispatch(this.m_rgModals.length),
    "show" == e ? this.m_OnModalShownCallbacks.Dispatch(this.m_rgModals.length) : "hide" == e && this.m_OnModalHiddenCallbacks.Dispatch(this.m_rgModals.length)
}
stat-void commented 4 months ago

@TrainDoctor Did a little bit of testing with the prerelease version. I haven't done a full repair of SteamOS since I don't really want to try formatting everything just yet, but plugins as of right now are installing normally when the issues I've had haven't started.

I haven't been able to currently replicate the issues for now, but wouldn't completely rule out that the prerelease version is free from the described problems, considering when I first discovered it I tried to change the version from stable to prerelease and it still persisted.

If I get the problem to replicate again on the pre-release version, I'll try to install any plugins while it's present.

stat-void commented 4 months ago

@TrainDoctor Okay, update.

Freshly installed the prerelease version through desktop mode, then shut down the console normally. Turned on Deck, played games again for a while, eventually the issue appeared on this version too.

Went to the plugin store, tried to install anything, I couldn't even pass the initial install button. Once I did the popup menu recovery trick, I could install plugins normally again.

I also got a lot of new errors shown through the cef console. I added 2 new videos and a screenshot showing all of this in the Google Drive folder. The first video is showing how I'm trying to install a plugin but can't. The second video is me scrolling through the cef console, stopping at errors that might look noteworthy. The plugin that I tried to download and could successfully after the temporary fix was the bookmarks plugin, which appears in the cef console logs too

At present moment while I'm writing this, one of the things that I tried to install but couldn't was the battery tracker plugin. I keep getting a POST error thrown every ~10 seconds: POST http://127.0.0.1:1337/plugins/Battery%20Tracker/methods/set_app 500 (Internal Sever Error) Uncaught (in promise) SyntaxError: Unexpected token I in JSON at position 4

Once I reset the console it stopped.

RubyRoseRed commented 4 months ago

Yeah I'm having this issue too. suddenly noticed I can't click "exit game" or the power button option from the steam menu and was wondering why. I'm running latest stable versions of both steamos and decky loader

Localhorst86 commented 4 months ago

I can confirm this issue on the pre-release of decky and stable release of the steam client. I am still trying to further narrow it down how exactly to trigger the issue, it only appears sporadically.

When the issue happens, the shutdown throbbed stops working as well, that is something I was able to observe.

CEOofUnhandledExceptions commented 4 months ago

Happening to me too on stable. Currently on latest pre-release, will update if I see the problem again.

Update: after updating to the latest current pre-release build as of this post the issue still occurs. I had launched 2 'non-steam games' in game mode since I last hard-rebooted; Duckstation and Unreal Gold. I can no longer exit games or power off the system safely.

Darkjuda commented 4 months ago

Can confirm this is happening to me too. I was going nuts.

Edit: Thanks to the "password protection trick" given by OP, I was able to restart steam without restarting the Deck. While still bothersome, it's much quicker to do than hard rebooting the Deck each time. I suggest everyone to do it in the meantime.

GrandaddyShmax commented 4 months ago

Is there a way to rollback the stable version while this issue is being worked on?

probable1333 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.

Darkjuda 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/services/PluginLoader && curl https://github.com/SteamDeckHomebrew/decky-loader/releases/download/v2.10.14/PluginLoader -o $HOME/services/PluginLoader && chmod +x $HOME/services/PluginLoader

Unfortunately, the command gives me an error: Failed to open the file /home/services/PluginLoader: No such file or directory

TrainDoctor commented 4 months ago

@Darkjuda @probable1333 @GrandaddyShmax please give the latest pre-release a try and submit logs using this after a clean reboot: cd ~ && journalctl -b0 -u plugin_loader.service > deckylogs.txt Upload the resulting file which can be found at /home/deck/. These bug reports are less than useless to us without logs to go on, lists of plugins being used and what issues if any specific issues per plugin(s) are being experienced.

If using pre-release does not resolve your issue then please revert to stable and collect and submit those logs as well. Thanks.

TrainDoctor commented 4 months ago

@Darkjuda @probable1333 @GrandaddyShmax please give the latest pre-release a try and submit logs using this after a clean reboot: cd ~ && journalctl -b0 -u plugin_loader.service > deckylogs.txt Upload the resulting file which can be found at /home/deck/. These bug reports are less than useless to us without logs to go on, lists of plugins being used and what issues if any specific issues per plugin(s) are being experienced.

If using pre-release does not resolve your issue then please revert to stable and collect and submit those logs as well. Thanks.

@CEOofUnhandledExceptions sorry, meant to include you in this message as well.

dcu commented 4 months ago

@TrainDoctor I don't have logs but the pre release didn't work for me.

is there a command to force reload/refresh decky loader ?

TrainDoctor commented 4 months ago

Use systemd to reload the service.

asv27 commented 4 months ago

@probable1333 thanks, tried using your command, but I'm not sure if it worked correctly. What message should appear on the terminal after typing my password? I closed the window but it said something about downloads, although everything was on 0.

Darkjuda commented 4 months ago

please give the latest pre-release a try and submit logs using this after a clean reboot:

Will do my best but, that's a weird thing to ask considering this bug actually prevent us from doing a clean reboot.

PartyWumpus commented 4 months ago

Still can't reproduce, and can't see any changes that could (on their own) cause this, so the most likely thing is a change interacting with a plugin somehow. Could anyone with this issue please give a list of all your plugins. You can run ls ~/homebrew/plugins or take a look in the ~/homebrew/plugins folder to see what you have if you cannot get decky to work.

TrainDoctor commented 4 months ago

please give the latest pre-release a try and submit logs using this after a clean reboot:

Will do my best but, that's a weird thing to ask considering this bug actually prevent us from doing a clean reboot.

Apologies, it's been a busy month at work. If you remove the -b0 from the command it will grab all logs. The -b0 is used to get the latest logs, thus reducing the logfile's size and reading of logs we have to do in order to diagnose the issue.

GrandaddyShmax commented 4 months ago

If it helps, sometimes I get the following error show up along with this issue:

Something went wrong while displaying this content. Refresh
Error Reference: Shared SteamUI_8629422_bdaf950a90a647cd
i.data.accountid_owner is not a function
Darkjuda commented 4 months ago

If it helps, sometimes I get the following error show up along with this issue:

Something went wrong while displaying this content. Refresh
Error Reference: Shared SteamUI_8629422_bdaf950a90a647cd
i.data.accountid_owner is not a function

Me too, this is displayed on a game's banner in my case.

Darkjuda commented 4 months ago

Still can't reproduce, and can't see any changes that could (on their own) cause this, so the most likely thing is a change interacting with a plugin somehow. Could anyone with this issue please give a list of all your plugins. You can run ls ~/homebrew/plugins or take a look in the ~/homebrew/plugins folder to see what you have if you cannot get decky to work.

My thoughts too. I've been uninstalling my plugins one by one each time the issues occurs but to no avail. But I haven't installed any plugins recently, so I wonder why it would be plugin related. DeckFAQs plugin is broken as hell, and using the search function completely breaks the Deck's game mode UI, but the issue doesn't seem to come from here either. I will try to list my plugins right after I managed to get those log files.

Edit:

(deck@steamdeck ~)$ ls ~/homebrew/plugins
Bluetooth         decky-steamgriddb      decky-wine-cellar  free-loader    PowerTools      SDH-AnimationChanger  SDH-CssLoader  VolumeMixer-decky
decky-cloud-save  decky-storage-cleaner  EmuDecky           hltb-for-deck  protondb-decky  SDH-AudioLoader       SDH-PlayTime
Darkjuda commented 4 months ago

I managed to do a rather clean reboot using the password protection trick that sometimes allow me to display the shutdown popup menu. I hope that is clean enough! deckylogs.txt

Darkjuda commented 4 months ago

Here is the version with all logs deckylogs.txt

GrandaddyShmax commented 4 months ago

Only now found out that I am no longer able to also install any plugin.. and I have removed all of them in hopes of finding the problematic plugin

CEOofUnhandledExceptions commented 4 months ago

I uninstalled Decky and went without it for a couple of days and the problem did not occur again. I've reinstalled the stable release this morning, retaining my plugins WineCellar and SteamGridDB but not Tabmaster. I've been playing a few Steam / Non-Steam games and the issue has yet to reoccur. I wonder if Tabmaster is the cause of the issue?

Per my previous post, I will update this post if the issue reoccurs again today.

Update:

With the aformentioned plugins installed, I've been playing Dragon's Dogma. While I played, I ocassionally tested the prompts to see if they were functional and they were. Some hours later, I took a break and put the system to sleep.

Waking the system, resuming the game and immediately testing prompts like the exit button, I found they were all still functional (I only opened the prompts, I did not exit the game or shut down the system!) I got curious, so with the game still running I went into the sidebar menu > library from the overlay, and opened a different game page -- immediately after re-entering the game UI, prompts have broken again.

Try following these steps on your end to replicate it. It goes without saying, but what game you try this with probably doesn't matter. I'll see if I can find my log while this is still all running and upload it here. *edit for clarification

GrandaddyShmax commented 4 months ago

I uninstalled Decky and went without it for a couple of days and the problem did not occur again. I've reinstalled the stable release this morning, retaining my plugins WineCellar and SteamGridDB but not Tabmaster. I've been playing a few Steam / Non-Steam games and the issue has yet to reoccur. I wonder if Tabmaster is the cause of the issue?

Per my previous post, I will update this post if the issue reoccurs again today.

@CEOofUnhandledExceptions I've done the same and for now, I did not get the issue of popup menus not appearing. but I am unable to install any plugin. can you check if you are able to install plugins?

Darkjuda commented 4 months ago

I uninstalled Decky and went without it for a couple of days and the problem did not occur again. I've reinstalled the stable release this morning, retaining my plugins WineCellar and SteamGridDB but not Tabmaster. I've been playing a few Steam / Non-Steam games and the issue has yet to reoccur. I wonder if Tabmaster is the cause of the issue?

Per my previous post, I will update this post if the issue reoccurs again today.

Tabmaster, the plugin for CSS loader ? I think I have it too, and while it never worked well considering that I have a big number of collections and most don't happear using this plugin, I never uninstalled it. That might be related to it. I'll uninstall it too and see what happens.

stat-void commented 4 months ago

I wouldn't get your hopes on Tabmaster being the cause here. At the very least, there might be multiple underlying plugins that could be causing it. I mentioned it on the actual post, but I've been using 4 plugins - Emudecky, Powertools, Bluetooth and some form of game controller checker, don't remember the exact name. If a plugin is the cause of the issue, then I would assume Emudecky or Powertools could be secretly causing it, since a lot of people will probably have those installed by default when they want to try out emulation.

TrainDoctor commented 4 months ago

I concur with @stat-void.

Let's set a baseline for testing: A) Latest Decky Pre-Release B) No active plugins (copy plugins to spare homebrew directory beforehand removing existing plugins) C) Install plugins fresh one by one, tracking what plugins were installed and in what order keeping good track if and what issues are experienced.

We can then try to recreate known bad configurations use fresh installs of plugins and see if issues still occur.

Darkjuda commented 4 months ago

I wouldn't get your hopes on Tabmaster being the cause here. At the very least, there might be multiple underlying plugins that could be causing it. I mentioned it on the actual post, but I've been using 4 plugins - Emudecky, Powertools, Bluetooth and some form of game controller checker, don't remember the exact name. If a plugin is the cause of the issue, then I would assume Emudecky or Powertools could be secretly causing it, since a lot of people will probably have those installed by default when they want to try out emulation.

Considering how popular these plugins are indeed, how come so few people reported that issue? Even on the SteamDeck subreddit, there is only a handful of "tech support" post with similar "symptoms".

Let's set a baseline for testing: A) Latest Decky Pre-Release B) No active plugins (copy plugins to spare homebrew directory beforehand removing existing plugins) C) Install plugins fresh one by one, tracking what plugins were installed and in what order keeping good track if and what issues are experienced.

We can then try to recreate known bad configurations use fresh installs of plugins and see if issues still occur.

Fair enough.

CEOofUnhandledExceptions commented 4 months ago

I'm unaware if participants are notified of edits, I'm just posting this to let everyone know I think I have found a way to replicate the issue. Please refer to my previous post in place of this one

TrainDoctor commented 4 months ago

I'm unaware if participants are notified of edits, I'm just posting this to let everyone know I think I have found a way to replicate the issue. Please refer to my previous post in place of this one

Please send ~/.steam/steam/logs/cef_log.txt and ~/.steam/steam/logs/cef_log.previous.txt, please make sure to scan through in case you're steam username is in there just in case.

CEOofUnhandledExceptions commented 4 months ago

lmao I figured I'd symlink ../steam/logs to /documents/logs (I've done this with everything else, it's easier to have one central place for application logs!) and after an infinite [Verifying Installation...] screen, I now have a fresh factory reset deck to test this bug with 🙃

It'll be a bit before I get back to you, and is a massive inconvenience to me, but at least I can personally verify whether the problem occurs on a post-factory reset Steam Deck with the latest Decky pre-release.

FrogTheFrog commented 4 months ago

I concur with @stat-void.

Let's set a baseline for testing: A) Latest Decky Pre-Release B) No active plugins (copy plugins to spare homebrew directory beforehand removing existing plugins) C) Install plugins fresh one by one, tracking what plugins were installed and in what order keeping good track if and what issues are experienced.

We can then try to recreate known bad configurations use fresh installs of plugins and see if issues still occur.

I was able to replicate it (stable with decky pre-release, no plugins):

  1. Add a pin-lock to the SteamDeck.
  2. Launch a game.
  3. Suspend and resume.
  4. Unlock.
  5. Suspend and resume.
  6. Unlock.
  7. Click the steam button until the left panel appears.
  8. Navigate to Power menu.
  9. Click on Power and notice how the menu does not appear.
  10. Suspend and resume.
  11. Unlock.
  12. The menu is there (with a different style, or am I seeing things...)
CEOofUnhandledExceptions commented 4 months ago

Steps (from a clean startup)

Using latest Decky pre-release as of this post with no plugins on a freshly factory reset system:

  1. Set a PIN for your device and have it set to activate on wake/startup

  2. Start a game (my ex., Day of Defeat Source)

  3. Open the overlay, test exit prompt (do not exit game!)

  4. Cancel exit prompt, close overlay

  5. Put system to sleep while game is running

  6. Wake system, open overlay and test exit prompt (should work)

  7. Expand sidebar, go to library, view a game, then go back to your currently running game

  8. Prompts are now broken, and not just exit prompts, but ALL submenus including navigation prompts no longer function. Exiting the game from within the game leaves you with a black screen until you back out.

I tried these steps without a PIN first, and there was no issue.. So the issue is definitely related to the PIN and wake/sleep I think now cef_log.previous.txt

I'd give you my logs as they are but because I can't exit to desktop mode or exit the game I have to force shutdown. As soon as it's powered on again, the log file is overwritten by a fresh instance where the bug hasn't already occured. cef_log.txt

Good thing there's a log_previous, huh?

TrainDoctor commented 4 months ago

To everyone in this thread, please update to the latest stable. It is the latest pre-release pushed to main. If you are still encountering the popup menus issue then please say so here. If not then any other issues that are unrelated to the popmenus issue that were mentioned in this thread should be put in a new issue. Thanks. Closing tomorrow unless new issues are encountered.

CEOofUnhandledExceptions commented 4 months ago

The issue is still occuring on latest stable when following my steps. cef_log.previous.txt cef_log.txt

TrainDoctor commented 4 months ago

@AAGaming00

dcu commented 4 months ago

seems to be working for me, but I have to test more. will update this post when I have more information

TrainDoctor commented 4 months ago

@dcu can you please provide a complete list of the plugins you are using? @CEOofUnhandledExceptions same for you.

CEOofUnhandledExceptions commented 4 months ago

Scroll up, I'm on a factory-reset fresh Steam Deck. No plugins, latest Stable.

GrandaddyShmax commented 4 months ago

So far, after completely uninstalling the decky loader and fresh installing it to the latest version and after reboot, so far I did not experience the issue and I am able to install any plugin. I will play a bit more with it and report back.

Update: the popup menu issue is back.. exited a game and I once again cannot enter the power menu.

Update 2: after doing the usual pin trick and playing around 10 different games with exiting them in different ways. The issue did not come back so far 🤔

Josh5 commented 4 months ago

I was having this issue. Uninstalled Decky a few days ago so i could keep using things. I'll re-install and test.

Update 1: I was still able to reproduce this. I'll try with a fresh install and no installed plugins. I just started a game. Put it to sleep. Woke it up. Unlocked it. And then these dialogs were broken.

GrandaddyShmax commented 4 months ago

Update 3: after a day, the issue did not return, all works perfectly after clean reinstall of decky and a single workaround with pin trick

CEOofUnhandledExceptions commented 4 months ago

If you still need the 'pin trick', there's still a problem.

GrandaddyShmax commented 4 months ago

@CEOofUnhandledExceptions I did need the pin trick but only once after the clean install, after that it never showed up again

CEOofUnhandledExceptions commented 4 months ago

The 'pin trick' is not part of the normal installation process, so it's a workaround for a problem, not a fix.