Add EGLStreams support for DRM backend #2769
Conversation
When you mention the fate of the PR, do you intend on maintaining this as a patch if it doesn't get merged? Even if it does get merged: are you going to maintain the EGLStreams support? Because I'm sure the contributors here aren't going to want to do that |
I use sway in my everyday activity and currently have no plans to change GPU at an early date (I'm not a gamer of any kind), so in terms of patch maintaining regular rebases are going to be done. |
Wouldn't the future pure Vulkan backend support Nvidia too? Or am I misunderstanding how it works? |
Lets get it out of the way and say that this is definitely not going to be merged. Our policy for going out of our way for proprietary drivers is clear. But even putting that aside, EGLStreams are incompatible with future plans we have for wlroots. Even now, this PR contains what I would consider dirty hacks, and the hacks are only going to get dirtier and more hacky as wlroots changes. There is obviously nothing stopping you from maintaining your own fork; it's free and open source software after all, but I do believe it's not going to be an easy job if you're going to track upstream. |
@ascent12 Could you please elaborate on what the future plans are? |
@ascent12 Fair point. The only credit I ask for is not to close this PR but mark it with some label, i.e. 'wont merge' or whatever that suits better, so it could be easily found if someone's interested. |
@danvd Where to properly report issues? For example, I haven't been able to produce output in Firefox and SDL fails, same things do work in respective Plasma/GNOME Wayland sessions. |
@mesufesu You can open an issue in my fork |
First of all: That's pretty cool. I thought it'd need Erik Kurzinger or someone else sponsored by Nvidia.
Thanks! |
@solarkraft As for two other questions:
|
344878d
to
dcccbc8
Compare
Thanks for your work. Sorry, I'm going to close this PR for the following reasons:
I don't think closing the PR will affect its discoverability. You're welcome to maintain a fork of wlroots with these patches, of course. |
Supported: 1. Damage tracking 2. EGLStreams buffer allocator 3. VT switching, sleep/wakeup restoring 4. Client's wayland GL texture import 5. Multi-out Known issues 1. Absence of Multi-GPU support. Due to lack of dma-buf (Nvidia's WIP) 2. Screenshots through dma-buf (the same reason). TODO with another approach if possible 3. XWayland acceleration support (Nvidia's WIP) 4. mpv with gpu -vo produces no output. Use wlshm Note: All dma-buf extensions are disabled for EGLStreams mode. Else chrome/chromium and other apps relying on them fail to start. TIP: run mozilla with MOZ_ENABLE_WAYLAND=1, for chrome enable ozone with wayland. EGLStreams concepts are much like MacOS IOSurfaces. The latter is proved to be reliable solution for frame buffer sharing/streaming.
Supported:
Known issues
approach if possible
Note: All dma-buf extensions are disabled for EGLStreams mode.
Else chrome/chromium and other apps relying on them fail to start.
TIP: run mozilla with MOZ_ENABLE_WAYLAND=1, for chrome enable ozone with
wayland.
EGLStreams concepts are much like MacOS IOSurfaces.
The latter is proved to be reliable solution for frame buffer sharing/streaming.
Last note:
I'm aware about linux graphics devs politics regarding EGLStreams and have no illusion about the fate of this PR.
This is mainly for those who, like me, want to shake off dust from a stale nvidia GPUs.
P.S. I'm open to any issues and will try to add support for missing features if the proposed functionality will be merged.