KDE Plasma: the compositor side for spatial displays on Linux #1903
Replies: 1 comment 1 reply
|
Hi Daniel, thank you. STEREO3D.md is a clear read, and you've found the right seam. On GNOME a client can't take part in the compositor's move, so we built the compositor side as a GNOME Shell extension. It publishes window geometry, and during a drag it corrects each step onto a table of phase-clean positions that the app supplies. The interface is One principle shapes how it fits together (ADR-033): geometry crosses the boundary, phase never does. On a tracked autostereoscopic panel the interlace depends on per-unit calibration and on where the viewer is, so it stays inside the display vendor's weaver. The compositor never computes or sees the lens lattice. It receives a per-drag table of allowed displacements, built from the vendor's own snap answer, and applies it. So the weave isn't a compositor filter. What KWin can own is placement, geometry, and getting the woven surface to the screen 1:1. What would help most:
If this works on two compositors, it becomes a candidate for a proper Wayland protocol instead of D-Bus, and KDE would be the natural place to start that. On your questions: the DisplayXR runtime is open source (BSL-1.0), and so is the Leia plug-in (Apache-2.0). Each vendor's plug-in builds against that vendor's SDK under its terms, and weaving needs the vendor's runtime on the device. Leia's Linux runtime isn't publicly released yet; I'll let you know when it is. You don't need it to start. The plug-in's default build uses a stub weaver, and A thought for later: KWin could hand its composed full side-by-side frame for a 3D output to the runtime as one full-screen session, with the vendor weaving it. That would make "DisplayXR" one of your output filters, covering any display with a vendor plug-in. Does that fit your design? If you open an issue in displayxr-runtime for item 1, we'll review it with you. |
Uh oh!
There was an error while loading. Please reload this page.
Hi @dfattal and the DisplayXR team,
I'm Daniel Campos Ramos, an electrical engineer in Brazil.
I build Sparky Stereo OS, a stereo 3D edition of SparkyLinux with KDE Plasma, where the compositor itself understands stereo.
I read your Linux roadmap with real interest, especially the drag phase-lock work and the note that a client cannot hook Mutter's window moves.
On Plasma the compositor can do that part.
Our KWin takes stereo surfaces that programs declare as full side by side, left eye first, and converts them for each output: 3D TVs over HDMI, and red-cyan glasses on any screen.
A spatial display would be one more output of that kind, and since KWin moves every window itself, it can place a window's origin on the lens phase before the frame is drawn, for X11 and Wayland applications alike.
What we can offer: the KWin side for DisplayXR on Plasma, tested on our bench (virtual 3D outputs in KWin and in VKMS), packaged in our edition, and offered upstream to KDE.
What would help us: knowing whether the srSDK Linux weave can be used by open-source integrators, and a way to test on a real panel.
Our desktop's stereo design in one page: https://invent.kde.org/danielcamposramos/kwin/-/blob/stereo3d/STEREO3D.md
This message was written with AI assistance for clarity.
All reactions