Releases: LizardByte/Sunshine
v2026.619.155209
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 #5149
- fix(web): disconnect only the disabled client instead of all sessions by @neatnoise in #5138
- chore(deps): update dependency marked to v18.0.4 by @renovate[bot] in #5151
- chore: rename copilot-instructions.md to AGENTS.md by @ReenigneArcher in #5156
- fix(Windows-installer): move ViGEmBus to ThirdParty group by @ReenigneArcher in #5157
- feat(rtsp): add option to limit packetsize for clients that cannot configure it by @httpstorm in #5153
- feat(web-ui): Added Filtering & Searching to the Apps page by @Noklef in #5158
- build(deps): bump packaging/linux/flatpak/deps/flatpak-builder-tools from
dda10aatoee65dc7by @dependabot[bot] in #5155 - chore(crowdin): set commit message by @ReenigneArcher in #5160
- chore(l10n): update translations by @LizardByte-bot in #5161
- fix(web): the packetsize upper limit is 65535 by @httpstorm in #5167
- chore(l10n): update translations by @LizardByte-bot in #5162
- chore(deps): update dependency date-fns to v4.3.0 by @renovate[bot] in #5172
- build(deps): bump packaging/linux/flatpak/deps/flatpak-builder-tools from
ee65dc7to96e2fe8by @dependabot[bot] in #5165 - chore(deps): update lizardbyte/actions action to v2026.522.121358 by @renovate[bot] in #5173
- fix(web-ui): add documentation link and version-aware URLs by @ReenigneArcher in #5176
- chore(deps): update lizardbyte/actions action to v2026.524.145234 by @renovate[bot] in #5177
- chore(deps): migrate from lucide-vue-next to @lucide/vue by @ReenigneArcher in #5179
- chore(l10n): update translations by @LizardByte-bot in #5178
- chore: Add CLion run configuration for 'sunshine' by @ReenigneArcher in #5181
- build(freebsd): fix npm install by @ReenigneArcher in #5182
- fix(linux): migrate to qt tray by @ReenigneArcher in #4907
- fix: explicitly check construct function error in thread_safe.h by @Kishi85 in #5184
- build(macos): quote SHOULD_SIGN env expansion in install script by @Nottlespike in #5185
- fix(macos/packaging): add NSLocalNetworkUsageDescription so Bonjour can register by @Nottlespike in #5186
- chore(l10n): update translations by @LizardByte-bot in #5193
- fix(linux/vulkan): preserve host aspect ratio in encoder output by @hebo6 in #5130
- fix(macos): drop max_ref_frames=1 for h264_videotoolbox and enable PARALLEL_ENCODING by @Nottlespike in #5200
- chore(deps): update dependency vue to v3.5.35 by @renovate[bot] in #5204
- chore(l10n): update translations by @LizardByte-bot in #5196
- build(Archlinux): Shallow clone dependent submodules by @alexytomi in #5206
- chore(deps): update dependency @lucide/vue to v1.17.0 by @renovate[bot] in #5210
- chore(deps): update actions/setup-dotnet action to v5.3.0 by @renovate[bot] in #5208
- fix(linux/vulkan): Ensure RADV vulkan video encoding is enabled on newer versions of Mesa by @Kishi85 in #5211
- fix(linux/kwin): retry init with fully dropped elevated privileges in case KWin is missing CAP_SYS_NICE on linux by @Kishi85 in #5212
- feat(web-ui): Updated
Add/Editapp form to use modals + newDeleteApp UI flow by @Noklef in #5166 - chore(deps): bump wayland-protocols to 1.48 by @ReenigneArcher in #5219
- chore(deps): update dependency date-fns to v4.4.0 by @renovate[bot] in #5215
- chore(l10n): update translations by @LizardByte-bot in #5220
- build(deps): bump third-party/tray from
6332649todf9af11by @dependabot[bot] in #5221 - build(python): migrate to uv by @ReenigneArcher in #5222
- build(homebrew): fix service install on linux by @ReenigneArcher in #5223
- chore(gh-pages): remove unused jquery dependency by @ReenigneArcher in #5235
- docs(contributing): refresh clang-format guidance by @Sev7een in #5233
- chore(deps): update vmactions/freebsd-vm action to v1.4.6 by @renovate[bot] in #5226
- chore(l10n): update translations by @LizardByte-bot in #5229
- chore(deps): update dependency bootstrap-icons to v1.13.1 by @renovate[bot] in #5239
- chore(deps): update dependency vite to v6.4.3 by @renovate[bot] in #5238
- chore(deps): update official github actions to v6.0.3 by @renovate[bot] in #5242
- chore(deps): update dependency simple-icons to v13 by @renovate[bot] in #5243
- chore(deps): update dependency simple-icons to v16 by @renovate[bot] in #5248
- chore(deps): use lizardbyte-common for python helpers by @ReenigneArcher in #5250
- chore(deps): update lizardbyte/actions action to v2026.6...
v2026.617.152807
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 #5149
- fix(web): disconnect only the disabled client instead of all sessions by @neatnoise in #5138
- chore(deps): update dependency marked to v18.0.4 by @renovate[bot] in #5151
- chore: rename copilot-instructions.md to AGENTS.md by @ReenigneArcher in #5156
- fix(Windows-installer): move ViGEmBus to ThirdParty group by @ReenigneArcher in #5157
- feat(rtsp): add option to limit packetsize for clients that cannot configure it by @httpstorm in #5153
- feat(web-ui): Added Filtering & Searching to the Apps page by @Noklef in #5158
- build(deps): bump packaging/linux/flatpak/deps/flatpak-builder-tools from
dda10aatoee65dc7by @dependabot[bot] in #5155 - chore(crowdin): set commit message by @ReenigneArcher in #5160
- chore(l10n): update translations by @LizardByte-bot in #5161
- fix(web): the packetsize upper limit is 65535 by @httpstorm in #5167
- chore(l10n): update translations by @LizardByte-bot in #5162
- chore(deps): update dependency date-fns to v4.3.0 by @renovate[bot] in #5172
- build(deps): bump packaging/linux/flatpak/deps/flatpak-builder-tools from
ee65dc7to96e2fe8by @dependabot[bot] in #5165 - chore(deps): update lizardbyte/actions action to v2026.522.121358 by @renovate[bot] in #5173
- fix(web-ui): add documentation link and version-aware URLs by @ReenigneArcher in #5176
- chore(deps): update lizardbyte/actions action to v2026.524.145234 by @renovate[bot] in #5177
- chore(deps): migrate from lucide-vue-next to @lucide/vue by @ReenigneArcher in #5179
- chore(l10n): update translations by @LizardByte-bot in #5178
- chore: Add CLion run configuration for 'sunshine' by @ReenigneArcher in #5181
- build(freebsd): fix npm install by @ReenigneArcher in #5182
- fix(linux): migrate to qt tray by @ReenigneArcher in #4907
- fix: explicitly check construct function error in thread_safe.h by @Kishi85 in #5184
- build(macos): quote SHOULD_SIGN env expansion in install script by @Nottlespike in #5185
- fix(macos/packaging): add NSLocalNetworkUsageDescription so Bonjour can register by @Nottlespike in #5186
- chore(l10n): update translations by @LizardByte-bot in #5193
- fix(linux/vulkan): preserve host aspect ratio in encoder output by @hebo6 in #5130
- fix(macos): drop max_ref_frames=1 for h264_videotoolbox and enable PARALLEL_ENCODING by @Nottlespike in #5200
- chore(deps): update dependency vue to v3.5.35 by @renovate[bot] in #5204
- chore(l10n): update translations by @LizardByte-bot in #5196
- build(Archlinux): Shallow clone dependent submodules by @alexytomi in #5206
- chore(deps): update dependency @lucide/vue to v1.17.0 by @renovate[bot] in #5210
- chore(deps): update actions/setup-dotnet action to v5.3.0 by @renovate[bot] in #5208
- fix(linux/vulkan): Ensure RADV vulkan video encoding is enabled on newer versions of Mesa by @Kishi85 in #5211
- fix(linux/kwin): retry init with fully dropped elevated privileges in case KWin is missing CAP_SYS_NICE on linux by @Kishi85 in #5212
- feat(web-ui): Updated
Add/Editapp form to use modals + newDeleteApp UI flow by @Noklef in #5166 - chore(deps): bump wayland-protocols to 1.48 by @ReenigneArcher in #5219
- chore(deps): update dependency date-fns to v4.4.0 by @renovate[bot] in #5215
- chore(l10n): update translations by @LizardByte-bot in #5220
- build(deps): bump third-party/tray from
6332649todf9af11by @dependabot[bot] in #5221 - build(python): migrate to uv by @ReenigneArcher in #5222
- build(homebrew): fix service install on linux by @ReenigneArcher in #5223
- chore(gh-pages): remove unused jquery dependency by @ReenigneArcher in #5235
- docs(contributing): refresh clang-format guidance by @Sev7een in #5233
- chore(deps): update vmactions/freebsd-vm action to v1.4.6 by @renovate[bot] in #5226
- chore(l10n): update translations by @LizardByte-bot in #5229
- chore(deps): update dependency bootstrap-icons to v1.13.1 by @renovate[bot] in #5239
- chore(deps): update dependency vite to v6.4.3 by @renovate[bot] in #5238
- chore(deps): update official github actions to v6.0.3 by @renovate[bot] in #5242
- chore(deps): update dependency simple-icons to v13 by @renovate[bot] in #5243
- chore(deps): update dependency simple-icons to v16 by @renovate[bot] in #5248
- chore(deps): use lizardbyte-common for python helpers by @ReenigneArcher in #5250
- chore(deps): update lizardbyte/actions action to v2026.6...
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
v0.23.0
Attention, this release contains critical security fixes. Please update as soon as possible.
Breaking
- (Linux) Drop support for Ubuntu 20.04
- (Linux) No longer provide arm64 rpm packages, due to extreme compile time on GitHub hosted runners
Fixed
- (Network) Ensure unpairing takes effect without restart
- (Capture/Linux) Fix logical comparison of texture size
- (Service/Windows) Quote the path to sunshinesvc.exe when launching the termination helper
Added
- (WebUI) Localization support
- (Capture/Linux) Populate host latency for kmx/x11 grab
- (Capture/Windows) AMF rate control improvements
- (Linux) Add support for Ubuntu 24.04 (x86_64 only)
Dependencies
- Bump rstcheck from 6.2.0 to 6.2.1
- Bump org.flatpak.Builder.BaseApp from 644487f to 6e295e6
- Bump ffmpeg
- Bump @fortawesome/fontawesome-free from 6.5.1 to 6.5.2
Misc
- (Style) Refactored video encoder declarations
- (CI) Refactored Linux build in CI
- (CI) Added unit testing and code coverage
- (Docs/macOS) Update curl command for Portfile install
- (Style) Refactor logging initialization