<table><tr><td style="">zzag added a comment.
</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/D27788">View Revision</a></tr></table><br /><div><div><blockquote style="border-left: 3px solid #8C98B8;
color: #6B748C;
font-style: italic;
margin: 4px 0 12px 0;
padding: 8px 12px;
background-color: #F8F9FC;">
<div style="font-style: normal;
padding-bottom: 4px;">In <a href="https://phabricator.kde.org/D27788#628469" style="background-color: #e7e7e7;
border-color: #e7e7e7;
border-radius: 3px;
padding: 0 4px;
font-weight: bold;
color: black;text-decoration: none;">D27788#628469</a>, <a href="https://phabricator.kde.org/p/apol/" style="
border-color: #f1f7ff;
color: #19558d;
background-color: #f1f7ff;
border: 1px solid transparent;
border-radius: 3px;
font-weight: bold;
padding: 0 4px;">@apol</a> wrote:</div>
<div style="margin: 0;
padding: 0;
border: 0;
color: rgb(107, 116, 140);"><p>Why too late? everything works, at least in practice.</p></div>
</blockquote>
<p>Yes, but it's possible to call aboutToStartPainting() after rendering something, which conceptually doesn't seem right.</p>
<p>Ideally, we would determine the damage region for the next frame by just running prePaintScreen() hooks, but we can't really do that because we need also to run prePaintWindow() hooks, which means we need to run some parts of paintSimpleScreen() and paintGenericScreen().</p>
<blockquote style="border-left: 3px solid #a7b5bf; color: #464c5c; font-style: italic; margin: 4px 0 12px 0; padding: 4px 12px; background-color: #f8f9fc;"><p>We might want to add some API to make sure effects don't paint before they're allowed to but just resigning to have a worse throughput to be able to paint on prepaint feels wrong.</p></blockquote>
<p>No, we don't need such an API. When a pre-paint hook is called, an effect is allowed only to schedule repaints or update its internal state.</p>
<blockquote style="border-left: 3px solid #a7b5bf; color: #464c5c; font-style: italic; margin: 4px 0 12px 0; padding: 4px 12px; background-color: #f8f9fc;"><p>I don't know what proof looks here.</p></blockquote>
<p>Heh, it would be a patch where we call eglSetDamageRegionKHR() before any rendering starts and after we ran prePaintScreen() and prePaintWindow() hooks. :-)</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/D27788">https://phabricator.kde.org/D27788</a></div></div><br /><div><strong>To: </strong>apol, KWin, Plasma: Mobile<br /><strong>Cc: </strong>mwolff, zzag, davidedmundson, kwin, Orage, cacarry, LeGast00n, The-Feren-OS-Dev, cblack, jraleigh, zachus, fbampaloukas, GB_2, mkulinski, ragreen, jackyalcine, iodelay, crozbo, bwowk, ZrenBot, ngraham, alexeymin, himcesjf, lesliezhai, ali-mohamed, hardening, romangg, jensreuterberg, abetts, sebas, apol, ahiemstra, mart<br /></div>