fangorn/sunshine-qemu
public
ref:6d4a64865e8bfc1c94030797a8fa97b437d6f77b
feat(linux): let an app name the VM it streams
One Sunshine can now offer several VMs: an app in apps.json carries "qemu-vm", and launching it streams that
VM. A client pairs once, and there's one set of ports and one name on the network, instead of an instance per
VM. Apps without the field stream the configured VM, so nothing changes for a single-VM install.
This fits how Sunshine is already built: capture, audio and input are made per streaming session and read the
address when they start, so choosing the VM at launch, before the display opens, is enough. One VM streams at
a time, because Sunshine runs one app at a time; two at once still needs an instance each.
The QEMU backend also stops requiring a reachable VM at startup. It used to disable itself for the process
lifetime when no VM answered, which is wrong when the VM is still booting, and impossible to satisfy when
apps name different VMs.
Adds the SteamOS-style guest's build and run scripts: Bazzite's deck image is a bootc image, so it builds
into a qcow2 with no installer, and boots UEFI.
REQ-DEP-003
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BPNw4PCgkEfhyCjQT19wsb
SHA:
6d4a64865e8bfc1c94030797a8fa97b437d6f77b
Author:
Cole Christensen <cole.christensen@gmail.com>
Date:
2026-09-17 16:05
Parents:
c0b8a0a
12 files changed
+292
-6
| Type | ||
|---|---|---|
|
|
docs/qemu.md | +25 −0 |
|
||
|
|
src/nvhttp.cpp | +18 −0 |
|
||
|
|
src/platform/linux/misc.cpp | +6 −2 |
|
||
|
|
src/platform/linux/qemu/audio.cpp | +1 −1 |
|
||
|
|
src/platform/linux/qemu/capture.cpp | +3 −3 |
|
||
|
|
src/platform/linux/qemu/session.cpp | +19 −0 |
|
||
|
|
src/platform/linux/qemu/session.h | +19 −0 |
|
||
|
|
src/process.cpp | +5 −0 |
|
||
|
|
src/process.h | +1 −0 |
|
||
|
|
tests/e2e/qemu/steamos/build_steamos.sh | +85 −0 |
|
||
|
|
tests/e2e/qemu/steamos/run_steamos.sh | +67 −0 |
|
||
|
|
tests/unit/platform/linux/qemu/test_capture.cpp | +43 −0 |
|
||