From e57d8ae818c39fc434fcf3bfc97274195296c8d6 Mon Sep 17 00:00:00 2001 From: Leandro Ribeiro Date: Wed, 6 May 2020 18:10:19 -0300 Subject: [PATCH] drm-backend: add --continue-without-input command line option to DRM-backend In the test suite we may want to run a DRM-backend test on a non-default seat, which may not have a input device associated. Weston's default behavior is to not open if input devices are not found, as it may cause troubles. For instance, Weston can open but if no input device is set than the user can not interact or leave it. Add flag --continue-without-input to DRM-backend so we can run these types of tests with no input. Notice that this won't force the compositor to skip opening a input device if it finds it on the non-default seat. Signed-off-by: Leandro Ribeiro --- compositor/main.c | 4 +++- include/libweston/backend-drm.h | 3 +++ libweston/backend-drm/drm.c | 1 + man/weston-drm.man | 3 +++ 4 files changed, 10 insertions(+), 1 deletion(-) diff --git a/compositor/main.c b/compositor/main.c index 1a8bf115..65da9dbc 100644 --- a/compositor/main.c +++ b/compositor/main.c @@ -676,7 +676,8 @@ usage(int error_code) " --tty=TTY\t\tThe tty to use\n" " --drm-device=CARD\tThe DRM device to use, e.g. \"card0\".\n" " --use-pixman\t\tUse the pixman (CPU) renderer\n" - " --current-mode\tPrefer current KMS mode over EDID preferred mode\n\n"); + " --current-mode\tPrefer current KMS mode over EDID preferred mode\n" + " --continue-without-input\tAllow the compositor to start without input devices\n\n"); #endif #if defined(BUILD_FBDEV_COMPOSITOR) @@ -2523,6 +2524,7 @@ load_drm_backend(struct weston_compositor *c, { WESTON_OPTION_STRING, "drm-device", 0, &config.specific_device }, { WESTON_OPTION_BOOLEAN, "current-mode", 0, &wet->drm_use_current_mode }, { WESTON_OPTION_BOOLEAN, "use-pixman", 0, &config.use_pixman }, + { WESTON_OPTION_BOOLEAN, "continue-without-input", 0, &config.continue_without_input }, }; parse_options(options, ARRAY_LENGTH(options), argc, argv); diff --git a/include/libweston/backend-drm.h b/include/libweston/backend-drm.h index f6647e28..350eeb0d 100644 --- a/include/libweston/backend-drm.h +++ b/include/libweston/backend-drm.h @@ -223,6 +223,9 @@ struct weston_drm_backend_config { /** Use shadow buffer if using Pixman-renderer. */ bool use_pixman_shadow; + + /** Allow compositor to start without input devices. */ + bool continue_without_input; }; #ifdef __cplusplus diff --git a/libweston/backend-drm/drm.c b/libweston/backend-drm/drm.c index 2aea82f5..ca0f3a86 100644 --- a/libweston/backend-drm/drm.c +++ b/libweston/backend-drm/drm.c @@ -2831,6 +2831,7 @@ drm_backend_create(struct weston_compositor *compositor, NULL, NULL, NULL); compositor->backend = &b->base; + compositor->require_input = !config->continue_without_input; if (parse_gbm_format(config->gbm_format, DRM_FORMAT_XRGB8888, &b->gbm_format) < 0) goto err_compositor; diff --git a/man/weston-drm.man b/man/weston-drm.man index 28cdf3d1..01a336e1 100644 --- a/man/weston-drm.man +++ b/man/weston-drm.man @@ -205,6 +205,9 @@ instead of the seat defined in the environment variable Launch Weston on tty .I x instead of using the current tty. +.TP +.B \-\-continue\-without\-input +Allow Weston to start without input devices. Used for testing purposes. . .\" *************************************************************** .SH ENVIRONMENT