From a2486eaf9427051a8413eb5415f5274229b04942 Mon Sep 17 00:00:00 2001 From: Brad Smith Date: Thu, 1 Oct 2026 20:26:47 -0400 Subject: [PATCH 01/10] Check elf_aux_info() return value in hasFastAes() Check the result of elf_aux_info() on FreeBSD and OpenBSD ARM and fall back to no AES support if the call fails, rather than relying on the output variable being left untouched. --- app/streaming/streamutils.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/app/streaming/streamutils.cpp b/app/streaming/streamutils.cpp index 9bd32f5088..e768e3488d 100644 --- a/app/streaming/streamutils.cpp +++ b/app/streaming/streamutils.cpp @@ -222,12 +222,14 @@ bool StreamUtils::hasFastAes() // Everything that runs Catalina and later has AES-NI or ARMv8 crypto instructions return true; #elif (defined(Q_OS_FREEBSD) || defined(Q_OS_OPENBSD)) && defined(Q_PROCESSOR_ARM) && QT_POINTER_SIZE == 4 - unsigned long hwcap2 = 0; - elf_aux_info(AT_HWCAP2, &hwcap2, sizeof(hwcap2)); + unsigned long hwcap2; + if (elf_aux_info(AT_HWCAP2, &hwcap2, sizeof(hwcap2)) != 0) + hwcap2 = 0; return (hwcap2 & HWCAP2_AES); #elif (defined(Q_OS_FREEBSD) || defined(Q_OS_OPENBSD)) && defined(Q_PROCESSOR_ARM) && QT_POINTER_SIZE == 8 - unsigned long hwcap = 0; - elf_aux_info(AT_HWCAP, &hwcap, sizeof(hwcap)); + unsigned long hwcap; + if (elf_aux_info(AT_HWCAP, &hwcap, sizeof(hwcap)) != 0) + hwcap = 0; return (hwcap & HWCAP_AES); #elif defined(Q_OS_LINUX) && defined(Q_PROCESSOR_ARM) && QT_POINTER_SIZE == 4 return getauxval(AT_HWCAP2) & HWCAP2_AES; From 6e699e4dc9514a0bb23e79ec5bf6c1cd53cf6b83 Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Sat, 3 Oct 2026 00:39:45 -0500 Subject: [PATCH 02/10] Update libplacebo, sdl2-compat, and SDL3 --- .github/workflows/build-appimage.yml | 6 +++--- setup-deps.ps1 | 2 +- setup-deps.py | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build-appimage.yml b/.github/workflows/build-appimage.yml index 2ca482aff8..4285c771c3 100644 --- a/.github/workflows/build-appimage.yml +++ b/.github/workflows/build-appimage.yml @@ -42,7 +42,7 @@ jobs: uses: actions/checkout@v5 with: repository: libsdl-org/SDL - ref: ddba673cddfa79ce798eca5ba402e0f1a2a2a243 + ref: release-3.4.18 path: deps/SDL - name: Build SDL3 @@ -56,7 +56,7 @@ jobs: uses: actions/checkout@v5 with: repository: libsdl-org/sdl2-compat - ref: release-2.32.70 + ref: release-2.32.74 path: deps/sdl2-compat - name: Build sdl2-compat @@ -101,7 +101,7 @@ jobs: uses: actions/checkout@v5 with: repository: haasn/libplacebo - ref: e2972fdd09adacd383656738d7d280f0cd84a761 + ref: 92b5ac6db79f4d680eb656692f7bf51e9606f42a path: deps/libplacebo submodules: 'recursive' diff --git a/setup-deps.ps1 b/setup-deps.ps1 index d45c3d92c4..bdb2bdbca7 100644 --- a/setup-deps.ps1 +++ b/setup-deps.ps1 @@ -4,7 +4,7 @@ $Organization = "moonlight-stream" $PrebuiltRepo = "moonlight-qt-deps" $TargetDir = Join-Path $PSScriptRoot "libs\windows" $Assets = @("windows-x64.zip", "windows-ARM64.zip") -$Tag = "v18.1" +$Tag = "v19" if (Test-Path $TargetDir) { Write-Host "Cleaning target directory..." -ForegroundColor Cyan diff --git a/setup-deps.py b/setup-deps.py index 31a0d09faf..b713ee2bcd 100644 --- a/setup-deps.py +++ b/setup-deps.py @@ -7,7 +7,7 @@ ORGANIZATION = "moonlight-stream" PREBUILT_REPO = "moonlight-qt-deps" -TAG = "v18.1" +TAG = "v19" def get_platform_config(): system = platform.system() From 32c6ab6eee3069284d12ea6db3ab5b02e2d711b2 Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Sat, 3 Oct 2026 12:45:15 -0500 Subject: [PATCH 03/10] Update Windows CI to Qt 6.12 macOS remains on Qt 6.11.2 for v6.x to retain Ventura support --- .github/workflows/build-win-mac.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-win-mac.yml b/.github/workflows/build-win-mac.yml index 86c234dca5..d8b1a78e6e 100644 --- a/.github/workflows/build-win-mac.yml +++ b/.github/workflows/build-win-mac.yml @@ -20,7 +20,7 @@ jobs: include: # Windows - os: windows-2025 - qt_version: 6.11.2 + qt_version: 6.12.0 # macOS - os: macos-26 qt_version: 6.11.2 From 7927da33d68b93faeef5db54c898d23d2eaba935 Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Sat, 3 Oct 2026 13:11:12 -0500 Subject: [PATCH 04/10] Fix matching with colon-separated XDG_CURRENT_DESKTOP values --- app/main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/main.cpp b/app/main.cpp index c0be000c72..2b701d71f6 100644 --- a/app/main.cpp +++ b/app/main.cpp @@ -749,7 +749,7 @@ int main(int argc, char *argv[]) // NB: We do not force SDL_VIDEO_WAYLAND_MODE_SCALING to "stretch" on KDE, // because SDL 3.6 has a workaround for KDE and switches the default to // "aspect" for all desktops. - if (qgetenv("XDG_CURRENT_DESKTOP") != "KDE") { + if (!qgetenv("XDG_CURRENT_DESKTOP").contains("KDE")) { SDL_SetHint("SDL_VIDEO_WAYLAND_MODE_SCALING", "aspect"); } From 018c851e76d495ffc6a058ef835ff4424bd6a530 Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Sat, 3 Oct 2026 13:37:58 -0500 Subject: [PATCH 05/10] Change the default streaming resolution to 1080p --- app/settings/streamingpreferences.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/settings/streamingpreferences.cpp b/app/settings/streamingpreferences.cpp index 0c2a6c985a..6d143af629 100644 --- a/app/settings/streamingpreferences.cpp +++ b/app/settings/streamingpreferences.cpp @@ -122,8 +122,8 @@ void StreamingPreferences::reload() } #endif - width = settings.value(SER_WIDTH, 1280).toInt(); - height = settings.value(SER_HEIGHT, 720).toInt(); + width = settings.value(SER_WIDTH, 1920).toInt(); + height = settings.value(SER_HEIGHT, 1080).toInt(); fps = settings.value(SER_FPS, 60).toInt(); enableYUV444 = settings.value(SER_YUV444, false).toBool(); bitrateKbps = settings.value(SER_BITRATE, getDefaultBitrate(width, height, fps, enableYUV444)).toInt(); From e8fefc8cd25d55ef9bc8051996ae7ae510138c75 Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Sat, 3 Oct 2026 16:32:35 -0500 Subject: [PATCH 06/10] Prepare for v6.2.0 --- ...com.moonlight_stream.Moonlight.appdata.xml | 62 +++++++++++++++++++ app/version.txt | 2 +- 2 files changed, 63 insertions(+), 1 deletion(-) diff --git a/app/deploy/linux/com.moonlight_stream.Moonlight.appdata.xml b/app/deploy/linux/com.moonlight_stream.Moonlight.appdata.xml index b875c8266d..538439dc36 100644 --- a/app/deploy/linux/com.moonlight_stream.Moonlight.appdata.xml +++ b/app/deploy/linux/com.moonlight_stream.Moonlight.appdata.xml @@ -51,6 +51,68 @@ + + +

