<div dir="ltr">Yes, it also works</div><br><div class="gmail_quote"><div dir="ltr">On Mon, Oct 1, 2018 at 5:24 PM 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">On 2018-10-01 12:37 p.m., Sergii Romantsov wrote:<br>
> Kabylake doesn't have such issue, but also it doesn't have<br>
> a front buffers in that case.<br>
> Coffelake can be fixed if to wait for fences if it has back-buffer.<br>
> <br>
> Bugzilla: <a href="https://bugs.freedesktop.org/show_bug.cgi?id=108097" rel="noreferrer" target="_blank">https://bugs.freedesktop.org/show_bug.cgi?id=108097</a><br>
> Fixes: aefac10fecc9 (loader/dri3: Only wait for back buffer fences in dri3_get_buffer)<br>
> CC: Michel Dänzer <<a href="mailto:michel.daenzer@amd.com" target="_blank">michel.daenzer@amd.com</a>><br>
> Signed-off-by: Sergii Romantsov <<a href="mailto:sergii.romantsov@globallogic.com" target="_blank">sergii.romantsov@globallogic.com</a>><br>
> ---<br>
>  src/loader/loader_dri3_helper.c | 2 +-<br>
>  1 file changed, 1 insertion(+), 1 deletion(-)<br>
> <br>
> diff --git a/src/loader/loader_dri3_helper.c b/src/loader/loader_dri3_helper.c<br>
> index 258678a..e9f59a2 100644<br>
> --- a/src/loader/loader_dri3_helper.c<br>
> +++ b/src/loader/loader_dri3_helper.c<br>
> @@ -1819,7 +1819,7 @@ dri3_get_buffer(__DRIdrawable *driDrawable,<br>
>        draw->buffers[buf_id] = buffer;<br>
>     }<br>
>  <br>
> -   if (buffer_type == loader_dri3_buffer_back)<br>
> +   if (buffer_type == loader_dri3_buffer_back || draw->have_back)<br>
>        dri3_fence_await(draw->conn, draw, buffer);<br>
>  <br>
>     /*<br>
> <br>
<br>
Thanks for the patch, but unfortunately, this re-introduces<br>
<a href="https://bugs.freedesktop.org/106404" rel="noreferrer" target="_blank">https://bugs.freedesktop.org/106404</a> .  Also, conceptually it's not clear<br>
why the presence of a back buffer would affect waiting for the fake<br>
front buffer's fence.<br>
<br>
<br>
Unfortunately, I'm unable to reproduce the problem with radeonsi. Does<br>
the patch below help by any chance?<br>
<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>
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><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div dir="ltr">Sergii Romantsov<br></div><div dir="ltr"><div style="margin:0px;padding:0px;color:rgb(23,43,77);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,"Fira Sans","Droid Sans","Helvetica Neue",sans-serif;font-size:14px">GlobalLogic Inc.<br><a href="http://www.globallogic.com/" rel="nofollow" style="color:rgb(0,82,204)" target="_blank">www.globallogic.com</a><br></div></div></div></div></div></div>