Cameron Gutman
b1824e9dbb
Check for vaMapBuffers2 which is required by FFmpeg with libva 2.21+
2026-09-03 00:07:42 -05:00
Cameron Gutman
513ceca9ff
Disable everything except libva-x11 for AppImages
...
We don't build with DRM or Wayland support and libva-probe.c doesn't check libva-drm or libva-wayland.
2026-09-03 00:06:07 -05:00
Cameron Gutman
0eff3b9b4d
Update CI builds to Qt 6.11.2
2026-08-30 16:35:32 -05:00
Cameron Gutman
1c8b23c7f8
Update dependencies
...
libplacebo -> 41ac298
OpenSSL -> 3.6.4
Vulkan SDK -> 1.4.357
2026-08-30 16:24:09 -05:00
Cameron Gutman
1da6ff434c
Update qmdnsengine submodule with latest upstream changes
...
Fixes #1983
2026-08-26 01:31:31 -05:00
Cameron Gutman
d2f6990be6
Send LI_CTYPE_STEAM for known Steam Controllers
2026-08-18 22:26:07 -05:00
Cameron Gutman
256022d3d6
Quiet the 'where' invocations in build-arch.bat
2026-08-14 23:24:53 -05:00
Cameron Gutman
da3312347d
Remove checked-in vswhere.exe binary
2026-08-14 23:23:57 -05:00
Cameron Gutman
6cae32bf53
Remove checked-in jom.exe binary
2026-08-14 23:16:00 -05:00
Cameron Gutman
2e13ed9977
Update FFmpeg to fix 8-bit D3D11VA full range decoding
2026-08-06 22:23:30 -05:00
Cameron Gutman
7cf8b46c79
Pass the correct renderer to EGLImageFactory
...
We should be using the EGL renderer's colorspace and color range
rather than the backend renderer's for fallbacks. The former is
what actually gets passed to the host PC during stream init.
2026-08-06 00:29:53 -05:00
Cameron Gutman
c1623ff44e
Switch the default renderer color range to full
2026-08-05 23:56:18 -05:00
Cameron Gutman
b2f0828df8
Use requested color range as a fallback in isFrameFullRange()
2026-08-05 23:54:19 -05:00
Cameron Gutman
3f26217df7
Select color range based on plane COLOR_RANGE property values
2026-08-05 23:49:09 -05:00
Cameron Gutman
4570fba87d
Add full range handling to SdlRenderer
2026-08-05 23:44:11 -05:00
Cameron Gutman
a903c5cef2
Explicitly request limited range for renderers that require it
2026-08-05 23:25:30 -05:00
Cameron Gutman
2bea406f67
Guess frame color metadata if left unspecified
...
Some decoders don't populate metadata, but the renderer may need it
to determine which shader or EGL import parameters to use.
2026-08-05 22:56:34 -05:00
Cameron Gutman
fcba7df82c
Update Windows and macOS build requirements
2026-08-05 00:56:04 -05:00
Cameron Gutman
5ac254216c
Update LSMinimumSystemVersion to match Qt 6.10+ and our prebuilts
2026-08-05 00:54:52 -05:00
Cameron Gutman
131cb27095
Add NSBonjourServices entry to Info.plist
2026-08-05 00:24:45 -05:00
Cameron Gutman
b5d7f3b9f8
Update Windows, macOS, and AppImage dependencies
...
- SDL -> 3.4.14
- FFmpeg -> 9.0
- libplacebo -> 4d82c689
2026-08-04 23:12:04 -05:00
Cameron Gutman
546cb72e32
Update Windows, macOS, and AppImage dependencies
...
- SDL -> c9ad2963
- dav1d -> 1.5.4
- Detours rebuilt with EHCont
2026-07-27 00:48:37 -05:00
Cameron Gutman
7f7f2c26d0
Fix capturing mouse motion outside the window on sdl2-compat
2026-07-27 00:10:06 -05:00
Cameron Gutman
7794a42843
Fix C4146 warning on MSVC
2026-07-26 20:12:58 -05:00
Cameron Gutman
3aa111e825
Fix unused parameter warning on non-macOS platforms
2026-07-26 20:03:04 -05:00
Cameron Gutman
f8158e02fb
Update MSVC redistributable in the installer
2026-07-26 19:46:27 -05:00
Cameron Gutman
fba7c4119a
Validate that the SPS didn't change in debug builds
2026-07-26 19:39:34 -05:00
Cameron Gutman
3e24a7a1a5
Fix several bugs in h264bitstream
2026-07-26 19:23:34 -05:00
Cameron Gutman
acea86de24
Revert "Make h264bitstream dependency optional"
...
This reverts commit 2328713f4e .
2026-07-26 19:23:34 -05:00
Cameron Gutman
b7adc70ea4
Import minimal set of code from h264bitstream needed for SPS fixups
2026-07-26 19:23:34 -05:00
Cameron Gutman
2fc0d84aa0
Write the original H.264 SPS if it required no fixups
2026-07-26 18:33:28 -05:00
Cameron Gutman
490229be3f
Fix GEM handle leak in DRM renderer
...
Huge thanks to @oliverlj for identifying this longstanding bug.
This is likely responsible for many different issues with the DRM renderer randomly failing.
2026-07-26 15:22:15 -05:00
Cameron Gutman
b9650b6a72
Switch to our fork of h264bitstream
2026-07-26 13:33:04 -05:00
Cameron Gutman
2328713f4e
Make h264bitstream dependency optional
2026-07-19 14:11:27 -05:00
Cameron Gutman
2a1749e231
Add workaround for gamescope#2261
...
Fixes #1925
2026-07-18 18:19:35 -05:00
Cameron Gutman
4453e4aef1
Add a renderer selection option for macOS
...
There are numerous conflicting reports about which Mac renderer works best (even on the same systems!). I give up, just let the users figure it out.
2026-07-18 16:38:40 -05:00
Cameron Gutman
c0c4d60565
Update AppImage libva to 2.24.1
2026-07-08 23:58:15 -05:00
Cameron Gutman
8b18d58aa0
Add workaround for interoperability issue with out-of-tree FFmpeg zero-copy v4l2m2m patches and libplacebo
...
Fixes #1786
2026-07-08 23:40:08 -05:00
Cameron Gutman
0c8970364c
Switch to upstream nanors with native SIMD and GFNI runtime dispatching
2026-07-05 00:14:34 -04:00
Cameron Gutman
1516464f82
Modernize ASAN flags for MSVC
2026-07-04 15:37:21 -04:00
Cameron Gutman
fd34a1fd28
Disable the text outline when line wrapping is required
2026-07-01 23:43:40 -05:00
Cameron Gutman
9067db8915
Switch to UTF-8 for overlay text rendering
2026-07-01 23:24:31 -05:00
Cameron Gutman
c9b03f80f8
Partially revert "Use GL_NEAREST when possible without degrading quality"
...
The changes to GL_NEAREST for overlay textures and disabling alpha blending in SDL renderer are left intact.
This reverts commit 0f49dca4c0 .
2026-07-01 21:56:54 -05:00
Cameron Gutman
a27589fe35
Update SDL to 3.4.12
2026-07-01 21:47:49 -05:00
Cameron Gutman
561d824814
Move HDR toggle into the Basic Settings panel
2026-07-01 21:41:05 -05:00
Cameron Gutman
b2d77f48f8
Rerun lrelease
2026-06-28 17:00:34 -05:00
Cameron Gutman
872731ceeb
Fix a few more incorrect translation strings
2026-06-28 16:59:41 -05:00
Cameron Gutman
6cad296138
Remove all vanished translations
2026-06-28 16:52:52 -05:00
Cameron Gutman
444c6ccf06
Remove the experimental tag from HDR, AV1, and YUV 4:4:4
2026-06-28 16:51:58 -05:00
Cameron Gutman
d35532b03e
Rerun lupdate
2026-06-28 16:51:34 -05:00
Cameron Gutman
1e0110b0f4
Fix broken translation format strings
2026-06-28 16:41:05 -05:00
Cameron Gutman
e5353d9758
Remove some translations that contained typos or incorrect grammar
2026-06-28 16:37:32 -05:00
Cameron Gutman
f7c660129b
Merge remote-tracking branch 'origin/weblate'
2026-06-28 16:26:37 -05:00
Cameron Gutman
cdacb3d28d
Loosen applist XML validation to accept empty app names
...
This matches the behavior of the Android and iOS clients.
Fixes #1921
2026-06-28 12:18:42 -05:00
Cameron Gutman
5034a324b4
Fix manual address being clobbered when using the CLI
...
Fixes #1920
2026-06-28 11:48:09 -05:00
Cameron Gutman
e223bf9a1b
Use libplacebo renderer on macOS
2026-06-25 22:30:03 -05:00
Cameron Gutman
6e231778a2
Fix blocking during rendering rather than in waitToRender() on MoltenVK
...
MoltenVK does a lazy fetch of the drawable only when it's being modified, so waitToRender() is completely ineffective as is. Rendering a small empty overlay in waitToRender() forces the next drawable wait to happen in waitToRender(), before we pick the current frame to render. This removes one display refresh period of latency when using V-sync.
2026-06-25 20:01:29 -05:00
Cameron Gutman
d997a0d0c8
Dynamically adjust libplacebo swapchain depth on macOS
...
Direct-to-display mode on some Macs (M4 Mac Mini) can retain our drawables, which cuts the frame rate in half if we're in double-buffered mode.
We don't want to use triple-buffered mode all the time because it increases latency when used if not required, so detect delayed presentation and enable it on the fly if needed.
2026-06-23 21:09:20 -05:00
Cameron Gutman
06bd8a730b
Force sRGB Vulkan swapchain on macOS to fix washed out colors
2026-06-23 19:19:56 -05:00
Cameron Gutman
faa39875b6
Remove outdated comment
2026-06-21 15:19:44 -05:00
Cameron Gutman
170801ba9f
Send the real client UID for non-GFE hosts
...
This allows non-GFE hosts to perform their own custom session
management while allowing all clients to share the same session
with GFE.
2026-06-21 15:18:12 -05:00
Cameron Gutman
1be234e96a
Load the UID during initialization to avoid races loading it later
2026-06-21 15:14:58 -05:00
Cameron Gutman
50364fd522
Don't set VK lock/unlock queue functions past libavutil 62
...
They are scheduled for removal at that ABI bump.
2026-06-21 14:01:47 -05:00
Cameron Gutman
bea5355c66
Fix unused parameter warning on Windows and Linux
2026-06-21 14:01:47 -05:00
Cameron Gutman
ca7d61f528
Prefer libplacebo on macOS when available
2026-06-14 19:27:01 -05:00
Cameron Gutman
2b5388e941
Fix non-EGL frontend renderers when compiled without EGL support
2026-06-14 19:16:16 -05:00
Cameron Gutman
a9ad048252
Fix HDR rendering in libplacebo on macOS
2026-06-14 18:58:22 -05:00
Cameron Gutman
51cc5a8537
Remove libplacebo workaround for FFmpeg compiled without Vulkan support
2026-06-14 18:57:46 -05:00
Cameron Gutman
8c6b422040
Implement libplacebo on MoltenVK
2026-06-14 15:45:38 -05:00
Cameron Gutman
ec75f0d8de
Refactor libplacebo renderer to handle non-Vulkan hwcontexts
2026-06-14 12:20:54 -05:00
Cameron Gutman
f2a512d3aa
Update libplacebo, sdl2-compat, OpenSSL, and SDL3
2026-06-12 00:13:18 -05:00
Cameron Gutman
02004bac3f
Allow toggling through combo box options using left/right on gamepads/keyboards
2026-06-07 15:14:29 -05:00
Cameron Gutman
534ce02756
Track keyboard grab state internally rather than using SDL
...
Versions of sdl2-compat prior to 2.32.64 (and native SDL3) won't
set the grab flag if grabbing the keyboard fails, even though the
compositor still may be exclusively passing system keys to us via
some external configuration by the user. This causes the super key
to not be sent to the host, because we think the client OS will
consume it and don't want to duplicate the input.
Fixes #1900
2026-06-06 16:11:37 -05:00
Cameron Gutman
19d77704ba
Update SDL and libplacebo
2026-06-02 02:03:10 -05:00
Cameron Gutman
a2ef7a4a0c
Enable LTO for FFmpeg
2026-05-27 23:21:56 -05:00
Cameron Gutman
dc6c0d3315
Update prebuilts
2026-05-27 02:24:43 -05:00
Cameron Gutman
cd5853c6ca
Update Windows and macOS prebuilt dependencies
...
- Enable LTO/LTCG
- Update SDL3
2026-05-26 22:55:32 -05:00
Cameron Gutman
e6da6fa11f
Enable LTO for AppImage builds
2026-05-26 21:55:58 -05:00
Cameron Gutman
81f20cdb66
Move LTCG/LTO enablement into the build scripts
2026-05-26 21:46:58 -05:00
Cameron Gutman
adfc972371
Enable LTCG/LTO for release builds
2026-05-26 01:23:09 -05:00
Cameron Gutman
53a14eda1c
Update MSVC redistributable in installer bundle
2026-05-26 00:49:48 -05:00
Cameron Gutman
2eb6715be5
Disable WM-dependent hotkeys on LinuxFB too
2026-05-24 15:23:19 -05:00
Cameron Gutman
29294553bb
Add Ctrl+Alt+Shift+K combo to toggle system key grab
...
Fixes #1637
2026-05-24 15:13:23 -05:00
Cameron Gutman
97240cd5f2
Add workaround for libplacebo crash with Raspbian FFmpeg
...
Fixes #1409
2026-05-24 14:43:02 -05:00
Cameron Gutman
8cc001768c
Use UTF-16 literals for XML processing on Qt 6
2026-05-23 21:56:40 -05:00
Cameron Gutman
d94b92e247
Use SDL_utf8strlcpy() to avoid MSVC secure CRT warnings
2026-05-23 19:50:32 -05:00
Cameron Gutman
d9eca42311
Remove redundant QString construction
2026-05-23 19:28:28 -05:00
Cameron Gutman
63c48be6d4
Improve handling of malformed XML responses
2026-05-23 19:16:14 -05:00
Cameron Gutman
459dcd7b2c
Fix incorrect error print
2026-05-16 16:10:47 -05:00
Cameron Gutman
b33a252739
Fix incorrect apply() return value for legacy DRM clients
2026-05-16 16:09:57 -05:00
Cameron Gutman
1eb76bbdb0
Deep copy the BIO's backing memory for the QSslKey
...
This doesn't appear to be a problem in practice, but the docs don't say
that Qt couldn't retain this QByteArray for later, which would result in
a UAF with the current code.
2026-05-16 16:08:02 -05:00
Cameron Gutman
bba2faa602
Fix broken horizontal scroll inversion
2026-05-16 15:45:13 -05:00
Cameron Gutman
87c3179f77
Fix incorrect failure check
2026-05-15 23:23:36 -05:00
Cameron Gutman
073f892bb1
Update Windows and macOS prebuilt dependencies
...
- Reverted to SDL 3.4.x to fix GCMouse issues
Fixes #1882
2026-05-15 19:16:33 -05:00
Cameron Gutman
815db2b0d7
Enable Segment Heap for improved performance and memory usage
2026-05-15 18:37:52 -05:00
Cameron Gutman
a8a66bfc3d
Enable Per Monitor v2 DPI awareness
...
Qt 6 has supported this forever, but our manifest forced PMv1.
2026-05-15 18:13:46 -05:00
Cameron Gutman
8fe279c91b
Add support for controllers with dual touchpads
2026-05-14 22:14:50 -05:00
Cameron Gutman
dedb0c0327
Disable text input before creating windows
2026-05-14 21:45:22 -05:00
Cameron Gutman
9cbba106ad
Use the Metal renderer by default on all Macs
...
Whatever dGPU/eGPU rendering issues existed at the time I wrote that check seem to no longer happen on my RX 480 eGPU test setup running Ventura (our oldest supported OS).
It seems safe enough to enable now, especially since 7d6ce0b4c should catch broken systems and transparently fall back to AVSampleBufferDisplayLayer.
Fixes #1885
2026-05-14 00:45:57 -05:00
Cameron Gutman
7d6ce0b4cc
Implement testRenderFrame() for the VTMetal renderer
...
This can be used to (hopefully) detect cases where importing the decoded frames onto the target GPU fails.
See #1885
2026-05-14 00:34:32 -05:00