Thread (1 message) 1 message, 1 author, 2017-06-06

Re: [PATCH 4/7] drm/vc4: Use drm_atomic_helper_wait_for_flip_done()

From: Boris Brezillon <hidden>
Date: 2017-06-06 20:59:15
Also in: dri-devel

On Tue, 06 Jun 2017 13:24:33 -0700
Eric Anholt [off-list ref] wrote:
Boris Brezillon [off-list ref] writes:
quoted
Replace the drm_atomic_helper_wait_for_vblanks() with a call to
drm_atomic_helper_wait_for_flip_done(). This allows better detection of
page flip done events which what we are really waiting for in
vc4_atomic_complete_commit().

With this approach, we also addresse the 'missed single vblank event'
problem that can arise when the CRTC is configured in oneshot mode
(only a single frame is generated and the CRTC is immediately paused
after this frame). Note that this oneshot mode will be used for the
writeback connector feature.  
Should we just use drm_atomic_helper_commit_tail() and make this change
in the core helper, instead?
Hm, not sure changing the default behavior is such a good idea. I don't
want to break other drivers.
Actually, I'm confused.  drm_atomic_helper_commit_cleanup_done() seems
to be waiting for the flip_done on the crtc, already.  What's the
difference?
Actually, drm_atomic_helper_wait_for_flip_done() is called just before
drm_atomic_helper_cleanup_planes() which in turn is called before
drm_atomic_helper_commit_cleanup_done(). My understanding was that it
was unsafe to call plane->cleanup_fb() on FBs that are still in use, and
the only thing guaranteeing that FBs are not used anymore is the
flip_done event.

Maybe I'm wrong, and FB refcounting is enough to make sure resources
are preserved until page flip is actually done.
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help