[PATCH v2 5/8] drm/atomic: Call drm_atomic_helper_fake_vblank() from the generic commit_tail() helpers
Daniel Vetter
daniel at ffwll.ch
Mon Jul 2 07:57:30 UTC 2018
On Mon, Jul 02, 2018 at 09:54:32AM +0200, Daniel Vetter wrote:
> On Fri, Jun 29, 2018 at 01:17:18PM +0200, Boris Brezillon wrote:
> > Now that we have a way to fake VBLANK events when requested by the CRTC
> > hook it up to the generic commit_tail() helpers.
> >
> > Signed-off-by: Boris Brezillon <boris.brezillon at bootlin.com>
>
> I really don't like this. We've had epic amounts of bugs with atomic
> drivers failing to send out vblank events when they should, and I added a
> bunch of debug checks to make sure that doesn't happen anymore.
>
> Now there's no way anymore for drivers to spot this until they have
> misrenderings on wayland and no idea why. Imo this should only be used by
> specific drivers, with a comment why exactly they need it.
Meh I retract, you have the special no_vblank state flag to control this.
Looks all good to me.
Reviewed-by: Daniel Vetter <daniel.vetter at ffwll.ch>
> -Daniel
>
> > ---
> > drivers/gpu/drm/drm_atomic_helper.c | 4 ++++
> > 1 file changed, 4 insertions(+)
> >
> > diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c
> > index ca586993c2a2..1a088462bc42 100644
> > --- a/drivers/gpu/drm/drm_atomic_helper.c
> > +++ b/drivers/gpu/drm/drm_atomic_helper.c
> > @@ -1448,6 +1448,8 @@ void drm_atomic_helper_commit_tail(struct drm_atomic_state *old_state)
> >
> > drm_atomic_helper_commit_modeset_enables(dev, old_state);
> >
> > + drm_atomic_helper_fake_vblank(old_state);
> > +
> > drm_atomic_helper_commit_hw_done(old_state);
> >
> > drm_atomic_helper_wait_for_vblanks(dev, old_state);
> > @@ -1477,6 +1479,8 @@ void drm_atomic_helper_commit_tail_rpm(struct drm_atomic_state *old_state)
> > drm_atomic_helper_commit_planes(dev, old_state,
> > DRM_PLANE_COMMIT_ACTIVE_ONLY);
> >
> > + drm_atomic_helper_fake_vblank(old_state);
> > +
> > drm_atomic_helper_commit_hw_done(old_state);
> >
> > drm_atomic_helper_wait_for_vblanks(dev, old_state);
> > --
> > 2.14.1
> >
>
> --
> Daniel Vetter
> Software Engineer, Intel Corporation
> http://blog.ffwll.ch
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
More information about the dri-devel
mailing list