New features:

+
    +
  • Ctrl+Alt+Shift+K has been added to toggle system keyboard grab
  • +
  • Added support for DualSense adaptive triggers (requires a compatible host)
  • +
  • Gamepads with a second trackpad can now be passed to the host (requires host support)
  • +
  • Client identifiers are now provided to the host to allow client-specific session management
  • +
  • Added an option to disable pre-launch warnings
  • +
+

Behavior Changes:

+
    +
  • Most video renderers now use full range color instead of limited range
  • +
  • The cursor is now also locked to the video area in single display borderless windowed scenarios. This was previously only done in true full-screen mode.
  • +
  • The cursor is no longer captured by default in windowed mode. Clicking on the streaming window or pressing Ctrl+Alt+Shift+Z will capture the cursor.
  • +
  • GPUs on non-x86 Linux platforms are now assumed to be slow by default, which enables a number of optimizations for improved performance. GL_IS_SLOW=0/VULKAN_IS_SLOW=0 can be set at runtime to override this.
  • +
  • The default streaming resolution for new installs is now 1080p instead of 720p.
  • +
  • Video bitrate no longer resets when adjusting resolution or frame rate if it's already been manually adjusted
  • +
+

Security:

+
    +
  • CVE-2026-33546, CVE-2026-33547, and CVE-2026-41210 have been fixed
  • +
  • These vulnerabilities could allow a malicious host to crash Moonlight when connecting
  • +
