On Tue, Jul 27, 2021 at 7:50 AM Michel Dänzer <mic...@daenzer.net> wrote: > > On 2021-07-27 1:38 a.m., Rob Clark wrote: > > From: Rob Clark <robdcl...@chromium.org> > > > > Based on discussion from a previous series[1] to add a "boost" mechanism > > when, for example, vblank deadlines are missed. Instead of a boost > > callback, this approach adds a way to set a deadline on the fence, by > > which the waiter would like to see the fence signalled. > > > > I've not yet had a chance to re-work the drm/msm part of this, but > > wanted to send this out as an RFC in case I don't have a chance to > > finish the drm/msm part this week. > > > > Original description: > > > > In some cases, like double-buffered rendering, missing vblanks can > > trick the GPU into running at a lower frequence, when really we > > want to be running at a higher frequency to not miss the vblanks > > in the first place. > > > > This is partially inspired by a trick i915 does, but implemented > > via dma-fence for a couple of reasons: > > > > 1) To continue to be able to use the atomic helpers > > 2) To support cases where display and gpu are different drivers > > > > [1] https://patchwork.freedesktop.org/series/90331/ > > Unfortunately, none of these approaches will have the full intended effect > once Wayland compositors start waiting for client buffers to become idle > before using them for an output frame (to prevent output frames from getting > delayed by client work). See > https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1880 (shameless plug > :) for a proof of concept of this for mutter. The boost will only affect the > compositor's own GPU work, not the client work (which means no effect at all > for fullscreen apps where the compositor can scan out the client buffers > directly). >
I guess you mean "no effect at all *except* for fullscreen..."? Games are usually running fullscreen, it is a case I care about a lot ;-) I'd perhaps recommend that wayland compositors, in cases where only a single layer is changing, not try to be clever and just push the update down to the kernel. BR, -R > > -- > Earthling Michel Dänzer | https://redhat.com > Libre software enthusiast | Mesa and X developer