Repository navigation
fix(libSceVideoOut): add APS5_NO_WGI to turn off SDL's Windows.Gaming.Input backend - #7005
Conversation
…d off On a Windows 10 host with virtual gamepad buses, SDL's WGI backend faults at Windows.Gaming.Input.dll+0x10a84 a few seconds into every run (EVO Player PPSA99039: 26 of 26 runs). XInput and HIDAPI still cover Xbox and DualSense controllers. Set at default priority, like DIRECTINPUT, so SDL_JOYSTICK_WGI=1 turns it back on. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Some comparisons could not be completed because a pull request conflicts with the base branch. Review these shared files manually before concluding that there is no overlap.
|
|
Cross-validation on Windows 11 Pro 26220, NVIDIA RTX 4070 (596.21), MinGW GCC 15.2, PR head
Suggestion: Not checked: pad input over XInput on a physical pad, Windows 10, Linux/macOS (the line is Windows-only). Written with Claude Code assistance (validation by a subagent, reviewed in this session). |
…in technical debt Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
DualSense check, since the PR was tested only with a wired Xbox 360 controller: Windows 11 10.0.26200.9711, RTX 5070 Ti (NVIDIA 617.42), WinLibs GCC 15.2.0 r7, Release. DualSense over Bluetooth, no Steam/DS4Windows running. Head c2f466d merged onto main f3263df (clean merge, no new build errors). Controller detection, from So with WGI off, the Bluetooth DualSense is still opened as a game controller with motion sensors, touchpad and LED, as the commit message expects. guest_pad, guest_pad_vibration_mode and pad_sdl pass with the PR. Not checked: button and stick input in a title, rumble, a wired DualSense, and the WGI crash itself (this host doesn't reproduce it on main). AI-assisted: yes |
|
@TheSovietWaffle thanks for the careful crash data, and for the cross-checks from others. We'd rather not turn Windows.Gaming.Input off for everyone. With it off, Windows loses devices and features only WGI reaches once DirectInput is off: racing wheels, arcade and flight sticks, HID pads with no HIDAPI driver, and Xbox One/Series trigger rumble. Wheels matter for a lot of PS5 titles. Could you flip it around so WGI stays on by default and an environment variable turns it off for hosts that hit the Then please update the Windows game controllers entry in |
… with APS5_NO_WGI Windows.Gaming.Input stays on by default, so racing wheels, arcade and flight sticks, HID pads without an HIDAPI driver and Xbox One/Series trigger rumble keep working. Hosts where it faults at Windows.Gaming.Input.dll+0x10a84 set APS5_NO_WGI to turn it off. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
@oneandonlydean done in AI-assisted: yes (Claude Code). |
The workflow checked out pull_request.base.sha, the base recorded when the pull request was opened, and ran that revision's check_conventions.py. A rule merged after a pull request was opened never ran on it: #7005 added APS5_NO_WGI without an ENVIRONMENT.md row and passed with the checker of 07e7414, which had no env-reference rule. Check out the current tip of the base branch and pass it as --base; the checker already diffs from the merge base, so only the pull request's own changes are checked. A name documented on the base branch after the branch point now counts as documented unless the pull request removes its row. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
What
On Windows,
VideoOutDriverkeeps SDL's Windows.Gaming.Input joystick backend on by default. WhenAPS5_NO_WGIis set, it setsSDL_HINT_JOYSTICK_WGIto0atSDL_HINT_DEFAULTpriority beforeSDL_InitSubSystem, next to the existingSDL_HINT_DIRECTINPUT_ENABLEDline, following the otherAPS5_NO_*switches. The Windows game controllers entry indocs/dev/debt/libSceVideoOut.mddescribes the opt-out: what it fixes, what it drops (racing wheels, arcade and flight sticks, HID pads without an HIDAPI driver, Xbox One/Series trigger rumble) and the host where the fault was seen.On that Windows 10 host the WGI backend faults a few seconds into every run, in every title I ran:
[rsi]holds the tail of SDL'sSDL_JOYSTICK_ARCADESTICK_DEVICES_EXCLUDEDhint name. Device Manager on this host listsNefarius Virtual Gamepad Emulation Bus(OK) andOculus Virtual Gamepad Emulation Bus(Error); I have not established which, if either, triggers the fault.Tested
Windows 10 Pro 22H2 (19045), Ryzen 7 7800X3D, RTX 3080 (NVIDIA 617.42), WinLibs GCC 15.2.0 r7, Release.
Windows.Gaming.Input.dll+0x10a84mainAPS5_NO_WGI=1pad_input,pad_input_mapping,pad_keyboard_mouse,pad_sdl,guest_padandguest_pad_vibration_modepass on this head.XInput Controller #1; @screamm's RTX 4070 / Windows 11 cross-check and @cadenasynyster's DualSense over Bluetooth check are in the comments.tools/check_conventions.py --base origin/mainpasses.Checklist
main; no other open PR implements the same functionsNotImplemented_nid_no_patch); silent stubs are listed under Silent stubs in their library's technical debt file.mdfiles or images added to the repository (attach them to this PR)APS5_NO_WGI; no bring-up discussion)🤖 Generated with Claude Code