Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/workflows/build-appimage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand Down Expand Up @@ -101,7 +101,7 @@ jobs:
uses: actions/checkout@v5
with:
repository: haasn/libplacebo
ref: e2972fdd09adacd383656738d7d280f0cd84a761
ref: 92b5ac6db79f4d680eb656692f7bf51e9606f42a
path: deps/libplacebo
submodules: 'recursive'

Expand Down
62 changes: 62 additions & 0 deletions app/deploy/linux/com.moonlight_stream.Moonlight.appdata.xml
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,68 @@
</screenshots>

<releases>
<release version="6.2.0" date="2026-10-03">
<description>
<p>New features:</p>
<ul>
<li>Ctrl+Alt+Shift+K has been added to toggle system keyboard grab</li>
<li>Added support for DualSense adaptive triggers (requires a compatible host)</li>
<li>Gamepads with a second trackpad can now be passed to the host (requires host support)</li>
<li>Client identifiers are now provided to the host to allow client-specific session management</li>
<li>Added an option to disable pre-launch warnings</li>
</ul>
<p>Behavior Changes:</p>
<ul>
<li>Most video renderers now use full range color instead of limited range</li>
<li>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.</li>
<li>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.</li>
<li>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.</li>
<li>The default streaming resolution for new installs is now 1080p instead of 720p.</li>
<li>Video bitrate no longer resets when adjusting resolution or frame rate if it's already been manually adjusted</li>
</ul>
<p>Security:</p>
<ul>
<li>CVE-2026-33546, CVE-2026-33547, and CVE-2026-41210 have been fixed</li>
<li>These vulnerabilities could allow a malicious host to crash Moonlight when connecting</li>
</ul>
<p>Bugfixes:</p>
<ul>
<li>Reduced background CPU usage</li>
<li>Improved startup, settings page, and stream load times</li>
<li>Optimized the EGL/GLES renderer to improve performance on low end GPUs and embedded devices</li>
<li>Fixed EGL/GLES renderer failures under X11 when GLX was used for the UI</li>
<li>Improved readability of the statistics overlay by adding an outline</li>
<li>Improved timing accuracy in the statistics overlay</li>
<li>Improved performance when multiple gamepads are sending input simultaneously</li>
<li>Improved performance when recovering from dropped network packets</li>
<li>Fixed black or green padding being rendered on the bottom or right side of the video stream when streaming from certain hosts</li>
<li>Fixed horizontal scroll direction not being correctly inverted when requested</li>
<li>Fixed Moonlight not exiting after an abnormal stream termination when launched via the CLI</li>
<li>Fixed failure to start on Linux systems where desktop OpenGL is not available</li>
<li>Fixed broken overlay rendering on PowerVR systems using the proprietary driver</li>
<li>Fixed automatic selection of AV1 on systems where HEVC is not available</li>
<li>Fixed instability when using VAAPI decoding under X11</li>
<li>Fixed small deviations in chroma co-siting and color conversion</li>
<li>Fixed suboptimal format selection on some V4L2 decoders</li>
<li>Fixed handling of some non-US keyboard layouts</li>
<li>Fixed stale app list being displayed when using CLI commands</li>
<li>Fixed handling of IPv6 literals that are not URL-escaped</li>
<li>Fixed AV1 Vulkan Video decoding on newer versions of FFmpeg</li>
<li>Fixed Ctrl+C/SIGTERM when running from the console</li>
<li>Fixed several GUI interoperability issues with Qt 6.9 and later</li>
<li>Fixed the IME or software keyboard being unexpectedly displayed in various situations</li>
<li>Fixed launching in a new VT while a Wayland compositor is running</li>
<li>Fixed moving focus from the app grid into the toolbar via the gamepad or keyboard</li>
<li>Fixed a possible crash in the Vulkan renderer when disabling an overlay</li>
<li>Fixed keyboard grab not working under sdl2-compat on Wayland compositors that lack support for keyboard-shortcuts-inhibit-unstable-v1</li>
<li>Fixed CLI stream launch causing the saved manual address to be overwritten</li>
<li>Fixed distinguishing between Enter and Numpad Enter keys (requires updated host software)</li>
<li>Fixed mDNS discovering unexpected devices after running for a period of time</li>
<li>Fixed libdecor-gtk window decorations not being displayed on the streaming window</li>
<li>Updated community-contributed translations from Weblate</li>
</ul>
</description>
</release>
<release version="6.1.0" date="2024-09-16">
<description>
<p>New features:</p>
Expand Down
2 changes: 1 addition & 1 deletion app/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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");
}

Expand Down
4 changes: 2 additions & 2 deletions app/settings/streamingpreferences.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -141,8 +141,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();
Expand Down
10 changes: 6 additions & 4 deletions app/streaming/streamutils.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
2 changes: 1 addition & 1 deletion app/version.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
6.3.8
6.3.9
9 changes: 6 additions & 3 deletions scripts/build-arch.bat
Original file line number Diff line number Diff line change
Expand Up @@ -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 (
Expand Down Expand Up @@ -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%
Expand Down Expand Up @@ -277,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
)

Expand Down
7 changes: 5 additions & 2 deletions scripts/generate-bundle.bat
Original file line number Diff line number Diff line change
Expand Up @@ -25,15 +25,18 @@ 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
)
)
)

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%
Expand Down
2 changes: 1 addition & 1 deletion setup-deps.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion setup-deps.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

ORGANIZATION = "moonlight-stream"
PREBUILT_REPO = "moonlight-qt-deps"
TAG = "v18.1"
TAG = "v19"

def get_platform_config():
system = platform.system()
Expand Down
2 changes: 1 addition & 1 deletion wix/Moonlight/Moonlight.wixproj
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
<SignOutput>true</SignOutput>
</PropertyGroup>
<Target Name="SignMsi">
<Exec Command='signtool.exe $(SIGNTOOL_PARAMS) %(SignMsi.FullPath)' />
<Exec Command='signtool.exe sign $(SIGNTOOL_PARAMS) %(SignMsi.FullPath)' />
</Target>
<ItemGroup>
<PackageReference Include="WixToolset.Firewall.wixext" Version="7.0.0" />
Expand Down
4 changes: 2 additions & 2 deletions wix/MoonlightSetup/MoonlightSetup.wixproj
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,10 @@
<SignOutput>true</SignOutput>
</PropertyGroup>
<Target Name="SignBundleEngine">
<Exec Command='signtool.exe $(SIGNTOOL_PARAMS) %(SignBundleEngine.FullPath)' />
<Exec Command='signtool.exe sign $(SIGNTOOL_PARAMS) %(SignBundleEngine.FullPath)' />
</Target>
<Target Name="SignBundle">
<Exec Command='signtool.exe $(SIGNTOOL_PARAMS) %(SignBundle.FullPath)' />
<Exec Command='signtool.exe sign $(SIGNTOOL_PARAMS) %(SignBundle.FullPath)' />
</Target>
<ItemGroup>
<PackageReference Include="WixToolset.Bal.wixext" Version="7.0.0" />
Expand Down
Loading