mirror of
https://github.com/games-on-whales/gst-wayland-display.git
synced 2026-10-15 21:02:00 +00:00
[PR #35] [CLOSED] NV12 in compositor + late dmabuf→CUDA #38
Labels
No labels
enhancement
enhancement
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
games-on-whales/gst-wayland-display#38
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/gst-wayland-display/pull/35
Author: @JBailes
Created: 6/18/2026
Status: ❌ Closed
Base:
feat/await-listener← Head:feat/nv12-output📝 Commits (10+)
7bbf357feat(waylandsrc): add opt-in nv12 property (scaffold)dc5fb05feat(core): GLES RGB->NV12 conversion (Nv12Target)816ea4bfeat(core): wire NV12 output into the frame path99f65b9feat(waylandsrc): advertise NV12 DMABuf when nv12 is enabled1095007fix(core): RGB->NV12 conversion via raw GLES2 (unblocks radv)62648c1feat: per-GPU NV12 modifier (LINEAR/AMD, i915 Y-tiled/Intel)50456dcfeat(nv12): unify RGB->NV12 converter across Intel/AMD/Nvidiaf96d0b6fix(nv12): allocate only render-capable plane modifiers9bd4742feat(cuda): late NV12 dmabuf->CUDA conversiona493139feat(cuda): dmabuftocuda element for late NV12 dmabuf->CUDA upload📊 Changes
13 files changed (+1422 additions, -29 deletions)
View changed files
➕
.github/workflows/rust-test.yml(+43 -0)📝
gst-plugin-wayland-display/Cargo.toml(+1 -1)➕
gst-plugin-wayland-display/src/dmabuftocuda/imp.rs(+314 -0)➕
gst-plugin-wayland-display/src/dmabuftocuda/mod.rs(+17 -0)📝
gst-plugin-wayland-display/src/lib.rs(+4 -0)📝
gst-plugin-wayland-display/src/waylandsrc/imp.rs(+300 -20)📝
wayland-display-core/build.rs(+0 -2)📝
wayland-display-core/src/comp/mod.rs(+15 -3)📝
wayland-display-core/src/utils/allocator/cuda/mod.rs(+117 -0)📝
wayland-display-core/src/utils/allocator/mod.rs(+91 -0)📝
wayland-display-core/src/utils/mod.rs(+1 -0)➕
wayland-display-core/src/utils/nv12.rs(+509 -0)📝
wayland-display-core/src/utils/renderer/mod.rs(+10 -3)📄 Description
Closes #7. Stacks on #34.
Compositor does RGB→NV12 itself and outputs an encoder-ready NV12 DMABuf. Drops the downstream converter.
Same DMABuf path on all three vendors. Both planes R8 -> UV interleaves Cb/Cr by
gl_FragCoordparity (Nvidia has no GR88 render modifier). Planes allocated with the GPU's own render modifier. Extends to P010 for 10-bit/HDR.dmabuftocuda(cuda feature): imports the NV12 DMABuf to CUDAMemory via EGLImage, late, at the encoder. No glupload.Tested, 720p, live client:
nv12 ! vapostproc ! vah265enc— 270/270nv12 ! vapostproc ! vah265enc— 269/269nv12 ! dmabuftocuda ! nvh265enc— 270/270Known: non-fatal
g_object_unref(G_IS_OBJECT)warning at teardown, in gstreamer's element-context-cache. Chasing.🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.