[Mesa-dev] [PATCH] loader/dri3: Overhaul dri3_update_num_back

Michel Dänzer michel at daenzer.net
Mon Aug 29 01:38:44 UTC 2016


On 28/08/16 03:03 AM, Dieter Nützel wrote:
> Am 25.08.2016 11:09, schrieb Michel Dänzer:
>> On 24/08/16 06:35 AM, Eric Anholt wrote:
>>> Michel Dänzer <michel at daenzer.net> writes:
>>>> On 20/08/16 04:42 AM, Eric Anholt wrote:
>>>>> Michel Dänzer <michel at daenzer.net> writes:
>>>>>
>>>>>> From: Michel Dänzer <michel.daenzer at amd.com>
>>>>>>
>>>>>> Always use 3 buffers when flipping. With only 2 buffers, we have
>>>>>> to wait
>>>>>> for a flip to complete (which takes non-0 time even with asynchronous
>>>>>> flips) before we can start working on the next frame. We were
>>>>>> previously
>>>>>> only using 2 buffers for flipping if the X server supports
>>>>>> asynchronous
>>>>>> flips, even when we're not using asynchronous flips. This could
>>>>>> result
>>>>>> in bad performance (the referenced bug report is an extreme case,
>>>>>> where
>>>>>> the inter-frame stalls were preventing the GPU from reaching its
>>>>>> maximum
>>>>>> clocks).
>>>>>>
>>>>>> I couldn't measure any performance boost using 4 buffers with
>>>>>> flipping.
>>>>>> Performance actually seemed to go down slightly, but that might have
>>>>>> been just noise.
>>>>>>
>>>>>> Without flipping, a single back buffer is enough for swap interval 0,
>>>>>> but we need to use 2 back buffers when the swap interval is non-0,
>>>>>> otherwise we have to wait for the swap interval to pass before we can
>>>>>> start working on the next frame. This condition was previously
>>>>>> reversed.
>>>>>>
>>>>>> Cc: "12.0 11.2" <mesa-stable at lists.freedesktop.org>
>>>>>> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=97260
>>>>>> Signed-off-by: Michel Dänzer <michel.daenzer at amd.com>
>>>>>
>>>>> Reviewed-by: Eric Anholt <eric at anholt.net>
>>>>
>>>> Thanks.
> 
> Hello Michel,
> 
> found this _before_ your commit, but haven't had time, so...
> 
> With this patch Blender at least 2.76b flicker horribly with
> 
> 'User Preferences...' -> 'Window Draw Method: Automatic'
> Switching to:
> 'Window Draw Method: Tripple Buffer'
> fix it.
> 
> I'll add this to the related bug if you want.

It's a blender bug:

https://bugs.freedesktop.org/show_bug.cgi?id=97059


-- 
Earthling Michel Dänzer               |               http://www.amd.com
Libre software enthusiast             |             Mesa and X developer


More information about the mesa-dev mailing list