feat(input): implement libvirtualhid adding new gamepad styles - #5368
Conversation
Bundle ReportChanges will increase total bundle size by 57.33kB (2.38%) ⬆️. This is within the configured threshold ✅ Detailed changes
Affected Assets, Files, and Routes:view changes for bundle: sunshine-esmAssets Changed:
|
92ddf06 to
d696dca
Compare
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## master #5368 +/- ##
==========================================
+ Coverage 28.10% 32.40% +4.30%
==========================================
Files 109 104 -5
Lines 24711 24931 +220
Branches 10910 11076 +166
==========================================
+ Hits 6944 8079 +1135
+ Misses 16783 14999 -1784
- Partials 984 1853 +869
Flags with carried forward coverage won't be shown. Click here to find out more.
... and 20 files with indirect coverage changes Continue to review full report in Codecov by Harness.
|
b09b74e to
c8d6008
Compare
4a64041 to
ed17e4f
Compare
ed17e4f to
67787f0
Compare
a3e7ed7 to
fe08cf1
Compare
fad67c4 to
e6adb1b
Compare
Screenshot ComparisonPR #5368 screenshots vs Matrix:
|
beab94f to
0af629e
Compare
c0e7306 to
be323a2
Compare
be323a2 to
f9a9fa8
Compare
8694b57 to
23735d6
Compare
da01bf8 to
3d2a82d
Compare
Add session-scoped retained input state so virtual gamepads survive paused transport connections and are rebound on resume instead of being recreated. Introduce explicit gamepad termination APIs for global and per-session cleanup, and call them when streams, RTSP sessions, or launched processes are terminated. Add a platform-level `rebind_gamepad` path for both virtualhid and Windows ViGEm backends (with feedback routing synchronization), refactor shared allocation logic, and extend unit coverage for rebind behavior and retained gamepad lifecycle.
Add Linux udev rules that grant input/uaccess permissions to libvirtualhid devices matched by their `phys` path for both `hidraw*` and `event*` nodes, in addition to existing name-based matches. This improves device permission handling when names are inconsistent. Also updates the `third-party/libvirtualhid` submodule to commit `7902b766`.
|









































































Description
This PR implements libvirtualhid in Sunshine, replacing inputtino on Linux, vigembus on Windows AMD64, and moves the mouse/keyboard input for macOS as well.
We will still falling back to vigembus on Windows ARM64 or in cases where the user doesn't have libvirtualhid's driver installed.
TODO:
b887f6atod28ec79#5414Known issues:
Screenshot
Issues Fixed or Closed
b887f6atod28ec79#5414Roadmap Issues
Type of Change
Checklist
AI Usage