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

Dieter Nützel Dieter at nuetzel-hh.de
Sat Aug 27 18:03:14 UTC 2016


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.

Greetings,

Dieter


More information about the mesa-dev mailing list