Re: [PATCH 2/4] drm/doc: document interactions between PAGE_FLIP_EVENT and atomic

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 12 Jul 2023 13:57:28 +0000
Simon Ser <contact@xxxxxxxxxxx> wrote:

> Explain which CRTCs get an event, and uAPI requirements.
> 
> Signed-off-by: Simon Ser <contact@xxxxxxxxxxx>
> Cc: Pekka Paalanen <pekka.paalanen@xxxxxxxxxxxxx>
> Cc: Daniel Vetter <daniel.vetter@xxxxxxxx>
> ---
>  include/uapi/drm/drm_mode.h | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/include/uapi/drm/drm_mode.h b/include/uapi/drm/drm_mode.h
> index 92d96a2b6763..c32b171c0ba7 100644
> --- a/include/uapi/drm/drm_mode.h
> +++ b/include/uapi/drm/drm_mode.h
> @@ -946,6 +946,10 @@ struct hdr_output_metadata {
>   * Request that the kernel sends back a vblank event (see
>   * struct drm_event_vblank) with the &DRM_EVENT_FLIP_COMPLETE type when the
>   * page-flip is done.
> + *
> + * When used with the atomic uAPI, vblank events will be sent for every CRTC
> + * included in the commit. At least one CRTC must be included, and all included
> + * CRTCs must be turned on.
>   */
>  #define DRM_MODE_PAGE_FLIP_EVENT 0x01
>  /**

What about interactions with DRM_CAP_CRTC_IN_VBLANK_EVENT?

Is there one event per CRTC even without the cap? And in that case
userspace cannot see which CRTC an event is for, but it must wait for
the correct number of events to be sure each one completed? Which is
horribly fragile, so maybe we should recommend to not even try without
the cap?

FWIW, Weston does not use atomic without the cap, so I can't peek there.

What does "including a CRTC in a commit" mean? I think a CRTC is
included if the commit touches any plane on the CRTC, but there is no
need to touch any CRTC property to have the CRTC included, right?
Touching connector properties pulls in the CRTC as well?


Thanks,
pq



[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux