Cameron Gutman
092eb1b117
Enable SDL3 fast parameter checks
2026-02-04 22:42:58 -06:00
Cameron Gutman
d4d4ab5b06
Only use the libssl.so linking hack for AppImages
2026-01-27 22:22:29 -06:00
Cameron Gutman
402ac59390
Fix forcing X11 SDL video driver on XWayland when not built with Wayland
2026-01-27 22:22:29 -06:00
Cameron Gutman
37b9b6ed9e
Don't run configuration checks for CLI launches
2026-01-08 19:10:50 -06:00
Cameron Gutman
41ad3c0938
Add environment variable override helper function
...
This allows FORCE_QT_GLES and SEPARATE_TEST_DECODER to override both true and false.
2025-12-27 15:33:39 -06:00
Cameron Gutman
b80d2a00c0
Fix SIGTERM unexpectedly quitting the host app
2025-12-23 01:09:21 -06:00
Cameron Gutman
7edbede95d
Force Qt to use GLES if desktop GL is not available
...
Some platforms like the VisionFive 2 don't have working desktop GL,
so they must use GLES to be able to render at all. Qt doesn't try
to fall back if it fails to find a compatible EGL config, so we must
do so ourselves.
2025-12-21 21:13:22 -06:00
Cameron Gutman
bdfadb1cdc
Let the streaming session handle exiting on SIGTERM
2025-12-14 19:11:13 -06:00
Cameron Gutman
63a381a882
Fix macOS build
2025-12-14 19:07:50 -06:00
Cameron Gutman
4a591069ac
Add custom signal handlers to arbitrate between Qt and SDL
...
Fixes #1496
2025-12-14 18:57:26 -06:00
Cameron Gutman
3425fec33d
Use EGL+GLES workaround for Nvidia X11
...
We can avoid disabling EGL entirely by forcing Qt to use GLES,
which is not impacted by the black window issue. This lets us
simplify back to EGL everywhere.
2025-12-14 16:21:32 -06:00
Cameron Gutman
54163e30d0
Disable EGL on Nvidia XWayland environments too
...
It renders a black window, just like native X11.
2025-12-11 20:13:14 -06:00
Cameron Gutman
9c6d2bab19
Use EGL_VENDOR instead of NV-CONTROL for Nvidia detection
...
The latter will still match on a hybrid system when the iGPU's EGL
implementation is in use. This scenario works properly with EGL
rendering in Qt and SDL, so we want to allow that.
2025-12-06 11:20:03 -06:00
Cameron Gutman
1c24aada0a
Never use X11 EGL on Nvidia proprietary drivers
...
Fixes #1751
2025-12-05 23:10:31 -06:00
Cameron Gutman
5feb331c46
Improve QT_QPA_EGLFS_KMS_CONFIG temporary file handling
...
- Close it before handing it to the QPA plugin to read
- Put the temporary file in TMPDIR instead of the current directory
2025-12-01 00:36:59 -06:00
Cameron Gutman
80b7a69cd2
Revert "Use the default Qt render loop"
...
This seems to cause 10+ second hangs at the StreamSegue spinner
when using the Qt5-based Snap on Ubuntu 24.04's Wayland session.
It's unclear if this is still an issue on Qt 6, but let's be
conservative and just revert it for now.
This reverts commit f57257cbfd .
2025-11-30 22:00:33 -06:00
Cameron Gutman
f57257cbfd
Use the default Qt render loop
...
Since we stopped pumping the event loop manually and switched to EGL
on X11, the default threaded render loop seems to work fine now.
2025-11-22 20:12:46 -06:00
Cameron Gutman
4d6196c3d3
Use EGL for all X11 GL context creation in Qt and SDL
...
Using a mix of GLX and EGL can cause interoperability issues when
our EGLRenderer tries to bind an EGL context while Qt already has
a GLX context bound on the same thread. This was the source of a
number of confusing EGLRenderer failures over the years.
2025-11-22 18:51:32 -06:00
Cameron Gutman
379d5ca376
Fix some compiler warnings
2025-11-15 13:34:11 -06:00
Cameron Gutman
4d303cebee
Consolidate all writes to the log stream in LoggerTask
...
This avoids some thread-safety issues when switching log modes or reaching the log size limit.
2025-10-25 00:33:02 -05:00
Cameron Gutman
bd6235efba
Use async logging while streaming only
...
The benefits of reliable output outweigh performance concerns during non-streaming activities.
2025-10-25 00:18:34 -05:00
Cameron Gutman
b1232e0ed4
Fix memory corruption due to concurrent QString operations
2025-10-24 23:38:07 -05:00
Cameron Gutman
06b5c4631f
Fix warning for unnecessary .desktop suffix passed to setDesktopFileName()
2025-10-11 00:36:54 -05:00
Cameron Gutman
45989fdd6e
Fix incorrect toolbar color on Qt 6.9+
...
Fixes #1685
2025-10-09 20:47:58 -05:00
Cameron Gutman
1bf86f52d3
Deregister logging callbacks before destroying the logger
2025-07-04 15:56:11 -05:00
Cameron Gutman
c93f7e7385
Output CLI error/info messages to the console on Windows
...
Fixes #1554
2025-04-04 22:23:17 -05:00
Cameron Gutman
dd2a99a96b
Prepare for SDL3 support
2025-01-25 16:20:20 -06:00
Cameron Gutman
103f988dbf
Move logging into a separate thread
2024-10-20 21:52:15 -05:00
Cameron Gutman
b1c77ff80e
Disable SDL double buffering
...
It was broken in SDL until recently and now that it works again, it causes stuttering.
2024-09-12 21:34:22 -05:00
Cameron Gutman
ffdf683597
Output log messages to an attached debugger
2024-06-24 19:24:06 -05:00
Cameron Gutman
5a47ddca33
Use EGL on X11 for non-x86 platforms
...
In theory we could do this everywhere, but I'd rather not risk major behavior changes on x86 right before a release.
2024-06-02 14:01:54 -05:00
Cameron Gutman
b58f021fc8
Only set QT_SSL_USE_TEMPORARY_KEYCHAIN on macOS
...
It's useless on other platforms.
2024-06-02 13:58:42 -05:00
Cameron Gutman
12b93337d1
Fix SDL_VIDEODRIVER override when the Qt platform plugin was manually set
2024-06-01 22:43:52 -05:00
Cameron Gutman
a0a8b70bc1
Strip session keys and IVs from the logs
...
Logging these isn't a major issue because they change each session and
the privilege level to access the logs is the same as those to access the
private key of Moonlight client itself, but there's also no good reason to
log them either.
2024-05-27 22:02:02 -04:00
Cameron Gutman
e07f069222
Always use the custom logger
...
It was already used everywhere except macOS Debug builds.
2024-05-27 21:40:18 -04:00
Cameron Gutman
9117f6565e
Don't clobber existing std handles when attaching to the parent console
...
Fixes #1270
2024-05-11 23:38:32 -05:00
Cameron Gutman
aa33432c81
Detect whether to log to file based upon whether stderr was redirected
2024-05-11 23:24:36 -05:00
Cameron Gutman
ebfe035a18
Set SDL_VIDEO_WAYLAND_EMULATE_MOUSE_WARP=0 to resolve pointer lock issue on Wayland
...
SDL will try to lock the mouse cursor on Wayland if it's not visible in order to
support applications that assume they can warp the cursor (which isn't possible on
Wayland). We don't want this behavior because it interferes with seamless mouse
mode when toggling between windowed and fullscreen modes by unexpectedly locking
the mouse cursor.
2024-04-27 16:49:51 -05:00
Hans Gaiser
02d867fe09
Log to stderr instead of stdout.
2024-04-17 23:55:38 -05:00
Cameron Gutman
d1ccd19fcc
Make StreamingPreferences a proper singleton
...
This removes the need for several hacks in SettingsView to force updates and improves performance by not reloading preferences all over the place.
2024-04-14 13:01:30 -05:00
Cameron Gutman
011feab6ce
Add workaround for broken Qt EGLFS card selection logic
2024-04-06 14:35:34 -05:00
Cameron Gutman
5bd0dea85d
Enable Metal validation in debug builds
2024-02-08 18:07:43 -06:00
Cameron Gutman
80062d262e
Remove manual qmlcachegen invocation for internal Qt QML files
...
It's not safe to always assume we can always precompile everything.
Instead set QML_CACHE_DIR to ensure the files go to our desired location.
2023-09-10 15:03:53 -05:00
Cameron Gutman
2eee9c019f
Force the Material theme since our UI relies on it
2023-09-05 19:25:09 -05:00
Cameron Gutman
8cf6a8bc98
Clean up old log files if more than 10 exist
2023-08-29 18:11:27 -05:00
Cameron Gutman
5639bcc0f5
Default SDL render driver to GLES2 when using EGLFS
...
Fixes #868
2023-03-26 13:43:09 -05:00
happyharryh
8cd0536fb1
Fix the translation of standard buttons in Dialogs
2022-11-25 14:05:41 -06:00
Cameron Gutman
09ce3c9ce4
Use CRLF line endings for the log file on Windows
2022-11-02 19:19:00 -05:00
Cameron Gutman
8fcc98102b
Limit log by size rather than line count
2022-11-02 19:18:22 -05:00
Cameron Gutman
3e330b7929
Attach to the parent console to print list output on Win32
2022-08-27 14:54:45 -05:00