From 7ea142a922e807dc1ed2801380938aa9ac7d2593 Mon Sep 17 00:00:00 2001 From: ReenigneArcher <42013603+ReenigneArcher@users.noreply.github.com> Date: Sat, 18 Jan 2025 23:58:05 +0000 Subject: [PATCH] chore: Add blog post for Sunshine release v2025.118.151840 --- .../releases/2025-01-18-v2025.118.151840.md | 127 ++++++++++++++++++ 1 file changed, 127 insertions(+) create mode 100644 _posts/releases/2025-01-18-v2025.118.151840.md diff --git a/_posts/releases/2025-01-18-v2025.118.151840.md b/_posts/releases/2025-01-18-v2025.118.151840.md new file mode 100644 index 00000000..810722a1 --- /dev/null +++ b/_posts/releases/2025-01-18-v2025.118.151840.md @@ -0,0 +1,127 @@ +--- +layout: release +title: Sunshine v2025.118.151840 Released +gh-repo: LizardByte/Sunshine +gh-badge: [follow, fork, star] +tags: [release, sunshine] +comments: true +author: LizardByte-bot +--- + +## Attention + +This release contains critical security updates. For more information see +[GHSA-3hrw-xv8h-9499](https://github.com/LizardByte/Sunshine/security/advisories/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](https://github.com/TimmyOVO) in [#2449](https://github.com/LizardByte/Sunshine/pull/2449) +* fix(macos/input): incorrect mouse input for non-main display by [@TimmyOVO](https://github.com/TimmyOVO) in [#2461](https://github.com/LizardByte/Sunshine/pull/2461) +* webui: Update resolution automation example text with auto refresh rate by [@cgarst](https://github.com/cgarst) in [#2503](https://github.com/LizardByte/Sunshine/pull/2503) +* fix(linux): add frame processing latency and logging improvements by [@gschintgen](https://github.com/gschintgen) in [#2502](https://github.com/LizardByte/Sunshine/pull/2502) +* AppImage: add needed VA-API libraries (Intel & AMD) by [@gschintgen](https://github.com/gschintgen) in [#2429](https://github.com/LizardByte/Sunshine/pull/2429) +* Allow a custom FFmpeg build to be provided using CMake variables by [@chewi](https://github.com/chewi) in [#1970](https://github.com/LizardByte/Sunshine/pull/1970) +* Fix log message for Periodic Ping by [@c3m3gyanesh](https://github.com/c3m3gyanesh) in [#2538](https://github.com/LizardByte/Sunshine/pull/2538) +* feat(ui): Dark Mode by [@Hazer](https://github.com/Hazer) in [#2493](https://github.com/LizardByte/Sunshine/pull/2493) +* build(win): use UCRT64 environment instead of MinGW64. by [@tez011](https://github.com/tez011) in [#2323](https://github.com/LizardByte/Sunshine/pull/2323) +* feat(win): new capture method, Windows.Graphics.Capture by [@tez011](https://github.com/tez011) in [#2580](https://github.com/LizardByte/Sunshine/pull/2580) +* Name and unpair individual clients by [@xanderfrangos](https://github.com/xanderfrangos) in [#2042](https://github.com/LizardByte/Sunshine/pull/2042) +* feat(audio): custom surround-params by [@mariotaku](https://github.com/mariotaku) in [#2424](https://github.com/LizardByte/Sunshine/pull/2424) +* Remove the need for a patched nvidia library for NvFBC. by [@hgaiser](https://github.com/hgaiser) in [#2471](https://github.com/LizardByte/Sunshine/pull/2471) +* build(linux): add homebrew support by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#2667](https://github.com/LizardByte/Sunshine/pull/2667) +* fix(macos): Mouse input broken in-game by [@Hazer](https://github.com/Hazer) in [#2550](https://github.com/LizardByte/Sunshine/pull/2550) +* feat(input/linux): add support for more virtual input devices by [@Hazer](https://github.com/Hazer) in [#2606](https://github.com/LizardByte/Sunshine/pull/2606) +* fix(linux/input): battery values conversion by [@ABeltramo](https://github.com/ABeltramo) in [#2715](https://github.com/LizardByte/Sunshine/pull/2715) +* feat: add min_fps_target setting by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#1043](https://github.com/LizardByte/Sunshine/pull/1043) +* fix(upnp): support newer miniupnpc library by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#2782](https://github.com/LizardByte/Sunshine/pull/2782) +* macOS: New implementation of service publication by [@cathyjf](https://github.com/cathyjf) in [#2786](https://github.com/LizardByte/Sunshine/pull/2786) +* build(linux): drop support for AUR by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#2819](https://github.com/LizardByte/Sunshine/pull/2819) +* Implement basic network flow control by [@ns6089](https://github.com/ns6089) in [#2803](https://github.com/LizardByte/Sunshine/pull/2803) +* Provide SSSE3, AVX2, and AVX512 optimized Reed-Solomon functions by [@cgutman](https://github.com/cgutman) in [#2828](https://github.com/LizardByte/Sunshine/pull/2828) +* Eliminate a redundant alloc+copy of each frame by [@cgutman](https://github.com/cgutman) in [#2852](https://github.com/LizardByte/Sunshine/pull/2852) +* Implement S/G IO for non-batched sends and eliminate more data copies by [@cgutman](https://github.com/cgutman) in [#2867](https://github.com/LizardByte/Sunshine/pull/2867) +* Implement S/G IO for batched sends and eliminate another frame copy by [@cgutman](https://github.com/cgutman) in [#2874](https://github.com/LizardByte/Sunshine/pull/2874) +* Migrate audio pipeline to float from 16-bit integer by [@ns6089](https://github.com/ns6089) in [#2873](https://github.com/LizardByte/Sunshine/pull/2873) +* Handle CTRL_CLOSE_EVENT on Windows by [@ns6089](https://github.com/ns6089) in [#2952](https://github.com/LizardByte/Sunshine/pull/2952) +* feat!: drop advertised resolutions and fps by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#2924](https://github.com/LizardByte/Sunshine/pull/2924) +* fix(linux): ensure NvFBC capture works after multiple sessions by [@insanemal](https://github.com/insanemal) in [#3020](https://github.com/LizardByte/Sunshine/pull/3020) +* feat(win/video): support native YUV 4:4:4 encoding by [@ns6089](https://github.com/ns6089) in [#2533](https://github.com/LizardByte/Sunshine/pull/2533) +* fix(linux): enable lowlatency mode for AMD by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#3088](https://github.com/LizardByte/Sunshine/pull/3088) +* fix(nvhttp): wrap TLS socket to ensure graceful closure by [@cgutman](https://github.com/cgutman) in [#3077](https://github.com/LizardByte/Sunshine/pull/3077) +* fix(mdns): don't hardcode mDNS instance name by [@cgutman](https://github.com/cgutman) in [#3084](https://github.com/LizardByte/Sunshine/pull/3084) +* fix(win/video): don't offload chroma subsampling math to texture sampler when downscaling by [@ns6089](https://github.com/ns6089) in [#3014](https://github.com/LizardByte/Sunshine/pull/3014) +* build(cmake): Prioritize vendored includes over system-wide by [@jmou](https://github.com/jmou) in [#3182](https://github.com/LizardByte/Sunshine/pull/3182) +* fix(macos): Touch input broken by [@BayLee4](https://github.com/BayLee4) in [#3240](https://github.com/LizardByte/Sunshine/pull/3240) +* fix(video): encode at least one frame before capture reinit by [@cgutman](https://github.com/cgutman) in [#3300](https://github.com/LizardByte/Sunshine/pull/3300) +* fix: Reverse Proxy support by [@Degot](https://github.com/Degot) in [#3173](https://github.com/LizardByte/Sunshine/pull/3173) +* feat(stream)!: remove limit on concurrent sessions and allow quitting apps with active sessions by [@cgutman](https://github.com/cgutman) in [#3325](https://github.com/LizardByte/Sunshine/pull/3325) +* fix(nvenc): disable filler data in AV1 bitstream by [@cgutman](https://github.com/cgutman) in [#3336](https://github.com/LizardByte/Sunshine/pull/3336) +* feat(vaapi): add option to enable strict enforcement of frame size by [@cgutman](https://github.com/cgutman) in [#3332](https://github.com/LizardByte/Sunshine/pull/3332) +* fix(macos): prevent indefinite hanging if screen capture is not granted by [@cathyjf](https://github.com/cathyjf) in [#3360](https://github.com/LizardByte/Sunshine/pull/3360) +* fix(process): avoid leaking zombies and fds in detached processes by [@cgutman](https://github.com/cgutman) in [#3379](https://github.com/LizardByte/Sunshine/pull/3379) +* fix(hostname): fix handling of non-ASCII hostnames on Windows by [@cgutman](https://github.com/cgutman) in [#3382](https://github.com/LizardByte/Sunshine/pull/3382) +* feat(display)!: Add libdisplaydevice dependency and output name mapping by [@FrogTheFrog](https://github.com/FrogTheFrog) in [#2894](https://github.com/LizardByte/Sunshine/pull/2894) +* fix(nvenc): Enable opt-in client refresh by client by [@TheElixZammuto](https://github.com/TheElixZammuto) in [#3415](https://github.com/LizardByte/Sunshine/pull/3415) +* fix(shaders/directx): replace modulus with bitwise operator by [@iMakeSoftware](https://github.com/iMakeSoftware) in [#3499](https://github.com/LizardByte/Sunshine/pull/3499) +* feat(display): Configure display device based on user config by [@FrogTheFrog](https://github.com/FrogTheFrog) in [#3441](https://github.com/LizardByte/Sunshine/pull/3441) +* fix(confighttp): do not return 200 on errors by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#3385](https://github.com/LizardByte/Sunshine/pull/3385) +* feat(display): add display mode remapping option by [@FrogTheFrog](https://github.com/FrogTheFrog) in [#3529](https://github.com/LizardByte/Sunshine/pull/3529) +* fix(capture/windows): fix capture when using the basic render driver by [@cgutman](https://github.com/cgutman) in [#3531](https://github.com/LizardByte/Sunshine/pull/3531) +* feat(capture/windows): hook APIs to avoid output reparenting that breaks DDA by [@cgutman](https://github.com/cgutman) in [#3530](https://github.com/LizardByte/Sunshine/pull/3530) +* fix(checkbox): inverse global prep values for apps by [@FrogTheFrog](https://github.com/FrogTheFrog) in [#3547](https://github.com/LizardByte/Sunshine/pull/3547) + +## New Contributors +* [@TimmyOVO](https://github.com/TimmyOVO) made their first contribution in [#2449](https://github.com/LizardByte/Sunshine/pull/2449) +* [@cgarst](https://github.com/cgarst) made their first contribution in [#2503](https://github.com/LizardByte/Sunshine/pull/2503) +* [@skryvel](https://github.com/skryvel) made their first contribution in [#2514](https://github.com/LizardByte/Sunshine/pull/2514) +* [@c3m3gyanesh](https://github.com/c3m3gyanesh) made their first contribution in [#2538](https://github.com/LizardByte/Sunshine/pull/2538) +* [@BeeLeDev](https://github.com/BeeLeDev) made their first contribution in [#2555](https://github.com/LizardByte/Sunshine/pull/2555) +* [@xanderfrangos](https://github.com/xanderfrangos) made their first contribution in [#2042](https://github.com/LizardByte/Sunshine/pull/2042) +* [@hgaiser](https://github.com/hgaiser) made their first contribution in [#2471](https://github.com/LizardByte/Sunshine/pull/2471) +* [@cathyjf](https://github.com/cathyjf) made their first contribution in [#2786](https://github.com/LizardByte/Sunshine/pull/2786) +* [@cfalas](https://github.com/cfalas) made their first contribution in [#2841](https://github.com/LizardByte/Sunshine/pull/2841) +* [@insanemal](https://github.com/insanemal) made their first contribution in [#3020](https://github.com/LizardByte/Sunshine/pull/3020) +* [@jmou](https://github.com/jmou) made their first contribution in [#3183](https://github.com/LizardByte/Sunshine/pull/3183) +* [@BayLee4](https://github.com/BayLee4) made their first contribution in [#3240](https://github.com/LizardByte/Sunshine/pull/3240) +* [@andygrundman](https://github.com/andygrundman) made their first contribution in [#3294](https://github.com/LizardByte/Sunshine/pull/3294) +* [@midwesternrodent](https://github.com/midwesternrodent) made their first contribution in [#3287](https://github.com/LizardByte/Sunshine/pull/3287) +* [@caveat-makes-software](https://github.com/caveat-makes-software) made their first contribution in [#3264](https://github.com/LizardByte/Sunshine/pull/3264) +* [@Degot](https://github.com/Degot) made their first contribution in [#3173](https://github.com/LizardByte/Sunshine/pull/3173) +* [@soerenkampschroer](https://github.com/soerenkampschroer) made their first contribution in [#3348](https://github.com/LizardByte/Sunshine/pull/3348) +* [@davidemarcoli](https://github.com/davidemarcoli) made their first contribution in [#3356](https://github.com/LizardByte/Sunshine/pull/3356) +* [@MiroKaku](https://github.com/MiroKaku) made their first contribution in [#3416](https://github.com/LizardByte/Sunshine/pull/3416) +* [@petrhanak](https://github.com/petrhanak) made their first contribution in [#3490](https://github.com/LizardByte/Sunshine/pull/3490) +* [@iMakeSoftware](https://github.com/iMakeSoftware) made their first contribution in [#3499](https://github.com/LizardByte/Sunshine/pull/3499) +* [@Gurubaseio](https://github.com/Gurubaseio) made their first contribution in [#3466](https://github.com/LizardByte/Sunshine/pull/3466) + +**Full Changelog**: https://github.com/LizardByte/Sunshine/compare/v0.23.1...v2025.118.151840 + +--- +## Contributors +ReenigneArcherdependabotcgutmanLizardByte-botns6089FrogTheFrogHazergschintgencathyjfTimmyOVOjmoutez011BayLee4BeeLeDevDegotGurubaseioMiroKakuandygrundmanc3m3gyaneshcaveat-makes-softwarecfalascgarstchewidavidemarcolihgaiseriMakeSoftwareinsanemalkelviemidwesternrodentpetrhanakskryvelsoerenkampschroerxanderfrangosABeltramoNonaryTheElixZammutomariotakusitiom