mirror of
https://github.com/games-on-whales/wolf.git
synced 2026-10-15 13:02:03 +00:00
[PR #396] Add party mode split rendering #441
Labels
No labels
🧠 1 - 🤖 999
AMD
bug
bug
cannot reproduce
documentation
duplicate
easy
enhancement
enhancement
enhancement
fixed?
fixed?
good first issue
hard
help wanted
Intel
invalid
LXC
medium
moonlight-protocol
Multi GPU
nixos
not a bug
nvidia
pull-request
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
games-on-whales/wolf#441
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/games-on-whales/wolf/pull/396
Author: @JBailes
Created: 4/20/2026
Status: 🔄 Open
Base:
fix/amd-dma-buf-negotiation← Head:codex/party-mode-split-render📝 Commits (9)
65e0d7ffix: intersect waylanddisplaysrc and vapostproc DMA-BUF capsdff853efix: query waylanddisplaysrc DMA formats at runtime to intersect with vapostproc401e840style: wrap over-length log line to satisfy clang-format14ec21edocker: pin gst-interpipe to context-query-forwarding fix347e584feat: 10-bit SDR streaming (HEVC/AV1 Main10)bc652a8test: update AV1 ServerCodecModeSupport to protocol-correct valuebbfda44feat: bump config to v8 and migrate so existing installs get 10-bit encodersd48be72feat: add party mode split rendering788890bfeat: GPU-aware party split compositor + v9 config📊 Changes
41 files changed (+3205 additions, -152 deletions)
View changed files
📝
.gitignore(+1 -0)📝
docker/gstreamer.Dockerfile(+4 -0)📝
src/core/src/core/gstreamer.hpp(+1 -47)📝
src/core/src/core/virtual-display.hpp(+7 -1)📝
src/core/src/platforms/linux/virtual-display/gst-wayland-display.cpp(+59 -3)📝
src/core/src/platforms/unknown/no-virtual-display.cpp(+2 -2)📝
src/moonlight-protocol/moonlight.cpp(+16 -4)📝
src/moonlight-protocol/moonlight/protocol.hpp(+3 -1)📝
src/moonlight-server/CMakeLists.txt(+1 -1)📝
src/moonlight-server/api/api.hpp(+15 -1)📝
src/moonlight-server/api/endpoints.cpp(+159 -9)📝
src/moonlight-server/api/unix_socket_server.cpp(+23 -1)📝
src/moonlight-server/control/control.cpp(+7 -6)📝
src/moonlight-server/control/control.hpp(+7 -2)📝
src/moonlight-server/control/input_handler.cpp(+8 -9)📝
src/moonlight-server/events/events.hpp(+24 -0)📝
src/moonlight-server/platforms/hw_unknown.cpp(+12 -2)📝
src/moonlight-server/rest/endpoints.hpp(+3 -1)📝
src/moonlight-server/rtsp/commands.hpp(+10 -4)📝
src/moonlight-server/rtsp/net.hpp(+3 -2)...and 21 more files
📄 Description
What changed
Adds 2-seat party-mode split rendering to Wolf, layered on top of #419's zero-copy / gst-interpipe context-sharing work.
fix/amd-dma-buf-negotiation) — this PR now targets #419, notstable, because the GPU-aware split compositor depends on #419's gst-interpipeGST_QUERY_CONTEXTforwarding (so VA/CUDA elements share a context across the interpipe boundary) and its generic-DMABuf runtime negotiation.vapostproc+vacompositor(VAMemory)cudaconvertscale+cudacompositor(CUDAMemory)videoconvertscale+compositorThe old unconditional system-memory
videoconvertscalecould not ingest CUDAMemory/DMABuf at all, so it would have broken zero-copy streaming for every GPU session; the per-vendor sources fix that.version <= 8) so existing v8 (10-bit) installs are re-migrated and pick up the party pipeline.config.v9.tomlcarries the software party source plusdefault_source_va/default_source_cuda;configTOMLselects by vendor.display_modeviarender_display_mode.parse_session_id), preserve producer caps features on resize, dedup the two-seat geometry.Verification
cmakebuild of wolf (full Docker image) green against #419's pinned gst-interpipe.vacompositor) and CUDA (cudacompositor) split-compositor chains validated standalone withgst-launchon real hardware — both negotiate the split entirely in GPU memory (no host round-trip), reach PLAYING, no caps errors.Depends on
fix/amd-dma-buf-negotiation) — base branch.games-on-whales/wolf-ui#12,games-on-whales/gst-wayland-display#27(companion changes).🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.