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 <leandro.ribeiro@collabora.com>
dev
Leandro Ribeiro 5 years ago committed by Pekka Paalanen
parent 7b37b4d3d7
commit e57d8ae818
  1. 4
      compositor/main.c
  2. 3
      include/libweston/backend-drm.h
  3. 1
      libweston/backend-drm/drm.c
  4. 3
      man/weston-drm.man

@ -676,7 +676,8 @@ usage(int error_code)
" --tty=TTY\t\tThe tty to use\n" " --tty=TTY\t\tThe tty to use\n"
" --drm-device=CARD\tThe DRM device to use, e.g. \"card0\".\n" " --drm-device=CARD\tThe DRM device to use, e.g. \"card0\".\n"
" --use-pixman\t\tUse the pixman (CPU) renderer\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 #endif
#if defined(BUILD_FBDEV_COMPOSITOR) #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_STRING, "drm-device", 0, &config.specific_device },
{ WESTON_OPTION_BOOLEAN, "current-mode", 0, &wet->drm_use_current_mode }, { WESTON_OPTION_BOOLEAN, "current-mode", 0, &wet->drm_use_current_mode },
{ WESTON_OPTION_BOOLEAN, "use-pixman", 0, &config.use_pixman }, { 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); parse_options(options, ARRAY_LENGTH(options), argc, argv);

@ -223,6 +223,9 @@ struct weston_drm_backend_config {
/** Use shadow buffer if using Pixman-renderer. */ /** Use shadow buffer if using Pixman-renderer. */
bool use_pixman_shadow; bool use_pixman_shadow;
/** Allow compositor to start without input devices. */
bool continue_without_input;
}; };
#ifdef __cplusplus #ifdef __cplusplus

@ -2831,6 +2831,7 @@ drm_backend_create(struct weston_compositor *compositor,
NULL, NULL, NULL); NULL, NULL, NULL);
compositor->backend = &b->base; 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) if (parse_gbm_format(config->gbm_format, DRM_FORMAT_XRGB8888, &b->gbm_format) < 0)
goto err_compositor; goto err_compositor;

@ -205,6 +205,9 @@ instead of the seat defined in the environment variable
Launch Weston on tty Launch Weston on tty
.I x .I x
instead of using the current tty. instead of using the current tty.
.TP
.B \-\-continue\-without\-input
Allow Weston to start without input devices. Used for testing purposes.
. .
.\" *************************************************************** .\" ***************************************************************
.SH ENVIRONMENT .SH ENVIRONMENT

Loading…
Cancel
Save