+

Bugfixes:

+
    +
  • Reduced background CPU usage
  • +
  • Improved startup, settings page, and stream load times
  • +
  • Optimized the EGL/GLES renderer to improve performance on low end GPUs and embedded devices
  • +
  • Fixed EGL/GLES renderer failures under X11 when GLX was used for the UI
  • +
  • Improved readability of the statistics overlay by adding an outline
  • +
  • Improved timing accuracy in the statistics overlay
  • +
  • Improved performance when multiple gamepads are sending input simultaneously
  • +
  • Improved performance when recovering from dropped network packets
  • +
  • Fixed black or green padding being rendered on the bottom or right side of the video stream when streaming from certain hosts
  • +
  • Fixed horizontal scroll direction not being correctly inverted when requested
  • +
  • Fixed Moonlight not exiting after an abnormal stream termination when launched via the CLI
  • +
  • Fixed failure to start on Linux systems where desktop OpenGL is not available
  • +
  • Fixed broken overlay rendering on PowerVR systems using the proprietary driver
  • +
  • Fixed automatic selection of AV1 on systems where HEVC is not available
  • +
  • Fixed instability when using VAAPI decoding under X11
  • +
  • Fixed small deviations in chroma co-siting and color conversion
  • +
  • Fixed suboptimal format selection on some V4L2 decoders
  • +
  • Fixed handling of some non-US keyboard layouts
  • +
  • Fixed stale app list being displayed when using CLI commands
  • +
  • Fixed handling of IPv6 literals that are not URL-escaped
  • +
  • Fixed AV1 Vulkan Video decoding on newer versions of FFmpeg
  • +
  • Fixed Ctrl+C/SIGTERM when running from the console
  • +
  • Fixed several GUI interoperability issues with Qt 6.9 and later
  • +
  • Fixed the IME or software keyboard being unexpectedly displayed in various situations
  • +
  • Fixed launching in a new VT while a Wayland compositor is running
  • +
  • Fixed moving focus from the app grid into the toolbar via the gamepad or keyboard
  • +
  • Fixed a possible crash in the Vulkan renderer when disabling an overlay
  • +
  • Fixed keyboard grab not working under sdl2-compat on Wayland compositors that lack support for keyboard-shortcuts-inhibit-unstable-v1
  • +
  • Fixed CLI stream launch causing the saved manual address to be overwritten
  • +
  • Fixed distinguishing between Enter and Numpad Enter keys (requires updated host software)
  • +
  • Fixed mDNS discovering unexpected devices after running for a period of time
  • +
  • Fixed libdecor-gtk window decorations not being displayed on the streaming window
  • +
  • Updated community-contributed translations from Weblate
  • +
+
+

New features:

