On Wed, 28 Jul 2021 15:31:41 +0200
Christian König <christian.koe...@amd.com> wrote:

> Am 28.07.21 um 15:24 schrieb Michel Dänzer:
> > On 2021-07-28 3:13 p.m., Christian König wrote:  
> >> Am 28.07.21 um 15:08 schrieb Michel Dänzer:  
> >>> On 2021-07-28 1:36 p.m., Christian König wrote:  

> >>>> At least AMD hardware is already capable of flipping frames on GPU 
> >>>> events like finishing rendering (or uploading etc).
> >>>>
> >>>> By waiting in userspace on the CPU before send the frame to the hardware 
> >>>> you are completely killing of such features.
> >>>>
> >>>> For composing use cases that makes sense, but certainly not for full 
> >>>> screen applications as far as I can see.  
> >>> Even for fullscreen, the current KMS API only allows queuing a single 
> >>> page flip per CRTC, with no way to cancel or otherwise modify it. 
> >>> Therefore, a Wayland compositor has to set a deadline for the next 
> >>> refresh cycle, and when the deadline passes, it has to select the best 
> >>> buffer available for the fullscreen surface. To make sure the flip will 
> >>> not miss the next refresh cycle, the compositor has to pick an idle 
> >>> buffer. If it picks a non-idle buffer, and the pending rendering does not 
> >>> finish in time for vertical blank, the flip will be delayed by at least 
> >>> one refresh cycle, which results in visible stuttering.
> >>>
> >>> (Until the deadline passes, the Wayland compositor can't even know if a 
> >>> previously fullscreen surface will still be fullscreen for the next 
> >>> refresh cycle)  
> >> Well then let's extend the KMS API instead of hacking together workarounds 
> >> in userspace.  
> > That's indeed a possible solution for the fullscreen / direct scanout case.
> >
> > Not for the general compositing case though, since a compositor does not 
> > want to composite multiple output frames per display refresh cycle, so it 
> > has to make sure the one frame hits the target.  
> 
> Yeah, that's true as well.
> 
> At least as long as nobody invents a mechanism to do this decision on 
> the GPU instead.

That would mean putting the whole window manager into the GPU.


Thanks,
pq

Attachment: pgp0huNoSpjAf.pgp
Description: OpenPGP digital signature

Reply via email to