D18570: EGLStream DRM Backend Initial Implementation
Erik Kurzinger <[email protected]>
| Newsgroups | gmane.comp.kde.devel.kwin |
|---|---|
| Message-ID | <[email protected]> |
ekurzinger added a comment.
In D18570#416210 <https://phabricator.kde.org/D18570#416210>, @davidedmundson wrote:
> > And I was not talking in my review comments about superficial stuff,
>
> We're just talking about the use of DrmOutput::present, right?
> We could make a fake DrmBuffer instance round that doesn't do anything - and add some property in DrmBuffer to indicate whether we perform the relevant DRM calls or not. Would you prefer that?
>
> @erik
> One difference missing is that when we change modes we delay it till the DrmOutput::presentLegacy and then call drmModeSetCrtc with the pending buffer handle.
> Right now as far as I can see any type of mode switching is missing.
Yeah, testing a bit more this definitely looks to be a concern that needs to be addressed. For instance setting a transformation for
an output results in pretty major corruption. I think your suggestion sounds like a good idea and I've been working on trying to get
something like it working. I think this will also address Roman's (valid) concerns about the awkward way we're currently bypassing
DrmOutput::present and is probably the best way forward. I'll try to get an amended version of the patch up soon.
In D18570#416403 <https://phabricator.kde.org/D18570#416403>, @davidedmundson wrote:
> I found the source of one of my issues.
>
> src/server/buffer_interface.cpp:152
> if (eglQueryWaylandBufferWL(eglDisplay, buffer, EGL_TEXTURE_FORMAT, &format)) {
> return false
>
> The size attributes using the same method were extracted correctly and from what I can tell this function should still be valid on EGLSreams.
>
> Hardcoding a hack fixed my panel blur and also resolved some update issues it was having.
So, it looks like that attribute was added to the spec a bit later but support for querying it never got implemented in our driver :(
Fortunately, it looks like adding this support won't be too difficult on our end. Unfortunately, doing so appears to break GNOME's
EGLStream support which seems to depend on this query failing to determine if a buffer is an EGLStream-backed one. Fortunately
again, though, this should be fixable on their end with a very minor change so I've reached our to them for their thoughts.
REPOSITORY
R108 KWin
REVISION DETAIL
https://phabricator.kde.org/D18570
To: ekurzinger, davidedmundson, graesslin, #kwin, romangg
Cc: wchilders, ognarb, abrahams, schernikov, guilhermesi, fredrik, cfeck, rapiteanu, romangg, hein, nicolasfella, zzag, kwin, jraleigh, GB_2, mkulinski, ragreen, jackyalcine, Pitel, iodelay, bwowk, ZrenBot, ngraham, alexeymin, lesliezhai, ali-mohamed, hardening, jensreuterberg, abetts, sebas, apol, mart