[Mesa-dev] [PATCH 1/2] loader/dri3: Only wait for back buffer fences in dri3_get_buffer

Thomas Hellstrom thellstrom at vmware.com
Tue Sep 11 13:05:51 UTC 2018


On 09/11/2018 02:41 PM, Michel Dänzer wrote:
> Any feedback on this patch? Without negative feedback, I'll push it
> later this week.
Hi, Michel,

This looks ok to me.

Reviewed-by: Thomas Hellstrom <thellstrom at vmware.com>

/Thomas

>
>
> On 2018-09-04 6:22 p.m., Michel Dänzer wrote:
>> From: Michel Dänzer <michel.daenzer at amd.com>
>>
>> We don't need to wait before drawing to the fake front buffer, as front
>> buffer rendering by definition is allowed to produce artifacts.
>>
>> Fixes hangs in some cases when re-using the fake front buffer, due to it
>> still being busy (i.e. in use for presentation).
>>
>> Cc: mesa-stable at lists.freedesktop.org
>> Bugzilla: https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbugs.freedesktop.org%2F106404&data=02%7C01%7Cthellstrom%40vmware.com%7C758cf6c04efd4541578a08d617e3e821%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C1%7C0%7C636722664962505455&sdata=RvqyEylP%2B96KAl6k9H5j7cyx1PW%2B3FFMmtpD0PwiQwU%3D&reserved=0
>> Bugzilla: https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbugs.freedesktop.org%2F107757&data=02%7C01%7Cthellstrom%40vmware.com%7C758cf6c04efd4541578a08d617e3e821%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C1%7C0%7C636722664962505455&sdata=PC8P3cOYWvFLWmb8uorlEHbf8PgdSnznaRprhrCm1BU%3D&reserved=0
>> Signed-off-by: Michel Dänzer <michel.daenzer at amd.com>
>> ---
>>   src/loader/loader_dri3_helper.c | 4 +++-
>>   1 file changed, 3 insertions(+), 1 deletion(-)
>>
>> diff --git a/src/loader/loader_dri3_helper.c b/src/loader/loader_dri3_helper.c
>> index 91bad86afd8..6c162553f33 100644
>> --- a/src/loader/loader_dri3_helper.c
>> +++ b/src/loader/loader_dri3_helper.c
>> @@ -1819,7 +1819,9 @@ dri3_get_buffer(__DRIdrawable *driDrawable,
>>         buffer = new_buffer;
>>         draw->buffers[buf_id] = buffer;
>>      }
>> -   dri3_fence_await(draw->conn, draw, buffer);
>> +
>> +   if (buffer_type == loader_dri3_buffer_back)
>> +      dri3_fence_await(draw->conn, draw, buffer);
>>   
>>      /*
>>       * Do we need to preserve the content of a previous buffer?
>>
>



More information about the mesa-dev mailing list