Releases: LizardByte/Sunshine
Release list
v2026.910.221003
What's Changed
- chore(deps): update dependency @lucide/vue to v1.42.0 by @renovate[bot] in #5636
- chore(deps): lock file maintenance by @renovate[bot] in #5634
- chore(deps): Update build-deps to v2026.905.170812 by @LizardByte-bot in #5637
- build(Linux): enable openSUSE Leap 16.0 and Tumbleweed by @ReenigneArcher in #5633
- chore(flatpak): update org.kde.Platform runtime to 6.11 by @ReenigneArcher in #5639
- feat(config): add gamepad_driver option by @ReenigneArcher in #5653
- chore(l10n): update translations by @LizardByte-bot in #5632
- chore(deps): update dependency marked to v18.0.12 by @renovate[bot] in #5648
- build(deps): bump third-party/moonlight-common-c from
874ac95to62e0663by @dependabot[bot] in #5657 - chore(deps): update lizardbyte/actions action to v2026.909.30231 by @renovate[bot] in #5664
- chore(deps): update ubuntu docker tag to v26 by @renovate[bot] in #5666
- chore(deps): update vmactions/freebsd-vm action to v1.5.6 by @renovate[bot] in #5665
- chore(deps): update dependency @lucide/vue to v1.43.0 by @renovate[bot] in #5655
- ci(homebrew): run tests in separate step by @ReenigneArcher in #5669
- fix(deps): fix legacy nvenc presets and bump third-party/build-deps by @ReenigneArcher in #5668
- build(Linux): add Alpine packages by @ReenigneArcher in #4987
- fix(linux/vulkan): use vkGetDeviceQueue2 with FFmpeg 9.0 queue flags by @solidv in #5675
- build(Linux): harden Qt6 dependency detection by @ReenigneArcher in #5679
- fix(av1,hevc): stop av1 probes from clobbering hevc results by @bitness in #5554
New Contributors
Full Changelog: v2026.906.222525...v2026.910.221003
Contributors
📦 Assets:
| ⬇️ Download | #️⃣ Download Count | 🛡️ VirusTotal |
|---|---|---|
| Sunshine-FreeBSD-15.1-amd64.pkg | ||
| Sunshine-Windows-AMD64-debuginfo.7z | ||
| Sunshine-Windows-AMD64-installer.msi | ||
| Sunshine-Windows-AMD64-lite.zip | ||
| Sunshine-Windows-ARM64-debuginfo.7z | ||
| Sunshine-Windows-ARM64-installer.msi | ||
| Sunshine-Windows-ARM64-lite.zip | ||
| Sunshine-macOS-arm64.dmg | [: update dependency @lucide/vue to v1.42.0 by @renovate[bot] in #5636
- chore(deps): lock file maintenance by @renovate[bot] in #5634
- chore(deps): Update build-deps to v2026.905.170812 by @LizardByte-bot in #5637
- build(Linux): enable openSUSE Leap 16.0 and Tumbleweed by @ReenigneArcher in #5633
- chore(flatpak): update org.kde.Platform runtime to 6.11 by @ReenigneArcher in #5639
- feat(config): add gamepad_driver option by @ReenigneArcher in #5653
- chore(l10n): update translations by @LizardByte-bot in #5632
- chore(deps): update dependency marked to v18.0.12 by @renovate[bot] in #5648
- build(deps): bump third-party/moonlight-common-c from
874ac95to62e0663by @dependabot[bot] in #5657 - chore(deps): update lizardbyte/actions action to v2026.909.30231 by @renovate[bot] in #5664
- chore(deps): update ubuntu docker tag to v26 by @renovate[bot] in #5666
- chore(deps): update vmactions/freebsd-vm action to v1.5.6 by @renovate[bot] in #5665
- chore(deps): update dependency @lucide/vue to v1.43.0 by @renovate[bot] in #5655
- ci(homebrew): run tests in separate step by @ReenigneArcher in #5669
- fix(deps): fix legacy nvenc presets and bump third-party/build-deps by @ReenigneArcher in #5668
- build(Linux): add Alpine packages by @ReenigneArcher in #4987
Full Changelog: v2026.906.222525...v2026.910.173749
Contributors
📦 Assets:
v2026.906.222525
‼️ Attention
This release contains critical security updates. For more information see the following:
Please update as soon as possible!
⚠️ Breaking changes and migration notes
- Windows NSIS (
.exe) installers have been discontinued. Use the WiX-based.msiinstaller instead. - Windows portable packages were renamed.
Sunshine-Windows-{arch}-portable.zipis nowSunshine-Windows-{arch}-lite.zip. Update any fixed download URLs or automation. (#5405) - Linux KMS display indices may be reordered. Configurations using a numeric
output_namemay need to reselect their display. Connector names such asDP-1orHDMI-A-1are now recommended. (#5489) - Sunshine has migrated to libvirtualhid. It replaces Inputtino on Linux and ViGEmBus as the primary input backend on Windows AMD64, and also handles additional input functionality on macOS. Virtual-device names, controller identities, permissions, and application-specific mappings may change. (#5368)
- On Windows, full driver-backed gamepad, Raw Input keyboard, and Raw Input mouse support requires the separately installed Virtual HID Driver, an active machine license, and driver version
2026.905.2300.20or newer. You can purchase a license from the Sunshine web-ui or our store. Lifetime and yearly subscription options are available. - Existing ViGEmBus installations remain available only as a limited Xbox 360 and DualShock 4 fallback. Sunshine no longer bundles or installs ViGEmBus.
- Automatic gamepad emulation may now expose an Xbox Series controller instead of the previous Windows Xbox 360 or Linux Xbox One controller. Games and controller profiles may need to be reconfigured.
- See the Introducing libvirtualhid and Virtual HID Driver blog post for more information.
- On Windows, full driver-backed gamepad, Raw Input keyboard, and Raw Input mouse support requires the separately installed Virtual HID Driver, an active machine license, and driver version
- The input configuration key
ds5_inputtino_randomize_macwas renamed tovirtualhid_randomize_mac. The old key is no longer recognized. - The ViGEmBus Web API was replaced.
GET /api/vigembus/statusandPOST /api/vigembus/installwere removed. Integrations should migrate toGET /api/virtual-input/statusand the new/api/virtual-input/licenseendpoints. - Linux release filenames changed.
sunshine.AppImageis now versioned and architecture-specific, for exampleSunshine_2026.906.222525_x86_64.AppImage.- Debian and Ubuntu packages now use native versioned filenames, for example
sunshine_2026.906.222525-1+ubuntu24.04_amd64.deb. - Automation using fixed GitHub release URLs must be updated.
- The prebuilt platform matrix changed.
- The minimum supported FreeBSD release increased from 14.4 to 15.1.
- Prebuilt FreeBSD aarch64 packages were removed; aarch64 users must compile Sunshine themselves. (#5516)
- Fedora 42 and openSUSE Leap 15.6 RPMs are no longer attached to GitHub releases.
- Sunshine no longer opens the Web UI automatically at startup. Open it manually when configuration is needed. (#5329)
- Log files now rotate at startup. Previous logs are retained as
.1through.5; log collectors may need rotation-aware handling. (#5485)
Source builders and downstream packagers
- The minimum required CMake version increased from 3.20 to 3.24.
- The system tray migrated to Qt on every platform. Downstream packages must provide the applicable Qt Widgets and SVG dependencies. (#5260)
- Python development dependencies moved from pip extras to
uvdependency groups. Existingpip install ".[test]",.[lint], and similar workflows must migrate touv syncanduv run. (#5222) - Several build paths and submodules were removed or relocated, including Inputtino, GoogleTest, nanors, nv-codec-headers, the Flatpak shared-modules checkout, and the version-specific Ubuntu Dockerfiles. Downstream scripts and patches referencing these paths must be updated.
✨ Highlights
- Expanded virtual input support. The new libvirtualhid integration adds Xbox 360, Xbox One, Xbox Series, DualShock 4, DualSense, Nintendo Switch Pro, and generic virtual gamepad profiles, along with broader keyboard, mouse, touchscreen, pen, and trackpad support. (#5368)
- Continued NVENC support for older NVIDIA GPUs on Windows. Sunshine now dynamically selects a compatible NVIDIA Video Codec SDK version at runtime, preserving hardware encoding support on older NVIDIA cards while retaining support for newer hardware. (#5451)
- Hardware YUV 4:4:4 and HDR encoding on NVIDIA Linux systems. CUDA and CUDA-GL capture paths can now provide higher-quality chroma reproduction, including HDR configurations. (#4965, #5315)
- Improved VA-API controls. New rate-control, quality, and block-level bitrate-control options provide greater control over AMD and Intel encoding behavior. (#5388)
- Major Wayland and PipeWire improvements. This release improves DMA-BUF modifier support, display switching, variable-rate capture, fractional refresh rates, unpaced capture, software-encoder buffers, and compatibility with KWin and other compositors.
- More reliable Linux display selection. Connector names such as
DP-1andHDMI-A-1can now be used instead of unstable numeric display indices. (#5423) - Qt-based system tray across all platforms. Sunshine now uses a unified, cross-platform tray implementation with improved behavior on Linux, macOS, Windows, AppImage, and Flatpak installations. (#5260)
- Improved macOS display management. Sunshine now uses libdisplaydevice to enumerate displays and apply or restore display changes, alongside improved scroll handling, display wake behavior, and microphone permission support. (#5338)
- Native aarch64 AppImage support. Linux ARM64 users can now download an official AppImage. (#5627)
- Better Web UI application management. The Applications page now supports filtering and searching, with refreshed Add, Edit, and Delete workflows and broader layout improvements.
- More resilient streaming behavior. Highlights include automatic SDR fallback when HDR is unavailable, improved video reinitialization, corrected fractional frame pacing, better modifier-key handling, and use of the configured Windows audio sink.
- Rotating logs and improved diagnostics. Startup logs are preserved across multiple runs, making crashes and initialization failures easier to troubleshoot. (#5485)
- Per-session client identification. Launched applications can read the connected client name from the new
SUNSHINE_CLIENT_NAMEenvironment variable. (#5465) - Configurable RTSP packet size. The new
packetsizeoption can improve compatibility with clients or networks that cannot configure an appropriate packet size themselves. (#5153) - Easier Linux installation and updates through Cloudsmith. Official Sunshine DEB and RPM repositories are now available in stable and beta channels, allowing updates through
apt,dnf, orzypper. See Introducing LizardByte's Cloudsmith repositories for setup instructions.
For a comprehensive list of changes, see below.
What's Changed
- build(deps): bump third-party/inputtino from
f4ce2b0tob887f6aby @dependabot[bot] in #5135 - fix(macos): scale remote scroll input using macOS scroll speed by @martona in #5133
- chore(deps): update dependency vue-i18n to v11.4.3 by @renovate[bot] in #5139
- chore: fixes for release automation by @ReenigneArcher in #5142
- chore(deps): update dependency vue-i18n to v11.4.4 by @renovate[bot] in #5143
- chore(deps): update dependency date-fns to v4.2.1 by @renovate[bot] in #5145
- chore(deps): update codecov/codecov-action action to v6.0.1 by @renovate[bot] in [#5...
v2026.516.143833
Attention
This release contains critical security updates. For more information see the following:
Please update as soon as possible!
Breaking Changes
- ViGEmBus is no longer installed automatically. Instead you can install it from the troubleshooting page of the web-ui if needed.
- CSRF protection has been added to web-ui. If you access Sunshine through an address other than localhost you must add this to your sunshine.conf file manually. See https://docs.lizardbyte.dev/projects/sunshine/latest/md_docs_2configuration.html#csrf_allowed_origins
Highlighted Changes
- Added XDG, Pipewire, and KWin direct screencast capture on Linux
- Added Vulkan encoding on Linux
- Added official OpenSUSE packages to LizardByte copr repos
- Added FreeBSD packages
- Sunshine can now bind to a specific network interface
- Added msi/wix installer for Windows
- Added Windows support for ARM64
- Added signed dmg package for macOS
- Windows executables and installers are now signed for AMD64 packages
- New endpoints for Rest API [/api/covers]
- Updated icons, added themes, and modernized web-ui
- Capture audio on macOS using Tap API
- Add client enable/disable access control from web-ui
- Support for clients to request fractional NTSC framerates
- Support for split frame encoding on GPUs with 2+ nvenc blocks
- Updated FFmpeg to 8.1 branch
For a comprehensive list of changes, see below.
What's Changed
- ci(copr): Trigger release job only for non-prereleases by @ReenigneArcher in #4297
- build(Linux): Refactor Dockerfiles and build script for multi-stage, step-based builds by @ReenigneArcher in #4299
- build(deps): bump vue from 3.5.21 to 3.5.22 by @dependabot[bot] in #4301
- build(linux): update pkg-config systemd variable names by @PVermeer in #4303
- build(deps): bump third-party/build-deps from
c38829dto2840c8aby @dependabot[bot] in #4307 - build(packaging/homebrew): Rename class from @PROJECT_NAME@ to Sunshine by @ReenigneArcher in #4308
- build(deps): bump LizardByte/actions from 2025.917.25039 to 2025.927.193939 in the lizardbyte-actions group by @dependabot[bot] in #4309
- build(deps): bump LizardByte/actions from 2025.927.193939 to 2025.929.125237 in the lizardbyte-actions group by @dependabot[bot] in #4313
- fix(linux): service file for Trixie by @ReenigneArcher in #4319
- build(linux): static link std libraries by @PVermeer in #4321
- build(linux): enable cpack auto dependencies by @PVermeer in #4323
- build(linux): explicitely set CC and CXX compilers by @PVermeer in #4325
- feat(audio): allow sending continuous audio by @mariotaku in #4261
- build(deps): bump LizardByte/actions from 2025.929.125237 to 2025.1011.184228 in the lizardbyte-actions group by @dependabot[bot] in #4327
- feat(fps): support x-nv-video[0].clientRefreshRateX100 for requesting fractional NTSC framerates by @andygrundman in #4019
- build(deps): bump third-party/build-deps from
2840c8ato1dd1b68by @dependabot[bot] in #4326 - fix(web-ui): translation function in DisplayOutputSelector label by @ReenigneArcher in #4328
- build(deps): bump actions/setup-node from 5 to 6 in the github-actions group by @dependabot[bot] in #4334
- build(deps): bump LizardByte/actions from 2025.1011.184228 to 2025.1020.14905 in the lizardbyte-actions group by @dependabot[bot] in #4347
- build(deps): bump packaging/linux/flatpak/deps/shared-modules from
231e052to6537464by @dependabot[bot] in #4346 - build(deps): bump third-party/build-deps from
1dd1b68to6c9ec34by @dependabot[bot] in #4345 - build(rpm): Update Fedora spec and CUDA math_functions.h patch for Fedora 43+ by @ReenigneArcher in #4353
- fix(windows): Memory leak when EnumAdapters1 uses dxgi::adapter_t address as parameter by @xd-byte in #4340
- build(deps): bump the github-actions group with 2 updates by @dependabot[bot] in #4356
- build(rpm): add OpenSUSE support by @ReenigneArcher in #4359
- ci(copr): fix release event conditions by @ReenigneArcher in #4360
- ci: move bundle analysis to separate job by @ReenigneArcher in #4361
- fix(config): ensure apps.json is writeable by @SuperSandro2000 in #4249
- chore(l10n): update translations by @LizardByte-bot in #4302
- build(deps): bump LizardByte/actions from 2025.1020.14905 to 2025.1028.23217 in the lizardbyte-actions group by @dependabot[bot] in #4365
- build(flatpak): update org.freedesktop.Platform version by @ReenigneArcher in #4382
- docs(readme): Update for clarity and image sources by @ReenigneArcher in #4384
- build(deps): bump third-party/Simple-Web-Server from
187f798to546895aby @dependabot[bot] in #4370 - build(deps): bump boost to 1.89 by @ReenigneArcher in #4253
- build(deps): bump third-party/build-deps from
6c9ec34tobcaf64bby @dependabot[bot] in #4375 - build(deps): bump packaging/linux/flatpak/deps/shared-modules from
6537464to8d705c8by @dependabot[bot] in #4385 - feat(video): use unified color conversion matrix generator by @ns6089 in #4387
- build(deps): bump third-party/build-deps from
bcaf64btoca3f2daby @dependabot[bot] in #4392 - fix(config): Add missing framerateX100 fields at the initializers for the video::config_t literals by @mcourteaux in #4391
- fix(video): fix leaky abstraction in ogl luma shader by @ns6089 in #4404
- build(deps): bump third-party/moonlight-common-c from
5f22801to2d984f4by @dependabot[bot] in #4409 - build: add freebsd support by @ReenigneArcher in #4049
- fix(launch): Fix several launch failure conditions (exceptions thrown in child.wait, and boost::split_unix) by @mcourteaux in #4390
- ci: harden workflows by @ReenigneArcher in #4412
- fix(win): Windows.Graphics.Capture API frame rate capped at 60fps by @StringWeaver in #4424
- build(deps): bump vmactions/freebsd-vm from 1.2.6 to 1.2.7 by @dependabot[bot] in [#4425](https://github.com/Lizar...
v2025.924.154138
What's Changed
- fix(windows): Correct binPath syntax in install-service.bat by @ReenigneArcher in #4290
- build(macos): Remove XCode dependency by @eduardomozart in #4293
New Contributors
- @eduardomozart made their first contribution in #4293
Full Changelog: v2025.923.33222...v2025.924.154138
Contributors
🛡️ VirusTotal Results:
- Sunshine-Windows-AMD64-debuginfo.7z
- Sunshine-Windows-AMD64-installer.exe
- Sunshine-Windows-AMD64-portable.zip
- flathub.tar.gz
- sunshine-debian-trixie-amd64.deb
- sunshine-debian-trixie-arm64.deb
- sunshine-ubuntu-22.04-amd64.deb
- sunshine-ubuntu-22.04-arm64.deb
- sunshine-ubuntu-24.04-amd64.deb
- sunshine-ubuntu-24.04-arm64.deb
- sunshine.AppImage
- sunshine.pkg.tar.gz
- sunshine.pkg.tar.zst
- sunshine.rb
- sunshine_aarch64.flatpak
- sunshine_debug_aarch64.flatpak
- sunshine_debug_x86_64.flatpak
- sunshine_x86_64.flatpak
- Sunshine-2025.924.154138-1.fc41.aarch64.rpm
- Sunshine-2025.924.154138-1.fc41.x86_64.rpm
- Sunshine-2025.924.154138-1.fc42.aarch64.rpm
- Sunshine-2025.924.154138-1.fc42.x86_64.rpm
v2025.923.33222
Attention
This release contains critical security updates. For more information see the following:
Please update as soon as possible!
For a comprehensive list of user-facing changes, see below.
What's Changed
- fix(power): don't wake up every 500ms to poll while not streaming by @cgutman in #4051
- fix(amf): attempt to use level 5.1/5.2 for hevc by @mariotaku in #3888
- fix(display): Restore Checkbox import for display device opts by @VMFortress in #4076
- fix(windows): bundle vigembus instead of downloading it by @ReenigneArcher in #4088
- fix(api): don't require content type for apps delete endpoint by @doxxx in #4093
- fix(video): restore the ability to set a minimum fps target by @andygrundman in #4114
- fix(packaging/linux): depend on libgbm by @ReenigneArcher in #4113
- build(linux): compile with gcc13+ and bump cuda by @ReenigneArcher in #4136
- build(deps): Update to FFmpeg 8.0 branch by @cgutman in #4143
- feat(input/linux): allow ds5 gamepads to have a fixed device mac based on controller index by @Kishi85 in #4158
- fix(input): Cleanup and show additional gamepad options correctly on linux (DS5) by @Kishi85 in #4169
- fix(input): Add missing default value for ds5_inputtino_randomize_mac by @Kishi85 in #4207
- fix(tray): optionally run tray in main event loop enabling support for macOS by @ReenigneArcher in #3818
- feat(tray): Add runtime config option to enable/disable system tray by @Kishi85 in #4208
- fix(packaging/Arch): make cuda and unit tests optional by @FineWolf in #4254
- fix(packaging/Arch): do not fail if cuda was freshly installed by @FineWolf in #4257
- fix(Linux): udev rules style issues by @Revival8697 in #4276
- build(packaging/Linux): remove cuda as required dependency on aur by @ReenigneArcher in #4278
- fix(packaging/Linux): ensure that uhid is loaded automatically by @gschintgen in #2906
New Contributors
- @mengyanshou made their first contribution in #3741
- @doxxx made their first contribution in #4092
- @erikmagkekse made their first contribution in #3986
- @Kishi85 made their first contribution in #4158
- @a5ehren made their first contribution in #4162
- @scottnm made their first contribution in #4231
- @FineWolf made their first contribution in #4254
- @Revival8697 made their first contribution in #4276
Full Changelog: v2025.628.4510...v2025.923.33222
Contributors
🛡️ VirusTotal Results:
- Sunshine-Windows-AMD64-debuginfo.7z
- Sunshine-Windows-AMD64-installer.exe
- Sunshine-Windows-AMD64-portable.zip
- flathub.tar.gz
- sunshine-debian-trixie-amd64.deb
- [sunshine-debian-trixie-arm64.deb](https://...
v2025.628.4510
Attention
This release contains critical security updates. For more information see the following:
Please update as soon as possible!
This release also contains many new features and bug fixes, including:
- Encoder probing fixes.
- Display automation is now disabled by default, you can re-enable it in the Sunshing config UI.
- RestAPI improvements.
- Async encode added for NVENC.
- Native DualSense support on Linux.
- Headless monitor support on Wayland Linux.
- Minimum FPS is now be based on client framerate.
- New languages and updated translations.
- Many behind the scene updates to the build, ci, and dependencies.
For a more comprehensive list of user-facing changes, see below.
What's Changed
- fix(video): prevent encoder probing with no active displays by @FrogTheFrog in #3592
- fix(video): allow encoder probing when there are no devices at all by @FrogTheFrog in #3594
- feat(display): Add revert display config on disconnect option by @VMFortress in #3613
- fix(api): return proper json objects by @ReenigneArcher in #3544
- fix(ui): properly handle boolean json responses by @ReenigneArcher in #3626
- fix(dd_config)!: disable by default by @ReenigneArcher in #3639
- feat(nvenc): implement async encode by @cgutman in #3629
- fix(linux/inputtino): DualSense native support without Steam Input by @ABeltramo in #3600
- feat: Add Max Bitrate option by @utkarshdalal in #3628
- fix: add missing strings for max_bitrate setting, and improved logging for bitrate by @utkarshdalal in #3656
- feat(display): expose HDR toggle workaround delay to user by @FrogTheFrog in #3579
- fix(http): lower TLS to v1.2 for downloading covers by @ReenigneArcher in #3691
- fix(packaging/windows): add Sunshine directories to system PATH by @ReenigneArcher in #3727
- fix(linux): update sunshine rules by @ReenigneArcher in #3748
- feat(input/linux): DualSense adaptive trigger support by @ABeltramo in #3738
- style(Web UI): Add 1rem margin between Save and Apply buttons for better UI/UX by @richardziegler in #3762
- fix(config): parse config after logging initialized by @ReenigneArcher in #3769
- fix(config): fix parse error when list ends on last line of config file by @ReenigneArcher in #3772
- fix(config): ensure logging config settings are properly loaded by @ReenigneArcher in #3777
- fix(linux): headless monitors on wayland by @gorgbus in #3783
- fix(audio): set the bits-per-sample of Steam Streaming Speakers to 16-bit when the default audio device is 16-bit by @andygrundman in #3704
- fix(apps): exit steam big picture mode on session end by @eaglesemanation in #3808
- fix(homebrew): enable system tray for linux by @ReenigneArcher in #3819
- feat(audio): add an option to disable sound streaming by @Clutchnp in #3833
- fix(linux/input): improve input rules by @jbellionjourdan in #3857
- fix(web-ui): Change Pin to PIN by @karasuhebi in #3872
- fix(rtp): improve timestamp accuracy for video by @andygrundman in #3883
- fix(installer/windows): remember service start type by @ReenigneArcher in #3902
- fix(package/linux): update desktop metainfo by @joebonrichie in #3901
- feat(security/windows): Add defense-in-depth measure for insecure system PATH configuration by @cgutman in #3971
- fix(macOS): nil displayName on macOS 26 beta by @water-vapor in #3991
- fix(video): base min frame time strictly on client framerate by @ReenigneArcher in #3844
- chore(l10n): update translations by @LizardByte-bot in #3582
New Contributors
- @VMFortress made their first contribution in #3613
- @utkarshdalal made their first contribution in #3628
- @richardziegler made their first contribution in #3762
- @gorgbus made their first contribution in #3783
- @eaglesemanation made their first contribution in #3808
- @Clutchnp made their first contribution in #3814
- @SuperKenVery made their first contribution in #3828
- @jbellionjourdan made their first contribution in #3857
- @grgergo1 made their first contribution in #3876
- @karasuhebi made their first contribution in #3872
- @activatekillswitch made their first contribution in #3919
- @rbqvq made their first contribution in #3938
- @joebonrichie made their first contribution in #3901
- @water-vapor made their first contribution in #3991
Full Changelog: v2025.122.141614...v2025.628.4510
Contributors
v2025.122.141614
What's Changed
- build(linux)!: remove legacy input option by @ReenigneArcher in #3562
- fix(flatpak): fix broken desktop file, icons, and service by @ReenigneArcher in #3561
- fix(web-ui): fix new version notification conditions by @ReenigneArcher in #3577
- chore(l10n): update translations by @LizardByte-bot in #3563
New Contributors
- @CodyManess made their first contribution in #3558
Full Changelog: v2025.118.151840...v2025.122.141614
Contributors
v2025.118.151840
Attention
This release contains critical security updates. For more information see
GHSA-3hrw-xv8h-9499.
Please update as soon as possible!
This release also contains many new features and bug fixes, including:
- Implemented automatic resolution and HDR mode changing on Windows.
- Implemented YUV 4:4:4 encoding support for Intel and NVIDIA GPUs on Windows.
- Implemented automatic discovery support for macOS hosts.
- Added support for capturing displays other than the main display on macOS.
- Added support for emulating DS5, Nintendo Switch Pro, and Xbox One controllers on Linux.
- Removed the limit on concurrent streaming sessions.
- Eliminated the need for driver patching to use NvFBC capture on Linux.
- Significantly reduced CPU usage for encoding when using AMD GPUs (RDNA or later) on Windows.
- Fixed video traffic timeout error when streaming from a Hyper-V VM using GPU Paravirtualization.
- Fixed inability to stream from a Windows machine when using the Microsoft Basic Display Adapter driver.
- Optimized internal frame handling by eliminating redundant data copies and using functions optimized for SSSE3,
AVX2, and AVX512. - Implemented flow control to reduce the chance of dropped packets by overwhelmed routers or network switches.
- Reworked the video encoding rate control logic for VA-API to improve bitrate efficiency on Linux.
- New capture method using Windows.Graphics.Capture API on Windows.
This is an experimental feature and requires running Sunshine manually.
It is not compatible with running Sunshine as a service. - Clients can now be named and unpaired individually.
- The web UI now supports dark mode.
- Checkboxes replace select menus for boolean settings in the web UI.
- RestAPI improvements.
For a more comprehensive list of user-facing changes, see below.
What's Changed
- feat(macos/capture): support for capture display other than main display by @TimmyOVO in #2449
- fix(macos/input): incorrect mouse input for non-main display by @TimmyOVO in #2461
- webui: Update resolution automation example text with auto refresh rate by @cgarst in #2503
- fix(linux): add frame processing latency and logging improvements by @gschintgen in #2502
- AppImage: add needed VA-API libraries (Intel & AMD) by @gschintgen in #2429
- Allow a custom FFmpeg build to be provided using CMake variables by @chewi in #1970
- Fix log message for Periodic Ping by @c3m3gyanesh in #2538
- feat(ui): Dark Mode by @Hazer in #2493
- build(win): use UCRT64 environment instead of MinGW64. by @tez011 in #2323
- feat(win): new capture method, Windows.Graphics.Capture by @tez011 in #2580
- Name and unpair individual clients by @xanderfrangos in #2042
- feat(audio): custom surround-params by @mariotaku in #2424
- Remove the need for a patched nvidia library for NvFBC. by @hgaiser in #2471
- build(linux): add homebrew support by @ReenigneArcher in #2667
- fix(macos): Mouse input broken in-game by @Hazer in #2550
- feat(input/linux): add support for more virtual input devices by @Hazer in #2606
- fix(linux/input): battery values conversion by @ABeltramo in #2715
- feat: add min_fps_target setting by @ReenigneArcher in #1043
- fix(upnp): support newer miniupnpc library by @ReenigneArcher in #2782
- macOS: New implementation of service publication by @cathyjf in #2786
- build(linux): drop support for AUR by @ReenigneArcher in #2819
- Implement basic network flow control by @ns6089 in #2803
- Provide SSSE3, AVX2, and AVX512 optimized Reed-Solomon functions by @cgutman in #2828
- Eliminate a redundant alloc+copy of each frame by @cgutman in #2852
- Implement S/G IO for non-batched sends and eliminate more data copies by @cgutman in #2867
- Implement S/G IO for batched sends and eliminate another frame copy by @cgutman in #2874
- Migrate audio pipeline to float from 16-bit integer by @ns6089 in #2873
- Handle CTRL_CLOSE_EVENT on Windows by @ns6089 in #2952
- feat!: drop advertised resolutions and fps by @ReenigneArcher in #2924
- fix(linux): ensure NvFBC capture works after multiple sessions by @insanemal in #3020
- feat(win/video): support native YUV 4:4:4 encoding by @ns6089 in #2533
- fix(linux): enable lowlatency mode for AMD by @ReenigneArcher in #3088
- fix(nvhttp): wrap TLS socket to ensure graceful closure by @cgutman in #3077
- fix(mdns): don't hardcode mDNS instance name by @cgutman in #3084
- fix(win/video): don't offload chroma subsampling math to texture sampler when downscaling by @ns6089 in #3014
- build(cmake): Prioritize vendored includes over system-wide by @jmou in #3182
- fix(macos): Touch input broken by @BayLee4 in #3240
- fix(video): encode at least one frame before capture reinit by @cgutman in #3300
- fix: Reverse Proxy support by @Degot in #3173
- feat(stream)!: remove limit on concurrent sessions and allow quitting apps with active sessions by @cgutman in #3325
- fix(nvenc): disable filler data in AV1 bitstream by @cgutman in #3336
- feat(vaapi): add option to enable strict enforcement of frame size by @cgutman in #3332
- fix(macos): prevent indefinite hanging if screen capture is not granted by @cathyjf in #3360
- fix(process): avoid leaking zombies and fds in detached processes by @cgutman in #3379
- fix(hostname): fix handling of non-ASCII hostnames on Windows by @cgutman in #3382
- feat(display)!: Add libdisplaydevice dependency and output name mapping by @FrogTheFrog in #2894
- fix(nvenc): Enable opt-in client refresh by client by @TheElixZammuto in #3415
- fix(shaders/directx): replace modulus with bitwise operator by @iMakeSoftware in #3499
- feat(display): Configure display device based on user config by @FrogTheFrog in #3441
- fix(confighttp): do not return 200 on errors by [@ReenigneArcher](https://github.com/ReenigneArche...
v0.23.1
Fixed
- (Capture/Windows) Disable HRD and CBR encoding options by default for AMD GPUs due to video quality regressions in v0.23.0
- (UI) Fix incorrect strings for QuickSync 'fast' and 'faster' presets
- (UI/Linux) Fix update prompt appearing even when running the latest version
- (Input) Fix crash when absolute input events are received prior to the display viewport being set
- (Input/Linux) Fix missing clamping of rumble intensity to valid range
- (Build/Tests) Fix error when attempting to disable compilation of tests
- (Build/Linux) Fix some compilation errors when using Musl libc
- (Logging) Fix broken debug messages for codec capability flags
- (Logging/Linux) Fix log messages to include the correct setcap command for resolving KMS permission errors
Added
- (Capture/Linux) Improve frame time consistency for all capture backends
- (UI) Set focus to the PIN textbox when navigating to the PIN tab
Dependencies
- Remove libavdevice dependency
Misc
- (Linux) Prefer ayatana-appindicator3 over appindicator3 if both are available