Commit graph

1,398 commits

Author SHA1 Message Date
20c3273314 Restore control panel after renderer resets
Some checks failed
Build / setup (push) Has been cancelled
Build / build-appimage (push) Has been cancelled
Build / build-steamlink (push) Has been cancelled
Build / build-windows-macos (push) Has been cancelled
2026-02-12 09:28:57 -07:00
25310655c5 Add separate keyboard and mouse input shortcuts
Some checks are pending
Build / setup (push) Waiting to run
Build / build-appimage (push) Blocked by required conditions
Build / build-steamlink (push) Blocked by required conditions
Build / build-windows-macos (push) Blocked by required conditions
2026-02-12 09:27:36 -07:00
87f4e90ca2 Split keyboard and mouse policy handling
Some checks are pending
Build / setup (push) Waiting to run
Build / build-appimage (push) Blocked by required conditions
Build / build-steamlink (push) Blocked by required conditions
Build / build-windows-macos (push) Blocked by required conditions
2026-02-12 09:11:40 -07:00
d174341b6d Centralize SDL input subsystem ownership for hotplug recovery
Some checks are pending
Build / setup (push) Waiting to run
Build / build-appimage (push) Blocked by required conditions
Build / build-steamlink (push) Blocked by required conditions
Build / build-windows-macos (push) Blocked by required conditions
2026-02-12 07:57:41 -07:00
e94f0c5990 Throttle hotplug re-enumeration retries and reduce log noise
Some checks are pending
Build / setup (push) Waiting to run
Build / build-appimage (push) Blocked by required conditions
Build / build-steamlink (push) Blocked by required conditions
Build / build-windows-macos (push) Blocked by required conditions
2026-02-12 07:40:45 -07:00
5f41d9a4c3 Recover gamepad reconnect by forcing SDL re-enumeration
Some checks are pending
Build / setup (push) Waiting to run
Build / build-appimage (push) Blocked by required conditions
Build / build-steamlink (push) Blocked by required conditions
Build / build-windows-macos (push) Blocked by required conditions
2026-02-12 07:38:51 -07:00
6742e9153c Force SDL joystick refresh during reconnect recovery poll
Some checks are pending
Build / setup (push) Waiting to run
Build / build-appimage (push) Blocked by required conditions
Build / build-steamlink (push) Blocked by required conditions
Build / build-windows-macos (push) Blocked by required conditions
2026-02-12 02:10:03 -07:00
bcb721bca3 Poll gamepad recovery even when SDL event queue is busy
Some checks are pending
Build / setup (push) Waiting to run
Build / build-appimage (push) Blocked by required conditions
Build / build-steamlink (push) Blocked by required conditions
Build / build-windows-macos (push) Blocked by required conditions
2026-02-12 02:08:56 -07:00
b03a4341e3 Poll SDL device list to recover missing hotplug events
Some checks are pending
Build / setup (push) Waiting to run
Build / build-appimage (push) Blocked by required conditions
Build / build-steamlink (push) Blocked by required conditions
Build / build-windows-macos (push) Blocked by required conditions
2026-02-12 02:06:12 -07:00
e005587806 Recover gamepad state when add events are missed
Some checks are pending
Build / setup (push) Waiting to run
Build / build-appimage (push) Blocked by required conditions
Build / build-steamlink (push) Blocked by required conditions
Build / build-windows-macos (push) Blocked by required conditions
2026-02-12 02:00:45 -07:00
cf652190a3 Handle joystick hotplug fallback and avoid stale gamepad matches
Some checks are pending
Build / setup (push) Waiting to run
Build / build-appimage (push) Blocked by required conditions
Build / build-steamlink (push) Blocked by required conditions
Build / build-windows-macos (push) Blocked by required conditions
2026-02-12 01:52:03 -07:00
ca41cf32cc Clean up stale detached gamepads before hotplug reattach
Some checks are pending
Build / setup (push) Waiting to run
Build / build-appimage (push) Blocked by required conditions
Build / build-steamlink (push) Blocked by required conditions
Build / build-windows-macos (push) Blocked by required conditions
2026-02-12 01:44:04 -07:00
e88be5dce2 Align input policy startup flow and fix gamepad reconnect handling
Some checks are pending
Build / setup (push) Waiting to run
Build / build-appimage (push) Blocked by required conditions
Build / build-steamlink (push) Blocked by required conditions
Build / build-windows-macos (push) Blocked by required conditions
2026-02-12 01:36:36 -07:00
3767a9eac3 Add keyboard and gamepad shortcuts for control panel
Some checks are pending
Build / setup (push) Waiting to run
Build / build-appimage (push) Blocked by required conditions
Build / build-steamlink (push) Blocked by required conditions
Build / build-windows-macos (push) Blocked by required conditions
2026-02-12 01:15:12 -07:00
8a7be971a4 Make in-stream control panel persistent and readable 2026-02-12 01:15:03 -07:00
7e9a4add09 Finalize session input policy host sync
Some checks are pending
Build / setup (push) Waiting to run
Build / build-appimage (push) Blocked by required conditions
Build / build-steamlink (push) Blocked by required conditions
Build / build-windows-macos (push) Blocked by required conditions
2026-02-12 00:38:05 -07:00
9e52a4200b Phase 4 volume
Some checks are pending
Build / setup (push) Waiting to run
Build / build-appimage (push) Blocked by required conditions
Build / build-steamlink (push) Blocked by required conditions
Build / build-windows-macos (push) Blocked by required conditions
2026-02-11 21:20:48 -07:00
f78a63ab75 Add runtime input toggles and gated input sending
Some checks are pending
Build / setup (push) Waiting to run
Build / build-appimage (push) Blocked by required conditions
Build / build-steamlink (push) Blocked by required conditions
Build / build-windows-macos (push) Blocked by required conditions
2026-02-11 17:18:53 -07:00
Cameron Gutman
6f4ced5ed6 Assume GPUs on non-x86 platforms are slow by default
This can be overriden with GL_IS_SLOW=0 at runtime
for systems with a fast GPU, though it doesn't make
much difference either way for non-KMSDRM cases.

For slower GPUs, this enables important scaling and
rendering optimizations that can substantially
improve performance (especially on fillrate-limited
GPUs common in SBCs).
2026-02-05 23:17:23 -06:00
Cameron Gutman
8795fb54f4 Fix double-free in Vulkan renderer when an overlay is disabled
Also a drive-by fix to avoid pl_tex copying
2026-02-04 23:05:01 -06:00
Cameron Gutman
5020fc6f48 Do not reset the renderer on SDL_RENDER_TARGETS_RESET
We only need to do this on a SDL_RENDER_DEVICE_RESET where we lose the whole device.

This also reverts a56efe5 since this change is not needed when handling the reset events properly.
2026-01-31 13:00:23 -06:00
Cameron Gutman
a2122e17c6 Explicitly request linear sampling in StretchRect() 2026-01-31 12:48:03 -06:00
Cameron Gutman
6bb7c8bf2a Fix blurriness of DXVA2 overlay
Also make a drive-by fix for D3DTSS_COLOROP since we don't use vertex colors.
2026-01-31 12:44:50 -06:00
Cameron Gutman
2dda65078f Remove D3D9Ex focus loss hint workaround
SDL3 doesn't suffer this bug and keeping the default SDL3 auto behavior (minimize iff in exclusive mode) is a better UX.
2026-01-30 21:07:01 -06:00
Cameron Gutman
a56efe5c36 Fix infinite renderer resets on SDL3 using direct3d renderer 2026-01-30 20:39:53 -06:00
Cameron Gutman
b7a05d73b9 Update SDLRenderer capabilities to match SDL3 behavior 2026-01-30 20:38:53 -06:00
Cameron Gutman
6d5b9e4706 Remove Windows dark mode hack since SDL3 supports it natively 2026-01-30 19:57:11 -06:00
Cameron Gutman
792f762c15 Standardize on QString::toUtf8() 2026-01-26 21:49:08 -06:00
Cameron Gutman
8c9c799f81 Fix Clazy non-pod-global-static warnings 2026-01-26 21:49:08 -06:00
Cameron Gutman
d484ec3ac8 Fix Clazy range-loop-detach warnings 2026-01-26 21:49:08 -06:00
Cameron Gutman
f5f06ae44e Remove handling for Windows versions that are no longer supported 2026-01-26 20:04:15 -06:00
Cameron Gutman
cd9aceb62c Disable D3D11VA texture sharing on known broken GPUs 2026-01-26 19:37:43 -06:00
Cameron Gutman
e4be57db5d Remove superfluous Session checks in prepareToRender()
prepareToRender() is only called with a live Session.
2026-01-26 18:17:14 -06:00
Cameron Gutman
64fea80ac9 Create the SystemProperties test window on the main thread 2026-01-25 17:10:04 -06:00
Cameron Gutman
1e825c85e5 Optimize render to decode fence usage to reduce pipeline bubbles 2026-01-19 18:38:38 -06:00
Cameron Gutman
a0a4c1ea83 Use decoder texture binding by default when using separate devices
This significantly improves performance on Ryzen 3300U and should generally perform equal or better everywhere.

This decoder->SRV path has been prone to driver bugs, so we may need to adjust this logic if driver issues crop up.
2026-01-19 16:46:50 -06:00
Cameron Gutman
b5e7dec378 Fix D2R fence initial value
Fixes synchronization of the first decoded frame
2026-01-19 16:10:02 -06:00
Cameron Gutman
adbd19e6fa Remove the previous frame rendered fence
- Waiting on this fence prior to rendering introduces pipeline bubbles which can impact rendering performance on low-end GPUs
- Pacer simply waiting to release the previous frame until after the current frame is rendered already means any decoder stall should be very short
2026-01-19 16:01:50 -06:00
Cameron Gutman
02a86167da Disable separate decoder devices for non-Intel FL11.0 GPUs 2026-01-19 15:08:14 -06:00
Cameron Gutman
a739c1cef8 Fix D3D11 fence sharing without monitored fence support 2026-01-19 14:53:23 -06:00
Cameron Gutman
f6e08f8a43 Use separate render and decode D3D11Devices
See #1424
2026-01-19 14:25:08 -06:00
Cameron Gutman
218ffc2d55 Set explicit scaling mode for all SDL textures 2026-01-17 02:34:54 -06:00
Cameron Gutman
0f49dca4c0 Use GL_NEAREST when possible without degrading quality 2026-01-17 02:23:28 -06:00
Cameron Gutman
30274f3ae8 Don't keep the dummy renderer alive for EGLRenderer's lifetime
At best, it doesn't do anything other than some queue some viewport
changes via SDL_RendererEventWatch(). At worst, it can race with
the render thread and cause trouble.
2026-01-17 01:06:41 -06:00
Cameron Gutman
66a30c66f3 Use EOS to force decoder test frame output 2026-01-16 01:08:51 -06:00
Cameron Gutman
198a208b44 Clamp property values when restoring them 2026-01-14 23:26:46 -06:00
Cameron Gutman
d865c77975 Crop the incoming frames if they deviate slightly from the expected size
Fixes #1466
2026-01-11 20:58:48 -06:00
Cameron Gutman
cd13910e6c Add support for YUV 4:4:4 in DXVA2
We get it basically for free now that we let FFmpeg handle the heavy lifting.
2026-01-11 20:55:46 -06:00
Cameron Gutman
b8e9262b1b Replace deprecated DXVA2 initialization with standard hwaccel init
- Avoids requiring a hardcoded number of frames (and creating surfaces ourselves)
- Removes a ton of unnecessary code that's duplicated in FFmpeg
- Supports dynamic frame sizes, formats, and color conversion
- Supports frame cropping in FFmpeg
2026-01-11 17:46:13 -06:00
Cameron Gutman
c14ebb1ad7 Adjust buffer count for hwaccel and v4l2m2m decoders
- For hwaccel decoders, don't depend on FFmpeg's 4 working surfaces.
  The decoders might need one or more of them internally.

- For V4L2M2M decoders, adjust the buffer counts to match our needs
  and requirements regarding Pacer-held frames.
2026-01-11 14:18:22 -06:00