mirror of
https://github.com/games-on-whales/gst-wayland-display.git
synced 2026-10-15 21:02:00 +00:00
[PR #33] [CLOSED] refactor: stop advertising legacy wl_drm when dmabuf v4 feedback is available #34
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#34
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/33
Author: @shrinedogg
Created: 6/11/2026
Status: ❌ Closed
Base:
stable← Head:fix/optional-wl-drm📝 Commits (1)
9aeeb10fix: only advertise legacy wl_drm when dmabuf v4 feedback is unavailable📊 Changes
1 file changed (+40 additions, -14 deletions)
View changed files
📝
wayland-display-core/src/comp/mod.rs(+40 -14)📄 Description
What this changes
wl_drmis a legacy Mesa protocol, superseded byzwp_linux_dmabuf_v1v4 feedback for render-device discovery — Mutter and KWin have already dropped it entirely. Today the compositor advertises bothwl_drmand dmabuf v4 default feedback at the same time, which is redundant.This PR stops advertising
wl_drmwhen the dmabuf v4 default-feedback global is created successfully:create_drm_globalwhen v4 default feedback is available;wl_drmon the dmabuf v3 fallback path, where clients still need it for device discovery;GST_WAYLAND_DISPLAY_ADVERTISE_WL_DRM=1restores the previous behavior.Scope / history (please read)
I originally opened this believing it fixed a nested-wlroots (sway) startup abort —
assert(wl->drm_render_name == NULL)atbackend/wayland/backend.c:311. Per @JBailes's review, that justification does not hold up: wlroots 0.19 already handleswl_drmand dmabuf-v4 feedback coexisting (it destroys thewl_drmglobal and resetsdrm_render_nametoNULLbefore reading the device from the v4main_device), and the logs I attached don't actually contain that assert. Thanks for the careful read.So, taking @JBailes's suggestion to split this up:
wl_drm: inside the session pod, wlroots can't resolve themain_devicedev_id advertised in the v4 feedback (render/wlr_renderer.c:249 drmGetDevices2 failed,backend/wayland/backend.c:166 drmGetDeviceFromDevId failed), and sway later dies onoutput.c:525 Failed to commit output WL-1(no outputs connected). That's a DRM-node-in-namespace issue; I'll investigate and raise it on its own rather than bundling it here.Testing
Build only (
cargo check) — this is purely a protocol-advertisement change and I'm intentionally not attaching a crash-fix claim to it. Happy to add the env hatch behind a different name or default if you'd prefer.🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.