mirror of
https://gitlab.freedesktop.org/wayland/weston.git
synced 2026-05-05 09:58:14 +02:00
compositor-drm: Support configuring the framebuffer format from weston.ini
This patch adds a new weston.ini key, gbm-format, to the [core] section. This new key can be rgb565, xrgb8888 or xrgb2101010, and makes the compositor use the corresponding GBM format for the framebuffer.
This commit is contained in:
parent
d8e9833017
commit
8e6f376ef0
3 changed files with 27 additions and 1 deletions
|
|
@ -104,6 +104,13 @@ directory are:
|
||||||
.BR xwayland.so
|
.BR xwayland.so
|
||||||
.fi
|
.fi
|
||||||
.RE
|
.RE
|
||||||
|
.TP 7
|
||||||
|
.BI "gbm-format="format
|
||||||
|
sets the GBM format used for the framebuffer for the GBM backend. Can be
|
||||||
|
.B xrgb8888,
|
||||||
|
.B xrgb2101010,
|
||||||
|
.B rgb565.
|
||||||
|
By default, xrgb8888 is used.
|
||||||
.RS
|
.RS
|
||||||
.PP
|
.PP
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2581,9 +2581,11 @@ drm_compositor_create(struct wl_display *display,
|
||||||
struct weston_config *config)
|
struct weston_config *config)
|
||||||
{
|
{
|
||||||
struct drm_compositor *ec;
|
struct drm_compositor *ec;
|
||||||
|
struct weston_config_section *section;
|
||||||
struct udev_device *drm_device;
|
struct udev_device *drm_device;
|
||||||
struct wl_event_loop *loop;
|
struct wl_event_loop *loop;
|
||||||
const char *path;
|
const char *path;
|
||||||
|
char *s;
|
||||||
uint32_t key;
|
uint32_t key;
|
||||||
|
|
||||||
weston_log("initializing drm backend\n");
|
weston_log("initializing drm backend\n");
|
||||||
|
|
@ -2595,7 +2597,23 @@ drm_compositor_create(struct wl_display *display,
|
||||||
/* KMS support for sprites is not complete yet, so disable the
|
/* KMS support for sprites is not complete yet, so disable the
|
||||||
* functionality for now. */
|
* functionality for now. */
|
||||||
ec->sprites_are_broken = 1;
|
ec->sprites_are_broken = 1;
|
||||||
ec->format = GBM_FORMAT_XRGB8888;
|
|
||||||
|
section = weston_config_get_section(config, "core", NULL, NULL);
|
||||||
|
weston_config_section_get_string(section,
|
||||||
|
"gbm-format", &s, "xrgb8888");
|
||||||
|
if (strcmp(s, "xrgb8888") == 0)
|
||||||
|
ec->format = GBM_FORMAT_XRGB8888;
|
||||||
|
else if (strcmp(s, "rgb565") == 0)
|
||||||
|
ec->format = GBM_FORMAT_RGB565;
|
||||||
|
else if (strcmp(s, "xrgb2101010") == 0)
|
||||||
|
ec->format = GBM_FORMAT_XRGB2101010;
|
||||||
|
else {
|
||||||
|
weston_log("fatal: unrecognized pixel format: %s\n", s);
|
||||||
|
free(s);
|
||||||
|
goto err_base;
|
||||||
|
}
|
||||||
|
free(s);
|
||||||
|
|
||||||
ec->use_pixman = param->use_pixman;
|
ec->use_pixman = param->use_pixman;
|
||||||
|
|
||||||
if (weston_compositor_init(&ec->base, display, argc, argv,
|
if (weston_compositor_init(&ec->base, display, argc, argv,
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
[core]
|
[core]
|
||||||
#modules=xwayland.so,cms-colord.so
|
#modules=xwayland.so,cms-colord.so
|
||||||
#shell=desktop-shell.so
|
#shell=desktop-shell.so
|
||||||
|
#gbm-format=xrgb2101010
|
||||||
|
|
||||||
[shell]
|
[shell]
|
||||||
background-image=/usr/share/backgrounds/gnome/Aqua.jpg
|
background-image=/usr/share/backgrounds/gnome/Aqua.jpg
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue