[PATCH xserver 3/3] present: Only requeue if target MSC is not reached after an unflip

Michel Dänzer michel at daenzer.net
Sat Mar 5 04:20:38 UTC 2016


[ Sorry for the late followup; I was down with the flu ]

On 01.03.2016 20:26, Martin Peres wrote:
> On 25/02/16 17:28, Adam Jackson wrote:
>> On Thu, 2016-02-25 at 09:49 +0000, Chris Wilson wrote:
>>> On Wed, Feb 24, 2016 at 04:52:59PM +0900, Michel Dänzer wrote:
>>>> From: Michel Dänzer <michel.daenzer at amd.com>
>>>>
>>>> While present_pixmap decrements target_msc by 1 for
>>>> present_queue_vblank,
>>>> it leaves the original vblank->target_msc intact. So incrementing the
>>>> latter for requeueing resulted in the requeued presentation being
>>>> executed too late.
>>> My mistake. Yes, the local target_msc is decremented but after
>>> vblank->target_msc is assigned.
>>>  
>>>> Also, no need to requeue if the target MSC is already reached.
>>>>
>>>> This further reduces stutter when a popup menu appears on top of a
>>>> flipping fullscreen window.
>>>>
>>>> Signed-off-by: Michel Dänzer <michel.daenzer at amd.com>
>>> Reviewed-by: Chris Wilson <chris at chris-wilson.co.uk>
>>> -Chris
>> Series merged:
>>
>> remote: I: patch #74919 updated using rev
>> 1a9f8c4623c4e6b6955cb6d5f44d29c244dfd32a.
>> remote: I: patch #74915 updated using rev
>> e7a35b9e16aa12970908f5d55371bb1b862f8f24.
>> remote: I: patch #74910 updated using rev
>> b4ac7b142fa3c536e9b283cfd34b94d82c03aac6.
>> remote: I: 3 patch(es) updated to state Accepted.
>> To ssh://git.freedesktop.org/git/xorg/xserver
>>     0461bca..b4ac7b1  master -> master
>>
> 
> For some reason, this patch prevents kde from starting.

I can't seem to reproduce that. Which option are you using for KWin's
"Tearing prevention" setting?


> I will provide an xtrace for this as soon as I can, but I wanted to
> provide you with a heads'up!

FWIW, it'll be interesting to see the values of vblank->target_msc,
crtc_msc and ust in present_execute when it decides not to call
present_queue_vblank although vblank->requeue was set.


(This is assuming the problem is with the second hunk of the patch; the
first hunk is obviously correct, and I can't imagine how it could cause
the problem on its own)


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


More information about the xorg-devel mailing list