fangorn/sunshine-qemu
public
ref:main
Phase 3: upstream to LizardByte Sunshine, QEMU, libvirt #8
open
Opened by cole.christensen@gmail.com
Links
Phase 3: upstream to LizardByte Sunshine, QEMU, and libvirt
Parent: #1. Depends on #3, #4, #5 minimum; #6 and #7 are nice to have.
Rule: upstream AGENTS.md says agents must never create issues or PRs in the LizardByte GitHub org. The human owner submits upstream. The agent’s job is to get the branch ready.
Tasks
Sunshine (LizardByte)
- Rebase the QEMU work onto current upstream
master(git fetch upstream) as a clean series: build flag + vendored XML/codegen → session → capture → audio → input → gamepad → docs. Each commit builds and passes tests. - Remove fork-only files from the series (
JOURNAL.md, Anvil CI config). - Run upstream’s checks locally: clang-format, doxygen build (fails on undocumented symbols),
test_sunshinewith coverage (100% of changed lines per AGENTS.md), config-consistency and locale-consistency integration tests (en-only localization). - Write the proposal text for the human: motivation, no guest agent, zero-copy vGPU case, maintenance cost, test strategy. Suggest opening a GitHub Discussion or feature request before a large PR.
- Put the branch where the human can open the GitHub PR from their own GitHub fork; the Anvil repo is not a GitHub remote.
QEMU
- Collect D-Bus display gaps found in #2–#7: frame-pacing/vsync signal, missing damage for DMABUF, gamepad, horizontal scroll button, anything else. Write each up as a short proposal in this issue.
- Draft patches following QEMU’s process (git send-email to qemu-devel,
Signed-off-by, the ui/dbus maintainer Marc-André Lureau in Cc). The human sends them.
libvirt / virt-manager
- Based on #6 findings: docs patch or feature request describing Sunshine as a consumer of
<graphics type='dbus'/>.
Done when
The upstream-ready branch exists on Anvil (upstream/sunshine-qemu-backend), proposal texts are attached to this issue, and the human has what they need to submit. PR Closes #8 (the PR to our main contains only the docs/proposal files, if any).