<div dir="ltr">Do you think this why I've been seeing lots of weird flashing in Chrome recently?<div><br></div><div>I'll test this patch out tonight and give you my tested by if you like</div></div><br><div class="gmail_quote"><div dir="ltr">On Thu, 11 Oct 2018 at 09:27 Michel Dänzer <<a href="mailto:michel@daenzer.net">michel@daenzer.net</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
Any feedback? Without negative feedback, I'll push this fix tomorrow.<br>
<br>
<br>
On 2018-10-02 4:44 p.m., Michel Dänzer wrote:<br>
> From: Michel Dänzer <<a href="mailto:michel.daenzer@amd.com" target="_blank">michel.daenzer@amd.com</a>><br>
> <br>
> In that case, we have to wait for the fence to synchronize with the<br>
> corresponding drawing we triggered in the X server.<br>
> <br>
> Fixes incorrect display with the i965 and some applications, e.g.<br>
<br>
BTW, I've locally fixed this to say "the i965 driver".<br>
<br>
<br>
> solvespace.<br>
> <br>
> Bugzilla: <a href="https://bugs.freedesktop.org/108097" rel="noreferrer" target="_blank">https://bugs.freedesktop.org/108097</a><br>
> Fixes: aefac10fecc9 "loader/dri3: Only wait for back buffer fences in<br>
> dri3_get_buffer"<br>
> Tested-by: Sergii Romantsov <<a href="mailto:sergii.romantsov@globallogic.com" target="_blank">sergii.romantsov@globallogic.com</a>><br>
> Signed-off-by: Michel Dänzer <<a href="mailto:michel.daenzer@amd.com" target="_blank">michel.daenzer@amd.com</a>><br>
> ---<br>
> src/loader/loader_dri3_helper.c | 7 +++++--<br>
> 1 file changed, 5 insertions(+), 2 deletions(-)<br>
> <br>
> diff --git a/src/loader/loader_dri3_helper.c b/src/loader/loader_dri3_helper.c<br>
> index f641a34e6d1..1981b5f0515 100644<br>
> --- a/src/loader/loader_dri3_helper.c<br>
> +++ b/src/loader/loader_dri3_helper.c<br>
> @@ -1736,6 +1736,7 @@ dri3_get_buffer(__DRIdrawable *driDrawable,<br>
> struct loader_dri3_drawable *draw)<br>
> {<br>
> struct loader_dri3_buffer *buffer;<br>
> + bool fence_await = buffer_type == loader_dri3_buffer_back;<br>
> int buf_id;<br>
> <br>
> if (buffer_type == loader_dri3_buffer_back) {<br>
> @@ -1791,6 +1792,7 @@ dri3_get_buffer(__DRIdrawable *driDrawable,<br>
> 0, 0, 0, 0,<br>
> draw->width, draw->height);<br>
> dri3_fence_trigger(draw->conn, new_buffer);<br>
> + fence_await = true;<br>
> }<br>
> dri3_free_render_buffer(draw, buffer);<br>
> } else if (buffer_type == loader_dri3_buffer_front) {<br>
> @@ -1812,13 +1814,14 @@ dri3_get_buffer(__DRIdrawable *driDrawable,<br>
> new_buffer->linear_buffer,<br>
> 0, 0, draw->width, draw->height,<br>
> 0, 0, 0);<br>
> - }<br>
> + } else<br>
> + fence_await = true;<br>
> }<br>
> buffer = new_buffer;<br>
> draw->buffers[buf_id] = buffer;<br>
> }<br>
> <br>
> - if (buffer_type == loader_dri3_buffer_back)<br>
> + if (fence_await)<br>
> dri3_fence_await(draw->conn, draw, buffer);<br>
> <br>
> /*<br>
> <br>
<br>
<br>
-- <br>
Earthling Michel Dänzer | <a href="http://www.amd.com" rel="noreferrer" target="_blank">http://www.amd.com</a><br>
Libre software enthusiast | Mesa and X developer<br>
_______________________________________________<br>
mesa-dev mailing list<br>
<a href="mailto:mesa-dev@lists.freedesktop.org" target="_blank">mesa-dev@lists.freedesktop.org</a><br>
<a href="https://lists.freedesktop.org/mailman/listinfo/mesa-dev" rel="noreferrer" target="_blank">https://lists.freedesktop.org/mailman/listinfo/mesa-dev</a><br>
</blockquote></div>