Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Gamepad not recognized if disconnect/reconnect or hot plugged #9150

Closed
corvusd opened this issue Jan 29, 2023 · 17 comments
Closed

Gamepad not recognized if disconnect/reconnect or hot plugged #9150

corvusd opened this issue Jan 29, 2023 · 17 comments

Comments

@corvusd
Copy link

corvusd commented Jan 29, 2023

Your system information

  • Steam client version (build number or date): steam-runtime_0.20221019.0

  • Distribution (e.g. Ubuntu): Ubuntu 20.04.5 LTS (64 bits)

  • Opted into Steam client beta?: [Yes/No] Yes

  • Have you checked for system updates?: [Yes/No] Yes

Please describe your issue in as much detail as possible:

Three weeks ago, playing Retroarch with Steam play together, Steam input recognized my friend's controller. Today it has not been possible to play with him because of this.
Investigating. If I disconnect and connect my controller locally. Retroarch or any game doesn't recognize it again. Before it worked right. I estimate this change about 3 weeks ago.
I have tried several gamepad: original Xbox 360 wired and arcade type. And Steam Gamepad. With same result.

Steps for reproducing this issue:

  1. Launch a game with the controller attached.
  2. Disconnect the controller.
  3. Plug it in again.
  4. The gamepad is not recognized.
@Argetlami
Copy link

Argetlami commented Jan 31, 2023

Your system information

  • Steam client version (build number or date): 1674790765
  • Distribution (e.g. Ubuntu): Nobara (Fedora) 37
  • Opted into Steam client beta?: No
  • Have you checked for system updates?: Yes

Same issue, multiple controllers are working even at the same time if those are already connected when starting a game. While mid-game, connecting a new controller - or reconnecting an existing controller - makes that controller unresponsive in game. If the game was launched in Big Picture mode, these seemingly unresponsive controllers can still open the Steam Big Picture overlay with their guide button. These new and/or reconnected controller(s) are working - and properly showing up - in Steam Big Picture in-game overlay, yet not in game.

Happens with titles other than Retroarch too, at least with Snowrunner (1465360) and Sackboy™: A Big Adventure (1599660). Reproduced on Proton 7.0-5, Next, and Experimental, haven't tried the others. Controller hotplug has been previously working as expected with these.

Happens regardless whether Steam Input per-game configuration is set to forced on or forced off. Tested with an Xbox Elite Series 2 (xpadneo) controller, PS5 controller, and PS4 controller.

Edit: As a clarification, no Remote Play was used from my part. All my findings are on a single machine with multiple controllers attached.

@corvusd
Copy link
Author

corvusd commented Jan 31, 2023

Yes, you are right. It is happen in whatever game and scenario.

@corvusd
Copy link
Author

corvusd commented Feb 10, 2023

The issue still here. Very sad and annoying issue. Please valve team, try to fix this incredible issue. We can't plug-in our gamepad with a launched game. Or even if we suspend and awake the system. The client not see the gamepads. This not happens a moths ago.

@guide-bot
Copy link

I also have this problem where a controller cannot be added after a Proton game has started on my Linux computer. I also noticed that when I try to stream a game from my Linux computer to play on my Steam Deck, the Steam Deck controls do not work in-game. I think that both of these issues are symptoms of the same bug.

@corvusd
Copy link
Author

corvusd commented Feb 12, 2023

Yes, I have very similar problems... I think is the same issue.

@ivyl
Copy link

ivyl commented Feb 16, 2023

This should be now solved with a Steam Runtime update. It should be picked up automatically, but if it takes time restarting Steam can speed things up.

@smcv
Copy link
Contributor

smcv commented Feb 16, 2023

More specifically, this is hopefully fixed by today's "Steam Linux Runtime - soldier" update (for Proton games, and most native Linux games on Steam Deck), or by today's "Steam Linux Runtime - sniper" update (for Retroarch specifically).

@guide-bot
Copy link

In my preliminary testing, both (a) streaming from Linux PC to Steam Deck, and (b) plugging in a controller after launching a Proton game on a Linux PC have been addressed with this update. Controls are functioning as expected. Thanks!

@Disk1of5
Copy link

Can confirm controller functionality is working again on Linux hosts using Steam Play when Remote Play Clients are:
Ubuntu, Steam Deck, Android Client.
Thanks you Valve Team! (@kisak-valve )

@TiZ-HugLife
Copy link

I'm on Steam Deck Preview, and this had a really annoying impact on our fighting game local weeklies, where controllers come and go pretty much constantly. Testing this in SoulCalibur VI, it does appear the issue is now resolved after having downloaded those runtime updates. The true trial by fire will be our weekly on Wednesday.

However, testing it in Dicey Dungeons, the issue still persists there. Should I take this to that game's Proton issue, or wait to see if this issue rears its ugly head again when it sees the wider variety of controllers on Wednesday?

@smcv
Copy link
Contributor

smcv commented Feb 21, 2023

If game controller hotplug works in some but not all games, then it's probably a (different?) problem with specific games, which should be reported separately with full details. In particular, if hotplug has never worked in a particular game, then the changes made for this one will not fix it.

The issue that was fixed here is that hotplug regressed for all native Linux SDL games used via the Steam Linux Runtime container, and for all Proton 5.13+ games, in early 2023 (or perhaps very late 2022 if you were using betas). This is consistent with the timing described by the OP, and was triggered by the upgrade from SDL 2.24 to SDL 2.26. Native Linux games via the older LD_LIBRARY_PATH runtime (used for most games on desktop but not on Steam Deck) were unaffected by the regression. Native Linux games that don't use SDL or use their own bundled copy of SDL were also unaffected (but hotplug might never have worked in these games, it depends how they were implemented).

Since 2023-02-16, Steam Linux Runtime - soldier has a hotfix workaround in its default branch (which should work reliably while the beta gets more testing), and a fixed version of SDL in its client_beta branch. The beta with the fixed SDL will be moved to the default branch later.

A reminder that if you are technically literate and can write good bug reports, the betas give you an opportunity to discover regressions before most users will encounter them, report the regression so it can be fixed for everyone, and roll back to the default branch to avoid the regression until it's fixed - so if you are relying on some feature working perfectly at a particular point in time, trying the betas before that point makes it more likely that you'll have at least one working version available on that day.

@smcv
Copy link
Contributor

smcv commented Feb 28, 2023

Since 2023-02-16, Steam Linux Runtime - soldier has a hotfix workaround in its default branch (which should work reliably while the beta gets more testing), and a fixed version of SDL in its client_beta branch. The beta with the fixed SDL will be moved to the default branch later.

The fixed version of SDL has also now reached the default branch of "Steam Linux Runtime - soldier", so I think this issue can be closed now.

@corvusd
Copy link
Author

corvusd commented Mar 1, 2023

Work fine in all situations. Like before. Thanks valve team! ;)

@beh-10257
Copy link

beh-10257 commented Jun 29, 2024

is this issue present in wine stable now ??
I even tried in staging its still there

More specifically, this is hopefully fixed by today's "Steam Linux Runtime - soldier" update (for Proton games, and most native Linux games on Steam Deck), or by today's "Steam Linux Runtime - sniper" update (for Retroarch specifically).

so this fixed the issue but how
should I install xinput I am using wayland
ok gamescope doesn't fix the issue

@smcv
Copy link
Contributor

smcv commented Jul 8, 2024

@beh-10257, the issue described here was solved in 2023. If you are experiencing a similar problem in 2024, probably something different is wrong. Please open a new, separate issue and provide details of your system and the affected game(s), instead of replying to a closed issue.

@alecfriedman3
Copy link

alecfriedman3 commented Jul 23, 2024

I'm happy to open an issue if necessary, but is it possible there's been a regression here? I'm experiencing precisely what's described here on steam linux as of the past few weeks. A controller re-connection mid-game will not reconnect to the game until the game itself is restarted. The controller is still able to access and navigate steam Big Picture overlay upon re-connection, so it is definitely connected and inputs are being read/received. This is happening on both steam flatpak and natively on openSUSE Tumbleweed, playing over a streaming client (Moonlight) or with a controller connected directly to the host makes no difference.

I can't necessarily say this affects all games, but I'm seeing it on Fallout 4, Fallout NV, Red Dead Redemption 2, and The Witcher 3, and hot re-connect definitely worked for at least Fallout 4 and RDR2 prior to a few weeks ago. While it's not impossible that it could be a new unrelated issue, the symptoms are so similar to what's described above (even down to the functional Big Picture menu) that I would find it hard to believe it's not related.

There is also an additional open issue that seems to describe similar behavior on the Steam Deck (assuming removing a deck from a dock effectively reconnects the deck as a controller, if that's the case this would seem to be related and we could move discussion there instead)

Steam Beta Branch:  Stable Client
Steam Version:  1721173382
Steam Client Build Date:  Tue, Jul 16 7:22 PM UTC -05:00
Steam Web Build Date:  Mon, Jun 24 3:16 PM UTC -05:00
Steam API Version:  SteamClient021

Edit to add: Changing proton to GE-Proton9-7 or down to Proton 8.0-5 seems to fix the issue, perhaps it was introduced with Proton 9.0-2 https://github.com/ValveSoftware/Proton/releases/tag/proton-9.0-2 ? Let me know if I should open a new issue and where.

@smcv
Copy link
Contributor

smcv commented Jul 23, 2024

@alecfriedman3, please report a new issue instead of replying to a closed issue: that way, the new issue has details of your particular system, and not details of someone else's system where a similar symptom happens to have been seen in the past.

If swapping Proton version fixes or works around the issue, then https://github.com/ValveSoftware/Proton is probably be the best place to start. Proton 8.0 and 9.0 both use the Steam Linux Runtime 3.0 "sniper" container, which means that if you can reproduce the problem with 9.0 but not with 8.0, it is less likely to be a Steam Linux Runtime regression.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

10 participants