[PR #8] [MERGED] WIP: implement DMABuf support #13

Closed
opened 2026-10-15 12:47:29 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/games-on-whales/gst-wayland-display/pull/8
Author: @ABeltramo
Created: 11/21/2024
Status: ✅ Merged
Merged: 6/17/2025
Merged by: @ABeltramo

Base: stable ← Head: dev-dmabuf


📝 Commits (10+)

  • f7ade5a refactor: separated renderer from allocator and abstracted code
  • cd37f65 feat: implemented GBM+DMA buffer allocator
  • 5f6cca4 test: added test for buffer implementation
  • 10f2a86 fix: properly render into DMA buffer
  • 52956c9 fix: export buffer as Gstreamer DmaBuf
  • 5b5a800 fix: correctly pass raw handles sizes to Gstreamer, support multiple planes
  • 82fb62a feat: abstracted out video info, passing the right format from caps negotiation
  • d34746e feat: implemented Gstreamer caps negotiation with DMA formats and modifiers
  • 1ac93b7 fix: properly expose all supported formats
  • 67ecd49 fix: added Gstreamer buffer metadata

📊 Changes

19 files changed (+1288 additions, -479 deletions)

View changed files

📝 Cargo.lock (+142 -147)
📝 Cargo.toml (+2 -2)
📝 README.md (+18 -3)
📝 c-bindings/Cargo.toml (+1 -1)
📝 c-bindings/src/capi.rs (+1 -1)
📝 gst-plugin-wayland-display/Cargo.toml (+4 -2)
📝 gst-plugin-wayland-display/src/lib.rs (+1 -1)
📝 gst-plugin-wayland-display/src/waylandsrc/imp.rs (+262 -100)
📝 gst-plugin-wayland-display/src/waylandsrc/mod.rs (+1 -1)
📝 wayland-display-core/Cargo.toml (+5 -0)
📝 wayland-display-core/src/comp/mod.rs (+122 -107)
📝 wayland-display-core/src/comp/rendering.rs (+36 -70)
📝 wayland-display-core/src/lib.rs (+74 -22)
➕ wayland-display-core/src/utils/allocator/mod.rs (+513 -0)
📝 wayland-display-core/src/utils/mod.rs (+17 -0)
➕ wayland-display-core/src/utils/renderer/mod.rs (+52 -0)
➕ wayland-display-core/src/utils/video_info.rs (+34 -0)
📝 wayland-display-core/src/wayland/handlers/compositor.rs (+2 -22)
📝 wayland-display-core/src/wayland/protocols/wl_drm.rs (+1 -0)

📄 Description

So that we can finally support zero copy pipelines! There's a blog post about it too!

Fixes #3


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/games-on-whales/gst-wayland-display/pull/8 **Author:** [@ABeltramo](https://github.com/ABeltramo) **Created:** 11/21/2024 **Status:** ✅ Merged **Merged:** 6/17/2025 **Merged by:** [@ABeltramo](https://github.com/ABeltramo) **Base:** `stable` ← **Head:** `dev-dmabuf` --- ### 📝 Commits (10+) - [`f7ade5a`](https://github.com/games-on-whales/gst-wayland-display/commit/f7ade5ace6d7adbeaef0c8b96ebe2c43c376fb8c) refactor: separated renderer from allocator and abstracted code - [`cd37f65`](https://github.com/games-on-whales/gst-wayland-display/commit/cd37f65ee057d9e3ec37c165662cb5ddc6a0123d) feat: implemented GBM+DMA buffer allocator - [`5f6cca4`](https://github.com/games-on-whales/gst-wayland-display/commit/5f6cca44398f21284c56d81be67a58a1aa706d03) test: added test for buffer implementation - [`10f2a86`](https://github.com/games-on-whales/gst-wayland-display/commit/10f2a865d97411d12e1379a1cfb6e3876d46d071) fix: properly render into DMA buffer - [`52956c9`](https://github.com/games-on-whales/gst-wayland-display/commit/52956c970c51811906b26d329cd3506a3bd9b26e) fix: export buffer as Gstreamer DmaBuf - [`5b5a800`](https://github.com/games-on-whales/gst-wayland-display/commit/5b5a80039aa7474a8a58d8764e3b5b707aaa82f3) fix: correctly pass raw handles sizes to Gstreamer, support multiple planes - [`82fb62a`](https://github.com/games-on-whales/gst-wayland-display/commit/82fb62aee69adee54627aaad45749ada7adfe4ec) feat: abstracted out video info, passing the right format from caps negotiation - [`d34746e`](https://github.com/games-on-whales/gst-wayland-display/commit/d34746ebc3f5b185e65875d8708835ede724f77f) feat: implemented Gstreamer caps negotiation with DMA formats and modifiers - [`1ac93b7`](https://github.com/games-on-whales/gst-wayland-display/commit/1ac93b7857d3836d8dc6aec40ace9b76c7dd8cd5) fix: properly expose all supported formats - [`67ecd49`](https://github.com/games-on-whales/gst-wayland-display/commit/67ecd49a5ef0469633c9c3a70e4a6d6a0f5fb2c5) fix: added Gstreamer buffer metadata ### 📊 Changes **19 files changed** (+1288 additions, -479 deletions) <details> <summary>View changed files</summary> 📝 `Cargo.lock` (+142 -147) 📝 `Cargo.toml` (+2 -2) 📝 `README.md` (+18 -3) 📝 `c-bindings/Cargo.toml` (+1 -1) 📝 `c-bindings/src/capi.rs` (+1 -1) 📝 `gst-plugin-wayland-display/Cargo.toml` (+4 -2) 📝 `gst-plugin-wayland-display/src/lib.rs` (+1 -1) 📝 `gst-plugin-wayland-display/src/waylandsrc/imp.rs` (+262 -100) 📝 `gst-plugin-wayland-display/src/waylandsrc/mod.rs` (+1 -1) 📝 `wayland-display-core/Cargo.toml` (+5 -0) 📝 `wayland-display-core/src/comp/mod.rs` (+122 -107) 📝 `wayland-display-core/src/comp/rendering.rs` (+36 -70) 📝 `wayland-display-core/src/lib.rs` (+74 -22) ➕ `wayland-display-core/src/utils/allocator/mod.rs` (+513 -0) 📝 `wayland-display-core/src/utils/mod.rs` (+17 -0) ➕ `wayland-display-core/src/utils/renderer/mod.rs` (+52 -0) ➕ `wayland-display-core/src/utils/video_info.rs` (+34 -0) 📝 `wayland-display-core/src/wayland/handlers/compositor.rs` (+2 -22) 📝 `wayland-display-core/src/wayland/protocols/wl_drm.rs` (+1 -0) </details> ### 📄 Description So that we can finally support zero copy pipelines! There's a [blog post](https://abeltra.me/blog/road-to-zero-copy-in-wolf/) about it too! Fixes #3 --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
bsakaguchi 2026-10-15 12:47:29 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
games-on-whales/gst-wayland-display#13
No description provided.