diff --git a/app/version.txt b/app/version.txt index 358e78e607..4ac4fded49 100644 --- a/app/version.txt +++ b/app/version.txt @@ -1 +1 @@ -6.1.0 \ No newline at end of file +6.2.0 \ No newline at end of file From afcd08ccbcbb82ad25298008f3424aa924aa74d5 Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Sat, 3 Oct 2026 18:30:08 -0500 Subject: [PATCH 07/10] Require SIGNTOOL_PARAMS to be set externally --- scripts/build-arch.bat | 7 +++++-- scripts/generate-bundle.bat | 7 +++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/scripts/build-arch.bat b/scripts/build-arch.bat index aff4a249dd..3e1667e5a8 100644 --- a/scripts/build-arch.bat +++ b/scripts/build-arch.bat @@ -26,6 +26,11 @@ if /I "%BUILD_CONFIG%"=="debug" ( exit /b 1 ) + if not defined SIGNTOOL_PARAMS ( + echo "A signtool parameter string must be specified in SIGNTOOL_PARAMS for signed release builds" + exit /b 1 + ) + echo Updating dependencies powershell %cd%\setup-deps.ps1 if !ERRORLEVEL! NEQ 0 ( @@ -104,8 +109,6 @@ if not x%QT_PATH:_arm64=%==x%QT_PATH% ( echo Detected target architecture: %ARCH% -set SIGNTOOL_PARAMS=sign /tr http://timestamp.digicert.com /td sha256 /fd sha256 /sha1 8b9d0d682ad9459e54f05a79694bc10f9876e297 /v - set BUILD_ROOT=%cd%\build set SOURCE_ROOT=%cd% set BUILD_FOLDER=%BUILD_ROOT%\build-%ARCH%-%BUILD_CONFIG% diff --git a/scripts/generate-bundle.bat b/scripts/generate-bundle.bat index 569757271a..16bb575d8e 100644 --- a/scripts/generate-bundle.bat +++ b/scripts/generate-bundle.bat @@ -25,6 +25,11 @@ if /I "%BUILD_CONFIG%"=="debug" ( echo Signed release builds must not have unstaged changes! exit /b 1 ) + + if not defined SIGNTOOL_PARAMS ( + echo "A signtool parameter string must be specified in SIGNTOOL_PARAMS for signed release builds" + exit /b 1 + ) ) else ( echo Invalid build configuration - expected 'debug' or 'release' exit /b 1 @@ -32,8 +37,6 @@ if /I "%BUILD_CONFIG%"=="debug" ( ) ) -set SIGNTOOL_PARAMS=sign /tr http://timestamp.digicert.com /td sha256 /fd sha256 /sha1 8b9d0d682ad9459e54f05a79694bc10f9876e297 /v - set BUILD_ROOT=%cd%\build set SOURCE_ROOT=%cd% set BUILD_FOLDER=%BUILD_ROOT%\build-%BUILD_CONFIG% From b7e0deb16861251e105827cbfc852ae95d493708 Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Sat, 3 Oct 2026 18:37:39 -0500 Subject: [PATCH 08/10] Don't require SIGNTOOL_PARAMS to contain the 'sign' command --- scripts/build-arch.bat | 4 ++-- scripts/generate-bundle.bat | 2 +- wix/MoonlightSetup/MoonlightSetup.wixproj | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/scripts/build-arch.bat b/scripts/build-arch.bat index 3e1667e5a8..f0c7dd311c 100644 --- a/scripts/build-arch.bat +++ b/scripts/build-arch.bat @@ -27,7 +27,7 @@ if /I "%BUILD_CONFIG%"=="debug" ( ) if not defined SIGNTOOL_PARAMS ( - echo "A signtool parameter string must be specified in SIGNTOOL_PARAMS for signed release builds" + echo A signtool parameter string must be specified in SIGNTOOL_PARAMS for signed release builds exit /b 1 ) @@ -280,7 +280,7 @@ if "%SIGN%"=="1" ( for /r "%DEPLOY_FOLDER%" %%f in (*.dll *.exe) do ( set FILES_TO_SIGN=!FILES_TO_SIGN! %%f ) - signtool %SIGNTOOL_PARAMS% !FILES_TO_SIGN! + signtool sign %SIGNTOOL_PARAMS% !FILES_TO_SIGN! if !ERRORLEVEL! NEQ 0 goto Error ) diff --git a/scripts/generate-bundle.bat b/scripts/generate-bundle.bat index 16bb575d8e..3e685e33d1 100644 --- a/scripts/generate-bundle.bat +++ b/scripts/generate-bundle.bat @@ -27,7 +27,7 @@ if /I "%BUILD_CONFIG%"=="debug" ( ) if not defined SIGNTOOL_PARAMS ( - echo "A signtool parameter string must be specified in SIGNTOOL_PARAMS for signed release builds" + echo A signtool parameter string must be specified in SIGNTOOL_PARAMS for signed release builds exit /b 1 ) ) else ( diff --git a/wix/MoonlightSetup/MoonlightSetup.wixproj b/wix/MoonlightSetup/MoonlightSetup.wixproj index 796ee5b0cd..3ae898273b 100644 --- a/wix/MoonlightSetup/MoonlightSetup.wixproj +++ b/wix/MoonlightSetup/MoonlightSetup.wixproj @@ -16,10 +16,10 @@ true - + - + From de2467e433821664cdd2224aad8c89a625be1ad9 Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Sat, 3 Oct 2026 19:02:01 -0500 Subject: [PATCH 09/10] Fix MSI signing --- wix/Moonlight/Moonlight.wixproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wix/Moonlight/Moonlight.wixproj b/wix/Moonlight/Moonlight.wixproj index 077d1f7a6a..fb1ff1dfbe 100644 --- a/wix/Moonlight/Moonlight.wixproj +++ b/wix/Moonlight/Moonlight.wixproj @@ -16,7 +16,7 @@ true - + From f433d3122ec652513974d73290d7c07ad9985022 Mon Sep 17 00:00:00 2001 From: vibesoftwarecoder Date: Tue, 6 Oct 2026 05:50:27 -0500 Subject: [PATCH 10/10] Bump version for upstream sync Co-Authored-By: Claude Sonnet 5 --- app/version.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/version.txt b/app/version.txt index a7ee22c2e2..291cd91eb1 100644 --- a/app/version.txt +++ b/app/version.txt @@ -1 +1 @@ -6.3.8 +6.3.9