GE-Proton 11-12 fixes Proton 10 XInput controller reconnection after sleep on Linux handhelds
GE-Proton 11-12 resolves a long-standing Wine XInput bug where controllers fail to re-bind after system suspend, which affects non-Steam Deck handhelds running Bazzite and other Linux distributions.
Summary
Linux handheld users running Bazzite on devices like the ROG Ally have faced a frustrating controller disconnection bug when resuming from sleep during gameplay. The issue, originally misattributed to Bazzite itself, stems from Proton 10's base Wine implementation caching XInput device state without performing event-driven rescans when controllers re-enumerate after wake. This causes the game to retain a stale controller reference while the Steam Big Picture overlay continues functioning normally, forcing users to kill and restart their game. Valve's Proton 11.0 series has progressively addressed controller hotplug reliability, and Glorious Eggroll's GE-Proton 11-12 now incorporates the complete fix by rebasing on Valve's October 2026 bleeding-edge Wine with event-driven XInput rescan, HID report truncation, and hotplug lifecycle rework.
The root cause involves two separate upstream Wine bugs: xinput failing to re-queue reads after thread cancellation, and games receiving premature pad notifications before XInput can properly open the device. These bugs affect not just idle or dock disconnections but also system suspend on handheld PCs where the controller loses power and re-enumerates as a new HID instance. Previously, users had to downgrade to Proton 9.0-2 to avoid the issue. GE-Proton 11-12 eliminates this workaround requirement and also removes game-specific rescan hacks previously used for titles like Far Cry 4 and The Witcher 3.
What changed in GE-Proton 11-12 and upstream Proton 11
- XInput rescan architecture: GE-Proton 11-12 replaces cached XInput device state with event-driven rescanning, triggering controller rebinding only when HID device changes are detected rather than relying on periodic polling or game-specific hacks.
- HID layer fixes: Input reports are now truncated to their declared length, preventing buffer overruns or misalignment when controllers re-enumerate with different report descriptors after power events.
- Wine upstream bugs identified: Two distinct bugs persist in upstream Wine master and Valve's proton_11.0 branch—cancelled xinput reads never re-queue after thread exit, and games receive premature pad notifications before XInput completes device open.
- Proton 11.0-2 suspend-specific fixes: Valve's official Proton 11.0-2 addressed suspend/resume with fixes for Forza Horizon 6 auto-closing and DRAGON QUEST BUILDERS audio corruption after device suspend.
- GE hotplug lifecycle rework: Glorious Eggroll's cumulative changes across GE-Proton11-8 through 11-12 include DS4 speaker audio improvements, Sony controller hotplugging, and elimination of expensive controller polling that previously caused initialization races.
Why it matters
This fix is particularly significant for the growing ecosystem of non-Steam Deck handheld PCs running Linux distributions like Bazzite, where suspend-resume is a core usage pattern for portable gaming. The resolution removes a major friction point that previously forced users to choose between modern Proton features and basic controller functionality, and it demonstrates how community builds like GE-Proton continue to serve as proving grounds for fixes that eventually inform upstream Valve development.
Original reference: boilingsteam.com →