[Mesa-dev] [PATCH] loader/dri3: Also wait for front buffer fence if we triggered it
Mike Lothian
mike at fireburn.co.uk
Thu Oct 11 20:40:14 UTC 2018
I'm still seeing weird graphical corruptions in chrome and sometimes when
playing video
It's especially noticeable when in inbox.google.com
I might be suffering from a different issue however
On Thu, 11 Oct 2018 at 11:43 Mike Lothian <mike at fireburn.co.uk> wrote:
> Do you think this why I've been seeing lots of weird flashing in Chrome
> recently?
>
> I'll test this patch out tonight and give you my tested by if you like
>
> On Thu, 11 Oct 2018 at 09:27 Michel Dänzer <michel at daenzer.net> wrote:
>
>>
>> Any feedback? Without negative feedback, I'll push this fix tomorrow.
>>
>>
>> On 2018-10-02 4:44 p.m., Michel Dänzer wrote:
>> > From: Michel Dänzer <michel.daenzer at amd.com>
>> >
>> > In that case, we have to wait for the fence to synchronize with the
>> > corresponding drawing we triggered in the X server.
>> >
>> > Fixes incorrect display with the i965 and some applications, e.g.
>>
>> BTW, I've locally fixed this to say "the i965 driver".
>>
>>
>> > solvespace.
>> >
>> > Bugzilla: https://bugs.freedesktop.org/108097
>> > Fixes: aefac10fecc9 "loader/dri3: Only wait for back buffer fences in
>> > dri3_get_buffer"
>> > Tested-by: Sergii Romantsov <sergii.romantsov at globallogic.com>
>> > Signed-off-by: Michel Dänzer <michel.daenzer at amd.com>
>> > ---
>> > src/loader/loader_dri3_helper.c | 7 +++++--
>> > 1 file changed, 5 insertions(+), 2 deletions(-)
>> >
>> > diff --git a/src/loader/loader_dri3_helper.c
>> b/src/loader/loader_dri3_helper.c
>> > index f641a34e6d1..1981b5f0515 100644
>> > --- a/src/loader/loader_dri3_helper.c
>> > +++ b/src/loader/loader_dri3_helper.c
>> > @@ -1736,6 +1736,7 @@ dri3_get_buffer(__DRIdrawable *driDrawable,
>> > struct loader_dri3_drawable *draw)
>> > {
>> > struct loader_dri3_buffer *buffer;
>> > + bool fence_await = buffer_type == loader_dri3_buffer_back;
>> > int buf_id;
>> >
>> > if (buffer_type == loader_dri3_buffer_back) {
>> > @@ -1791,6 +1792,7 @@ dri3_get_buffer(__DRIdrawable *driDrawable,
>> > 0, 0, 0, 0,
>> > draw->width, draw->height);
>> > dri3_fence_trigger(draw->conn, new_buffer);
>> > + fence_await = true;
>> > }
>> > dri3_free_render_buffer(draw, buffer);
>> > } else if (buffer_type == loader_dri3_buffer_front) {
>> > @@ -1812,13 +1814,14 @@ dri3_get_buffer(__DRIdrawable *driDrawable,
>> > new_buffer->linear_buffer,
>> > 0, 0, draw->width,
>> draw->height,
>> > 0, 0, 0);
>> > - }
>> > + } else
>> > + fence_await = true;
>> > }
>> > buffer = new_buffer;
>> > draw->buffers[buf_id] = buffer;
>> > }
>> >
>> > - if (buffer_type == loader_dri3_buffer_back)
>> > + if (fence_await)
>> > dri3_fence_await(draw->conn, draw, buffer);
>> >
>> > /*
>> >
>>
>>
>> --
>> Earthling Michel Dänzer | http://www.amd.com
>> Libre software enthusiast | Mesa and X developer
>> _______________________________________________
>> mesa-dev mailing list
>> mesa-dev at lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20181011/167c013b/attachment-0001.html>
More information about the mesa-dev
mailing list