romangg updated this revision to Diff 60655. romangg added a comment.
Refactor Bind the interface on abstract-egl level. Then we can remove the interface stubs throughout the stack. The interface is not created when EGL format extensions are not available or we don't use EGL. Let the impl be the main class creating the interface, the impl is then destroyed from the interface on destruction of the abstract-egl-backend. Set supported formats and modifiers once in the beginning and remember them in the KWayland interface private part. The according KWayland interface has been adapted. This code is still missing support for multi-plane buffers. We need it because while we can filter out multi-plane formats modifiers might add additional planes (for example i915 Y_TILED_CCS) to otherwise single-plane formats. REPOSITORY R108 KWin CHANGES SINCE LAST UPDATE https://phabricator.kde.org/D10750?vs=60482&id=60655 BRANCH dmaBuf REVISION DETAIL https://phabricator.kde.org/D10750 AFFECTED FILES platformsupport/scenes/opengl/CMakeLists.txt platformsupport/scenes/opengl/abstract_egl_backend.cpp platformsupport/scenes/opengl/abstract_egl_backend.h platformsupport/scenes/opengl/drm_fourcc.h platformsupport/scenes/opengl/linux_dmabuf.cpp platformsupport/scenes/opengl/linux_dmabuf.h To: romangg, #kwin, #plasma, davidedmundson, mart, graesslin, fredrik Cc: meven, zzag, romangg, anthonyfieroni, plasma-devel, kwin, LeGast00n, sbergeron, jraleigh, fbampaloukas, GB_2, mkulinski, ragreen, jackyalcine, Pitel, iodelay, bwowk, ZrenBot, ngraham, alexeymin, himcesjf, lesliezhai, ali-mohamed, hardening, jensreuterberg, abetts, sebas, apol, mart