Skip to content

fix(videoout): disable SDL DirectInput joystick enumeration on Windows - #5580

Merged
oneandonlydean merged 2 commits into
boykopovar:mainfrom
oneandonlydean:fix/videoout-dinput-1042
Oct 14, 2026
Merged

oneandonlydean merged 2 commits into
boykopovar:mainfrom
oneandonlydean:fix/videoout-dinput-1042

Conversation

@oneandonlydean

Copy link
Copy Markdown
Collaborator

What

On Windows, SDL's DirectInput joystick enumeration blocks forever on machines with some vendor HID devices, so SDL_InitSubSystem(VIDEO | GAMECONTROLLER) in the VideoOutDriver constructor never returns and sceVideoOutOpen hangs. The constructor now sets SDL_HINT_DIRECTINPUT_ENABLED to 0 at SDL_HINT_DEFAULT priority before that call, so the SDL_DIRECTINPUT_ENABLED environment variable still overrides it. XInput and HIDAPI controllers are still detected; controllers reachable only through DirectInput are not, recorded in the libSceVideoOut technical debt.

Relands #1050 by @Tenith01 (their commit is kept as is, with the technical debt entry added as a second commit crediting them as co-author).

Fixes #1042

Tested

Checklist

  • Based on current main; no other open PR implements the same functions
  • One topic per PR; follow-ups go in a new PR
  • No comments in code except technical debt
  • Unimplemented paths throw (NotImplemented_nid_no_patch); silent stubs are listed under Silent stubs in their library's technical debt file
  • No notes, investigation .md files or images added to the repository (attach them to this PR)
  • New third-party code is a submodule built from source
  • Generic behaviour, not specific to one title
  • Depends on: none
  • Unblocks: none
  • GPUs tested: NVIDIA GeForce RTX 4090, Windows 11 (issue reporter, driver not reported); the change only sets an SDL input hint before window creation and does not touch rendering
  • AI-assisted: yes

Based on main feddf7f.

@github-actions

github-actions Bot commented Oct 14, 2026 •

Copy link
Copy Markdown

Other open pull requests touch the same code. Merging one will break the other, or both implement the same thing. If this one builds on them, list them in Depends on.

Pull request Conflicting files (lines on main) Same exports Same new files
#3664 core/libs/prx/libSceVideoOut/src/VideoOutDriver.cpp L261
#5239 docs/dev/debt/libSceVideoOut.md L25

@oneandonlydean
oneandonlydean merged commit d7bb2fe into boykopovar:main Oct 14, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Windows: SDL DirectInput enumeration in sceVideoOutOpen blocks forever on a HID device, so video out never opens

2 participants