-
v0.8.1
Stableapple / swift (push) Successful in 2m36swindows / build (aarch64-pc-windows-msvc) (push) Successful in 50swindows / build (x86_64-pc-windows-msvc) (push) Successful in 59sapple / screenshots (push) Successful in 5m55swindows-host / package (push) Successful in 7m32swindows-msix / package (arm64, C:\Users\Public\ffmpeg-arm64, aarch64-pc-windows-msvc, C:\t-a64) (push) Successful in 1m19swindows-msix / package (x64, C:\Users\Public\ffmpeg, x86_64-pc-windows-msvc, C:\t) (push) Successful in 1m13srelease / apple (push) Successful in 12m3sci / web (push) Successful in 1m3sci / docs-site (push) Successful in 1m18sci / rust (push) Successful in 4m52sci / bench (push) Successful in 6m44sandroid / android (push) Successful in 5m9sarch / build-publish (push) Successful in 5m40sdecky / build-publish (push) Successful in 15sdeb / build-publish (push) Successful in 3m20slinux-client-screenshots / screenshots (push) Successful in 2m0sflatpak / build-publish (push) Successful in 4m52srpm / build-publish (43, bazzite, punktfunk-fedora-rpm) (push) Successful in 10m21srpm / build-publish (44, fedora-44, punktfunk-fedora44-rpm) (push) Successful in 10m13sdocker / deploy-docs (push) Successful in 6sdocker / build-push (docs-site, docs-site/Dockerfile, punktfunk-docs) (push) Successful in 5sdocker / build-push (ci, ci/rust-ci.Dockerfile, punktfunk-rust-ci) (push) Successful in 4sdocker / build-push (ci, ci/fedora-rpm.Dockerfile, punktfunk-fedora-rpm) (push) Successful in 4sdocker / build-push (., web/Dockerfile, punktfunk-web) (push) Successful in 5sdocker / build-push (--build-arg FEDORA_VERSION=44, ci, ci/fedora-rpm.Dockerfile, punktfunk-fedora44-rpm) (push) Successful in 6sweb-screenshots / screenshots (push) Successful in 2m59sandroid-screenshots / screenshots (push) Failing after 3m25sreleased this
2026-07-06 18:29:11 +00:00 | 3 commits to main since this releaseWire-compatible with 0.8.0 — existing pairings and clients keep working.
Windows host — native AMF encoder for AMD
Windows AMD hosts now encode through AMD's AMF SDK directly — the same direct-SDK approach the NVIDIA/NVENC path already uses — instead of going through the libavcodec AMF wrapper. The encoder input defaults to zero-copy D3D11, so the captured frame stays on the GPU all the way into the encoder. Intel QSV continues on libavcodec.
A new encode-stall watchdog detects the silent AMF/QSV freeze — where the encoder stops producing frames but the stream stays "up" — and heals it in place, instead of the picture going dead until you reconnect.
Zero-copy GPU capture — now the default
GPU zero-copy capture (dmabuf → GPU → encoder, no CPU round-trip) is now on by default on every Linux backend, including NVIDIA/NVENC. The GPU import (tiled EGL/CUDA and LINEAR Vulkan) runs in a per-capture worker process, so a driver fault on a producer-invalidated dmabuf — a compositor crash mid-map — kills only the worker and the host rebuilds, instead of taking the whole host down. That removed the crash risk that kept NVENC zero-copy opt-in. Graceful CPU fallback is intact, and the old Mutter+NVIDIA force-disable is gone (zero-copy applies there too). Set
PUNKTFUNK_ZEROCOPY=0to opt back out.Display management — custom presets & dedicated game sessions
- Custom display presets. Save named bundles of your display-management policy — keep-alive, topology, conflict handling, identity, layout, and the game-session axis — and apply, edit, or delete them from the web console alongside the built-in presets.
- Game-mode integration + dedicated game sessions. Reliable game-mode ⇄ KDE/GNOME desktop switching on Bazzite/SteamOS (no more stale-node reconnect wedge on a mode switch), plus an opt-in Dedicated mode that boots each library launch into its own headless gamescope at your exact resolution — the game boots straight in, no Steam Big Picture in the way.
- Physical-monitor refresh preserved. Connecting no longer resets an attached monitor's refresh (e.g. 120 → 60 Hz) when the virtual display is added — the physical's real mode is read from a pre-connect snapshot on Mutter, KWin, and Windows.
Clients
- Deliberate disconnect is now signalled (
QUIT_CLOSE_CODE) — when you intentionally quit a session, the host skips the keep-alive linger and tears the virtual display down immediately, instead of holding it open as if you'd dropped. - Wake-on-LAN parity for the Windows and Linux clients — they now send the magic packet, wait until the host is up, and re-key on its new IP, matching the macOS/iOS/Android clients.
- macOS — Control (and the other modifiers) are now resolved by physical key code, fixing modifiers that were silently dropped on some layouts.
- Linux — one gamepad service is shared across app activations, so controllers stay connected across window re-opens.
Android
- Experimental low-latency mode. The decode-latency optimizations — vendor low-latency decoder keys, an async decode loop, game-tagged audio, DSCP marking, a Wi-Fi low-latency lock, and pipeline thread boosts — now ride a "Low-latency mode (experimental)" toggle (default off), so you can opt in where it helps and switch back if anything misbehaves on your device. Off is the pre-existing pipeline, unchanged.
- Launch games from the library and higher bitrate options up to 500 Mbps.
- Auto-wake opt-out — a new "Auto-wake on connect" toggle skips the Wake-on-LAN liveness wait and dials straight through when the host is already up.
- Console-UI button glyphs now default by form factor — gamepad glyphs on phone/tablet, remote glyphs on TV.
- Dropped streams are now surfaced in the UI instead of hanging.
Web console
- Hardened login gate — request throttling, scoped TLS, and a token-derived seal key.
- Clearer topology/identity copy, capped description width, mobile More-nav, and preset-spacing polish.
Security & release engineering
- Secret-bearing third-party CI actions are SHA-pinned, and the web dependency tree was audited, alongside a whole-project security-posture review.
- Host setup docs restructured by distro; configuration docs organized by compositor.
Install
Per-platform install and upgrade instructions: https://punktfunk.unom.io/docs/install — channel details: https://punktfunk.unom.io/docs/channels
The app-store builds (Apple TestFlight, Google Play alpha) are uploaded to their testing tracks and promoted manually.
Downloads