diff --git a/libweston/backend-headless/headless.c b/libweston/backend-headless/headless.c index ceedad04..5434dd52 100644 --- a/libweston/backend-headless/headless.c +++ b/libweston/backend-headless/headless.c @@ -301,6 +301,7 @@ headless_output_enable_pixman(struct headless_output *output) .width = output->base.current_mode->width, .height = output->base.current_mode->height }, + .drm_format = headless_formats[0] }; pixman = output->base.compositor->renderer->pixman; @@ -317,12 +318,6 @@ headless_output_enable_pixman(struct headless_output *output) if (!output->renderbuffer) goto err_renderer; - weston_output_update_capture_info(&output->base, - WESTON_OUTPUT_CAPTURE_SOURCE_FRAMEBUFFER, - output->base.current_mode->width, - output->base.current_mode->height, - pfmt->format); - return 0; err_renderer: diff --git a/libweston/pixman-renderer.c b/libweston/pixman-renderer.c index 39c79272..8258a8da 100644 --- a/libweston/pixman-renderer.c +++ b/libweston/pixman-renderer.c @@ -1106,6 +1106,11 @@ pixman_renderer_output_create(struct weston_output *output, wl_list_init(&po->renderbuffer_list); + weston_output_update_capture_info(output, + WESTON_OUTPUT_CAPTURE_SOURCE_FRAMEBUFFER, + area.width, area.height, + options->drm_format); + return 0; } diff --git a/libweston/pixman-renderer.h b/libweston/pixman-renderer.h index dc05c6f8..b760dcc7 100644 --- a/libweston/pixman-renderer.h +++ b/libweston/pixman-renderer.h @@ -38,6 +38,8 @@ struct pixman_renderer_output_options { bool use_shadow; /** Initial framebuffer size */ struct weston_size fb_size; + /** Initial DRM pixel format */ + uint32_t drm_format; }; struct pixman_renderer_interface {