chore: consolidate parallel-session WIP (HOLD — do not push)
Local snapshot of intermingled in-flight work, committed to unblock the encode
refactor (a clean ffmpeg_win.rs for the vbv-dedup follow-on). These hunks span
the same files and can't be cleanly split here; the commit bundles three
distinct workstreams that each belong in their own PR:
- logging rework (~43 files: level re-tiering, structured fields, `?e`,
hot-path flood latches)
- conflicting-host detection (detect.rs + detect/{linux,windows}.rs + wiring
in main.rs/mgmt.rs/Cargo.toml/docs/packaging)
- standby-sink DWM-stall attribution (windows/display_events.rs + capture/
vdisplay wiring)
NOT verified as a combination. NOT to be pushed until the refactor is done and
these are re-verified and reorganized into their proper per-workstream PRs.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -86,6 +86,15 @@ hosts from another machine with `punktfunk-probe --discover`. Where multicast do
|
||||
Docker/VLAN setups), pass `--no-mdns` (or set `PUNKTFUNK_MDNS=0`) and add the host in the client by
|
||||
address instead.
|
||||
|
||||
## `detect-conflicts`
|
||||
|
||||
`punktfunk-host detect-conflicts` reports other Moonlight-compatible hosts (Sunshine, Apollo, and
|
||||
forks) installed or running on this machine. Running one alongside Punktfunk is **unsupported** —
|
||||
they fight over the same ports and virtual-display driver. Prints what it found and exits **1** if
|
||||
any conflict exists, **0** if clean (so installers and scripts can gate on it). The host also runs
|
||||
this check at `serve` startup and surfaces it in the logs, tray, and — on Windows — the installer.
|
||||
See [Troubleshooting → another streaming host is installed](/docs/troubleshooting#another-streaming-host-sunshine-apollo--is-installed).
|
||||
|
||||
## Environment
|
||||
|
||||
Most behaviour (compositor, video source, input backend, zero-copy) is set in
|
||||
|
||||
@@ -3,6 +3,30 @@ title: Troubleshooting
|
||||
description: Common problems setting up or using a punktfunk host, and how to fix them.
|
||||
---
|
||||
|
||||
## Another streaming host (Sunshine, Apollo, …) is installed
|
||||
|
||||
Punktfunk is a Moonlight-compatible host. So are **Sunshine** and its forks (**Apollo**,
|
||||
**Vibeshine**, **Vibepollo**, **LuminalShine**, …). Running one of them **at the same time** as
|
||||
Punktfunk is **not supported**: they bind the *same* GameStream ports (47984/47989 and
|
||||
47998–48010, plus a web UI on 47990 that collides with Punktfunk's management API), advertise the
|
||||
*same* `_nvstream` mDNS name, and often install a *conflicting virtual-display driver*. The result
|
||||
is `address already in use` errors, pairing that silently fails, the wrong host answering a client,
|
||||
and capture/display glitches.
|
||||
|
||||
- Punktfunk warns about this automatically: the host logs it at startup (visible in the web
|
||||
console's **Logs** tab and the system tray tooltip), and the Windows installer warns before
|
||||
installing. To check on demand, run:
|
||||
|
||||
```
|
||||
punktfunk-host detect-conflicts
|
||||
```
|
||||
|
||||
It lists any conflicting host found (installed or running) and exits non-zero if there is one.
|
||||
- **Fix:** stop and uninstall the other host, then start Punktfunk — e.g. stop the service
|
||||
(`sudo systemctl disable --now sunshine` / on Windows `sc stop SunshineService`) and uninstall it.
|
||||
If you only want to try Punktfunk without removing the other host, at least make sure the other
|
||||
host is fully **stopped** first (they cannot both run at once).
|
||||
|
||||
## The host isn't found on the network
|
||||
|
||||
- Make sure the host is actually running (`systemctl --user status punktfunk-host`, or you see it
|
||||
|
||||
Reference in New Issue
Block a user