<table><tr><td style="">subdiff created this revision.<br />subdiff added a project: KWin.<br />Restricted Application added a subscriber: 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/D5060" rel="noreferrer">View Revision</a></tr></table><br /><div><strong>REVISION SUMMARY</strong><div><p>Currently the EGL surface buffer is released while the buffer is still being scanned out to the display. This is not the correct behavior, since it should be only released after the buffer is not scanned out anymore  (i.e. the next buffer was page flipped).</p>

<p>The only caveat is, that in order to remove an output correctly, we need to release the buffer manually now before the EGL surface is destroyed.</p></div></div><br /><div><strong>TEST PLAN</strong><div><p>Tested in non atomic mode (atomic mode is obsolete right now until my other WIP patch is ready to be merged): Login, logout, suspend, normal use.</p></div></div><br /><div><strong>REPOSITORY</strong><div><div>R108 KWin</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D5060" rel="noreferrer">https://phabricator.kde.org/D5060</a></div></div><br /><div><strong>AFFECTED FILES</strong><div><div>plugins/platforms/drm/drm_output.cpp<br />
plugins/platforms/drm/drm_output.h<br />
plugins/platforms/drm/egl_gbm_backend.cpp</div></div></div><br /><div><strong>To: </strong>subdiff, KWin<br /><strong>Cc: </strong>kwin, plasma-devel, progwolff, lesliezhai, ali-mohamed, hardening, jensreuterberg, abetts, sebas, apol<br /></div>