<table><tr><td style="">graesslin created this revision.<br />graesslin added reviewers: KWin, Plasma on Wayland.<br />Restricted Application added subscribers: kwin, plasma-devel.<br />Restricted Application added projects: Plasma on Wayland, KWin.</td><a style="text-decoration: none; padding: 4px 8px; margin: 0 8px 8px; float: right; color: #464C5C; font-weight: bold; border-radius: 3px; background-color: #F7F7F9; background-image: linear-gradient(to bottom,#fff,#f1f0f1); display: inline-block; border: 1px solid rgba(71,87,120,.2);" href="https://phabricator.kde.org/D1857" rel="noreferrer">View Revision</a></tr></table><br /><div><strong>REVISION SUMMARY</strong><div><p>To use eglCreateImageKhr for an X11 pixmap we need an EGLDisplay created<br />
for the same XDisplay as the X11 pixmap. This means if we created an<br />
EGLDisplay for a GBM device, we are not allowed to load a texture from<br />
the X11 pixmap and can result in a crash in the driver.</p>

<p>Similar in the nested X11 setup the EGLDisplay is created for the<br />
rendering window, but the X11 pixmaps are from the Xwayland server KWin<br />
started. They don't belong to the same windowing system.</p>

<p>This change addresses this problem by moving the loading of X11 pixmaps<br />
from AbstractEglTexture to EglTexture of the EglOnX11Backend. Thus for<br />
any usage on a non X11 platform we cannot hit the code path any more.<br />
In addition the nested X11 platform can indicate that it doesn't support<br />
it and thus also doesn't go through the code path.</p></div></div><br /><div><strong>TEST PLAN</strong><div><p>Tested standalone and nested X11 platform</p></div></div><br /><div><strong>REPOSITORY</strong><div><div>rKWIN KWin</div></div></div><br /><div><strong>BRANCH</strong><div><div>texture-from-pixmap-x11-only</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D1857" rel="noreferrer">https://phabricator.kde.org/D1857</a></div></div><br /><div><strong>AFFECTED FILES</strong><div><div>abstract_egl_backend.cpp<br />
abstract_egl_backend.h<br />
plugins/platforms/x11/common/eglonxbackend.cpp<br />
plugins/platforms/x11/common/eglonxbackend.h<br />
plugins/platforms/x11/windowed/egl_x11_backend.cpp</div></div></div><br /><div><strong>EMAIL PREFERENCES</strong><div><a href="https://phabricator.kde.org/settings/panel/emailpreferences/" rel="noreferrer">https://phabricator.kde.org/settings/panel/emailpreferences/</a></div></div><br /><div><strong>To: </strong>graesslin, KWin, Plasma on Wayland<br /><strong>Cc: </strong>plasma-devel, kwin, hardening, sebas<br /></div>