v0.22.0
LizardByte/Sunshinev0.22.0Mar 4, 2024by LizardByte-bot
AI Summary
A major overhaul featuring a new Vite/Vue3-based UI, IPv6 support, and full E2E stream encryption.
Key Highlights
- UI migrated to Vite and Vue3
- Added full E2E stream encryption
- Added IPv6 support
- Added native/pen touch support for Linux
- Added HDR streaming support for Linux using KMS capture backend
Breaking Changes
- Clients must now be paired with the host before they can use Wake-on-LAN
- Dropped Fedora 37 support
New Features
- Process group tracking for automatic launcher handling
- NVENC power saving and encoding latency settings
- Wayland-protocols dependency optional
- VA-API optional
Full Release Notes
**Breaking** - (Network) Clients must now be paired with the host before they can use Wake-on-LAN - (Build/Linux) Drop Fedora 37 support **Added** - (Input/Linux) Add native/pen touch support for Linux - (Capture/Linux) Add HDR streaming support for Linux using KMS capture backend - (Capture/Linux) Add KMS capture support for Nvidia GPUs running Wayland - (Network) Add support for full E2E stream encryption, configurable for LAN and WAN independently - (Process) Add process group tracking to automatically handle launchers that spawn other child processes - (Capture/Windows) Add setting for controlling GPU power saving and encoding latency tradeoff for NVENC - (Capture/Windows) Add additional encoding settings for NVENC - (Process/Windows) Add experimental support for launching URLs and other non-exe files - (Capture/Windows) Add setting to allow use of slower HEVC encoding on older Intel GPUs - (Input/Windows) Add settings to control automatic gamepad type selection heuristics - (Input/Windows) Add setting to allow DS4 back/select button to trigger touchpad click - (Input) Add setting to disable high resolution scrolling and native pen/touch support - (Network) Add support for certificates types other than RSA-2048 - (Build/Linux) Add Fedora 39 docker image and rpm package - (Capture/Linux) Display monitor indexes in logs for wlroots and KMS capture backends - (UI) Add link to logs inside fatal error container - (UI) Add hash handler and ids for all configuration categories and settings **Changed** - (UI) Several configuration options have been moved to more suitable locations - (Network) Client-selected bitrate is now adjusted for FEC percentage and other stream overhead - (Capture/Linux) Improve VAAPI encoding performance on Intel GPUs - (Capture) Connection establishment delay is reduced by eliminating many encoder probing operations - (Process) Graceful termination of running processes is attempted first when stopping apps - (Capture) Improve software encoding performance by enabling multi-threaded color conversion - (Capture) Adjust default CPU thread count for software encoding from 1 to 2 for improved performance - (Steam/Windows) Modernized the default Steam app shortcut to avoid depending on Steam's install location and support app termination - (Linux) Updated desktop files - (Config) Add 2560x1440 to default resolutions - (Network) Use the configured ping timeout for the initial launch event timeout - (UI) Migrate UI to Vite and Vue3, and various UX improvements - (Logging) Adjust wording and severity of some log messages - (Build) Use a single submodule for ffmpeg - (Install/Windows) Skip ViGEmBus installation if a supported version is already installed - (Build/Linux) Optionally, allow using the system installation of wayland-protocols - (Build/Linux) Make vaapi optional - (Windows) Replace boost::json with nlohmann/json **Fixed** - (Network/Windows) Fix auto-discovery of hosts by iOS/tvOS clients - (Network) Fix immediate connection termination when streaming over some Internet connections - (Capture/Linux) Fix missing mouse cursor when using KMS capture on a GPU with hardware cursor support - (Capture/Windows) Add workaround for Nvidia driver bug causing Sunshine to crash when RTX HDR is globally enabled - (Capture/Windows) Add workaround for AMD driver bug on pre-RDNA GPUs causing hardware encoding failure - (Capture/Windows) Reintroduce support for NVENC on older Nvidia GPU drivers (v456.71-v522.25) - (Capture/Windows) Fix encoding on old Intel GPUs that don't support low-power H.264 encoding - (Capture/Linux) Fix GL errors or corrupt video output on GPUs that use aux planes such as Intel Arc - (Capture/Linux) Fix GL errors or corrupt video output on GPUs that use DRM modifiers on YUV buffers - (Input/Windows) Fix non-functional duplicate controllers appearing in rare cases - (Input/Windows) Avoid triggering crash in ViGEmBus when the system goes to sleep - (Input/Linux) Fix scrolling in applications that don't support high-resolution scrolling - (Input/Linux) Fix absolute mouse input being interpreted as touch input - (Capture/Linux) Fix wlroots capture causing GL errors and crashes - (Capture/Linux) Fix wlroots capture failing when the display scale factor was not 1 - (Capture/Linux) Fix excessive CPU usage when using wlroots capture backend - (Capture/Linux) Fix capture of virtual displays created by the amdgpu kernel driver - (Audio/Windows) Fix audio capture failures on Insider Preview versions of Windows 11 - (Capture/Windows) Fix incorrect portrait mode rotation - (Capture/Windows) Fix capture recovery when a driver update/crash occurs while streaming - (Capture/Windows) Fix delay displaying UAC dialogs when the mouse cursor is not moving - (Capture/Linux) Fix corrupt video output or stream disconnections if the display resolution changes while streaming - (Capture/Linux) Fix color of aspect ratio padding in the capture image with VAAPI - (Capture/Linux) Fix NVENC initialization error when using X11 capture with some GPUs - (Tray/Linux) Fix random crash when the tray icon is updating - (Network) Fix QoS tagging when running in IPv4+IPv6 mode - (Process) Fix termination of child processes upon app quit when the parent has already terminated - (Process) Fix notification of graceful termination to connected clients when Sunshine quits - (Capture) Fix corrupt output or green aspect-ratio padding when using software encoding with some video resolutions - (Windows) Fix crashes when processing file paths or other strings with certain non-ASCII characters - (Capture) Ensure user supplied framerates are used exclusively in place of pre-defined framerates - (CMake/Linux) Skip including unnecessary headers - (Capture/Linux) Replace vaTerminate method with dl handle - (Capture/Linux) Fix capture when DRM is enabled and x11 is disabled - (Tray) Use PROJECT_NAME definition for tooltip - (CMake) Use GNUInstallDirs to install data and lib directories - (macOS) Replace deprecated code - (API) Allow trailing slashes in on API endpoints - (API) Add additional pin validation - (Linux) Use XDG spec for fetching config directory - (CMake) Properly find evdev - (Config) Properly save global_prep_cmd and fps settings **Dependencies** - Bump third-party/wayland-protocols from 681c33c to 46f201b - Bump third-party/nv-codec-headers from 9402b5a to 22441b5 - Bump third-party/nanors from 395e5ad to e9e242e - Bump third-party/Simple-Web-Server from 2f29926 to 27b41f5 - Bump ffmpeg - Bump third-party/tray from 2664388 to 2bf1c61 - Bump actions/setup-python from 4 to 5 - Bump actions/upload-artifact from 3 to 4 - Bump @fortawesome/fontawesome-free from 6.4.2 to 6.5.1 - Bump babel from 2.13.0 to 2.14.0 - Move miniupnpc from submodule to system installed package - Bump furo from 2023.9.10 to 2024.1.29 - Bump third-party/moonlight-common-c from f78f213 to cbd0ec1 - Bump third-party/ViGEmClient from 1920260 to 8d71f67 - Bump peter-evans/create-pull-request from 5 to 6 - Bump bootstrap from 5.3.2 to 5.3.3 **Misc** - (Build) Update global workflows - (Docs/Linux) Add example for setting custom resolution with NVIDIA - (Docs) Fix broken links - (Docs/Windows) Add information about disk permissions - (Docs) Fix failing images - (Docs) Use glob pattern to match source code docs - (CI/macOS) Install boost from source - (Docs) Add reset credentials examples for unique packages - (Docs) Refactor and general cleanup - (Docs) Cross-reference config settings to the UI - (Docs/Docker) Add podman notes - (Build) Use CMAKE_SOURCE_DIR property everywhere - (Build/Docker) Add docker toolchain file for CLion - (macOS) Various code style fixes - (Deps) Alphabetize git submodules - (Docs/Examples) Update URI examples - (Refactor) Refactored some code in preparation for unit testing implementation - (CMake) Add option to skip cuda inheriting compile options - (CMake) Add option to error build on warnings