[PATCH weston v5 13/14] compositor-drm: Calculate atomic-commit flags earlier

Pekka Paalanen ppaalanen at gmail.com
Tue Aug 7 10:34:28 UTC 2018


On Fri, 20 Jul 2018 20:03:34 +0100
Daniel Stone <daniels at collabora.com> wrote:

> Shift up our calculation of the flags we use for atomic commits. We will
> later use this to differentiate between test-only and full commits when
> printing debug information inside drm_output_state_apply_atomic.
> 
> Signed-off-by: Daniel Stone <daniels at collabora.com>
> ---
>  libweston/compositor-drm.c | 25 +++++++++++++------------
>  1 file changed, 13 insertions(+), 12 deletions(-)
> 
> diff --git a/libweston/compositor-drm.c b/libweston/compositor-drm.c
> index e27671437..653d13e0c 100644
> --- a/libweston/compositor-drm.c
> +++ b/libweston/compositor-drm.c
> @@ -2499,12 +2499,24 @@ drm_pending_state_apply_atomic(struct drm_pending_state *pending_state,
>  	struct drm_output_state *output_state, *tmp;
>  	struct drm_plane *plane;
>  	drmModeAtomicReq *req = drmModeAtomicAlloc();
> -	uint32_t flags = 0;
> +	uint32_t flags;
>  	int ret = 0;
>  
>  	if (!req)
>  		return -1;
>  
> +	switch (mode) {
> +	case DRM_STATE_APPLY_SYNC:
> +		flags = 0;
> +		break;
> +	case DRM_STATE_APPLY_ASYNC:
> +		flags = DRM_MODE_PAGE_FLIP_EVENT | DRM_MODE_ATOMIC_NONBLOCK;
> +		break;
> +	case DRM_STATE_TEST_ONLY:
> +		flags = DRM_MODE_ATOMIC_TEST_ONLY;
> +		break;
> +	}
> +
>  	if (b->state_invalid) {
>  		struct weston_head *head_base;
>  		struct drm_head *head;
> @@ -2597,17 +2609,6 @@ drm_pending_state_apply_atomic(struct drm_pending_state *pending_state,
>  		goto out;
>  	}
>  
> -	switch (mode) {
> -	case DRM_STATE_APPLY_SYNC:
> -		break;
> -	case DRM_STATE_APPLY_ASYNC:
> -		flags |= DRM_MODE_PAGE_FLIP_EVENT | DRM_MODE_ATOMIC_NONBLOCK;
> -		break;
> -	case DRM_STATE_TEST_ONLY:
> -		flags |= DRM_MODE_ATOMIC_TEST_ONLY;
> -		break;
> -	}
> -
>  	ret = drmModeAtomicCommit(b->drm.fd, req, flags, b);
>  
>  	/* Test commits do not take ownership of the state; return

Reviewed-by: Pekka Paalanen <pekka.paalanen at collabora.co.uk>


Thanks,
pq
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <https://lists.freedesktop.org/archives/wayland-devel/attachments/20180807/338f0c65/attachment.sig>


More information about the wayland-devel mailing list