Proton
Proton copied to clipboard
Controller hot-reconnection broken
Sometime in the last month is when I first started observing this issue. 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 first noticed this issue while using Proton experimental a few weeks ago. I believe the issue to be within Proton, as reverting from proton experimental back to 9.0-2 fixes the behavior. This happens on all games from what I can tell.
Can confirm this. I first started experiencing this a few days ago with Elden Ring. I've tested it with both Elden Ring and Dark Souls III, and both games the controller does not reconenct to the game if I'm using Proton Experimental, but does if I'm on 9.0-2.
Another thing to note is that the controller touchpad continues to work like a mouse in-game, but all other controls stop working until the game is restarted.
I can also confirm this in multiple games. Did this ever work? I don't recall if it ever did.
(edit) I just ran a test on some random games to see if my controller (DS4) reconnected on any of them; all negative.
- Elden Ring
- Outcast - A New Beginning
- SIGNALIS
- Rain World
- Ori and the Will of the Wisps
I can also collaborate with my findings. This is a very recent regression in Experimental as a few weeks ago this was a non-issue.
No games are able to reconnect gamepads and controllers on my end as well.
I'm planning on looking through commits to see if I can spot the breaking change.
Did this ever work? I don't recall if it ever did.
@abc-mikey Yes this worked fine just last month. See my original comment, reverting from proton experimental back to 9.0-2 fixes the behavior
This is an issue for me now on as well. I’m on a fresh install of Linux Mint 22 xfce edition.
This was not an issue in the past for me when running the same version of proton-GE-11 and Steam beta client on Linux Mint 21.3 xfce. Tested multiple usb ports and multiple games.
yep. issue on my end too, both experemental and GE versions of proton affected to this, switching back to stable 9.0.2 fixes this
yep. issue on my end too, both experemental and GE versions of proton affected to this, switching back to stable 9.0.2 fixes this
If it's also affecting GE versions, can someone see when's the last GE 9 version that it worked for?
Since GE is built off of experimental, this can help narrow down the commit as well
Latest working GE version is 9-10. 9-11 pulled in latest upstream proton according to the release notes and does not work. The last upstream proton merge in GE before that was 9-6, so it would have been introduced sometime between those two release dates. GE 9-10 worked and 9-11 did not when I tried it
Maybe helpful bit of an update, running a game with PROTON_LOG=1, proton experimental gives an error when the controller is re-connected
0088:err:plugplay:IoRegisterDeviceInterface Device interface L"\\??\\HID#VID_28DE&PID_11FF&XI_00#0&0000&0&0&1#{6c53d5fd-6480-440f-b618-476750c5e1a6}" is still enabled.
and seems to think the device is already enabled. This error is absent from the logs with Proton 9.0-2. Maybe proton/wine is not properly destroying the input device in memory when the controller disconnects??
This may be entirely baseless, but something's pulling me to this commit from wine, made on July 3rd and pulled into experimental on July 18th (687a81ed). From my error log message, my device matches VID and PID hex codes of a conditional that was moved around VID_28DE&PID_11FF and corresponding instances of checking if (desc.vid == 0x28de && desc.pid == 0x11ff) ...
Maybe that's irrelevant, but could be a good place to start for someone more familiar with the codebase :shrug:
I have same issue with Super Bit Blaster XL, which is a native Linux game, not using any version of Proton. Strange.
not using any version of Proton.
Then your issue isn't related to Proton @guoyunhe as your issue persists outside of an application running Proton. Your issue looks like a hardware/software issue for your controller. Try xone or try a different controller.
Then your issue isn't related to Proton @guoyunhe as your issue persists outside of an application running Proton. Your issue looks like a hardware/software issue for your controller. Try
xoneor try a different controller.
The controller works fine with some non-Steam games and emulators. I am still investigating...
I've had this issue for a while now when playing BeamNG.drive via Proton with my Xbox 360 controller: If it disconnects (idle, low battery, whatever), the game doesn't recognize it anymore once it's connected again. Have to restart the whole game so it works again.
Weird thing is: I've already had this problem in the past (end of 2023 I think), then it disappeared, then it reappeared again a while ago.
@Kirschi94 There was a very similar bug in steam for linux back in 2023, could have been that
Oh yeah, pretty sure that was that
Update on my end btw: Hot-reconnection for my 360 controller seems fixed, at least in BeamNG.drive it works again
Controller hot-connection does not work at all for me in "Dragon Quest Monsters: The Dark Prince". If I start the game with my gamepad off and then turn the gamepad on, the gamepad does not work in the game at all. It only ever works if the gamepad was already on before starting the game. It continues to work perfectly in that case, but if it ever times out and I turn it back on, that also doesn't allow it to connect.
Also, when trying to access the gamepad settings in the Steam overlay (shift+tab, then clicking the gamepad icon), the overlay instantly disappears. I can't view the gamepad settings at all. After I've clicked the gamepad settings, opening the overlay shows it for 1 frame and then it instantly starts to fade out and go back to the game. This can be repeated many times if I spam shift+tab.
I saw that this wine bug report was addressed in the latest release of wine: https://bugs.winehq.org/show_bug.cgi?id=57158
I'm guessing that once Proton has the latest changes from wine including the fix in that report, this issue may be resolved.
Thanks for sharing the bug report.
I see the issue was fixed by a merge in wine a week ago.
For me it corresponds to when proton started to work correctly so the change should be already present in Proton.
To be clear:
Now Proton removes the controller correctly once disconnected and recreates it when connecting again.
Whereas, before, Proton didn't reacted to the controller disconnection event and it showed as if it was still connected and upon connecting again it created a new device.
This was the issue that OP referred to as I've seen some other commments mentioning problems that are not related.
I'd say this issue could be closed.
From: Alex Folland @.> Sent: Sunday, September 22, 2024 12:13:24 AM To: ValveSoftware/Proton @.> Cc: Codrut Ban @.>; Manual @.> Subject: Re: [ValveSoftware/Proton] Controller hot-reconnection broken (Issue #7952)
I saw that this wine bug report was addressed in the latest release of wine: https://bugs.winehq.org/show_bug.cgi?id=57158
I'm guessing that once Proton has the latest changes from wine including the fix in that report, this issue may be resolved.
— Reply to this email directly, view it on GitHubhttps://github.com/ValveSoftware/Proton/issues/7952#issuecomment-2365337923, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AEOW7O7GM3YL6U6PSIMF2TTZXXVQJAVCNFSM6AAAAABLY3PNBWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGNRVGMZTOOJSGM. You are receiving this because you are subscribed to this thread.Message ID: @.***>
I disagree. The issue still happens for me and Proton doesn't immediately take all changes from wine, as far as I know. Like @kisak-valve tagged, this needs a re-test after the change is actually in Proton.
Edit: I just tested with Proton-Experimental, and the issue still happens here, so this definitely should not be closed.
The commit that triggered the regression in Wine does not appear to be included in the Proton fork, so it is quite likely that the fix there will not fix this here, even if the issue seems very similar indeed.
Still an Issue for me
Is Valve working on resolving this issue soon?
Same issue in Proton 9.0.4 (9.0.2 is not available anymore in the drop-down menu)
Using proton 8.x.x fixed it for me (Tested in It Takes Two)
I wonder if this is actually a libsdl2 issue.
With vanilla Wine, I saw a similar issue happening for me again a while ago, when I had built libsdl2 with udev support to test something completely different.
For binary distributions I'd imagine that support to be always included, so most users would probably be affected.
Perhaps a long-ish-shot, but it's something to consider, I maybe guess.
Happy New Year everyone, issue is still there
Did a whole bunch of tests on this subject, easilly reproducable and consinstent on my end (NEEDS CONFIRMATION FROM OTHER PEOPLE)
Test enviroment
Fedora 41, Gnome 47, Wayland Steam Flatpak (it doesn't really matter flatpak or not, there are still the same working versions of proton on this matter like for regular version of steam and for a flatpak one) Steam Beta or Stable also does not matter Dualshock 4 Controller, XboxOneWireless both using Bluetooth (did a last small test with dualshock wired resulted the same, so it doesn't matter wired or not) Games: Dead Space Remake, Baldur's Gate 3 (picked them because they have built-in support for Dualshock 4 and both regural xinput, which gives an option to exclude SteamInput from the equation when testing)
Now im thinking that the culprit to this issue is a SteamInput system, to be precise interaction of the Proton and SteamInput
Some commit that was merged in the proton broke how proton interacts with SteamInput, am not a developer so don't know what exactly broken, generated log files using PROTON_LOG=1 command line option in the games.
Since you cannot chose a latest working 9.0.2 version of proton I choose a version 8.0.5 which is working as intended, latest working version of GEProton_9-9
Affected Proton versions: stable 9.0.4 (stable 9.0.2 did worked correctly when it was available), Experemental, all builds after GEProton 9-9 (version 9-10 did not work for me as someone stated above)
Steps to reproduce:
- On affected verison of Proton disable SteamInput system on a game that natively supports your controller. It just works
- Enable SteamInput and hot reconnection is broken again
Dead Space Remake
Latest stable version Proton 9.0.4 DeadSpaceproton9.0.4c-NotOK_SteamInputEnabled.log SteamInput off: DeadSpace_proton9.0.4c-OK-SteamInputDisabled.log
Latest stable working version 8.0.5 DeadSpace_Proton8.0.5_Ok_SteamInputEnabled.zip (zip archive because github dont allow filles bigger than 25 MB) Latest working GE version DeadSpace_ProtonGE9-9_OK_SteamInputEnabled.log
Affected Proton builds: DeadSpace_ProtonExperement_NotOk_SteamInputEnabled.log DeadSpace_protonExperement_OK_SteamInputDisable.log DeadSpace_ProtonGE9-22_NotOk_SteamInputEnabled.log
Baldur's Gate 3
Latest working builds: Baldurs_proton8.0.5_XboxGamepad_OK_SteamInputEnabled.log SteamBeta_Baldurs3_ProtonGE9-9_OK_SteamInputEnabled.log
Latest affected stable 9.0.4: SteamBeta_Baldurs3_Proton9.0.4c_NotOk_SteamInputEnabled.log Dualshock4Wired_Baldurs_Proton9.0.4c_NotOk_SteamInputEnabled.log Baldurs_proton9.0.4c_XboxGamepad_Not-Ok_SteamInputEnabled.log
Baldurs_proton-9.0.4c_XboxGamepad_OK_SteamInputDisabled.log Baldurs_proton9.0.4c_OK_SteamInputDisabled.log
Affected GE versions after GE9-9: Baldurs_protonGE9-10_Not-Ok_SteamInputEnabled.log
did a quick small test afterwards, installed steam anew from the rpm package (without flatpak whatsoever) issue is still reproducable as expected SteamRPM_OK_SteamInputDisabeld.log SteamRPM_NotOK_SteamInputEnabled.log
Happening on Arch Linux as well (Wayland, https://pastebin.com/5yMvL6Cv) It is as sour described it, every version after GEProton9-9 and Proton 9.0.2 does not work correctly
I tested:
- Reconnecting when game was launched with controller It didn't re-detect the controller
- Connecting the controller after the game was launched It never detected it
- Friends connecting their controllers with remote play It never detected them either
- Differentiating between bluetooth/usb No difference, still never worked
The moment I switched back to GEProton9-9 it worked flawlessly, also to note, this only happens when Steam Input is enabled for games, in games where I have native controller support (no steam input needed), it works fine
The issue with that is remote play, it always requires steam input and with GEProton-9-10+ having broken steam input, it just doesn't work if someone connects with remote play as it will never let them input anything
Also SUPER rarely when I reconnected the controller, but only really quickly, it successfully reconnected the controller Since I didn't know this issue existed and it took me a while to find it I thought it was just because my controller switched from /dev/hidraw5 to /dev/hidraw6 but when I did it really quickly, it didn't switch and worked as normal, now I don't know what's happening under the hood but that's my guess
I'm happy to provide logs or evidence if needed, just give me a mention
I'd be happy to test any hotfixes and seeing if it works
Replying to https://github.com/ValveSoftware/Proton/issues/7952#issuecomment-2744759417
Pretty much exactly what I am experiencing. Also with Remote Play and everything.
I can confirm that the problem is still here, with Proton GE 27 and Proton Experimental / Hotfix Works on Proton 8.0-5, but not with anything after that The game I'm having trouble with is Metaphor: Refantazio
Also confirm the problem on Debian with Proton 9.0.4 and Experimental. Games: Naruto Storm 1 and 2