From 511e42be5e48b3a7eec082dc32c04863a370c4c7 Mon Sep 17 00:00:00 2001 From: Simon Ser Date: Thu, 1 Apr 2021 21:08:21 +0200 Subject: [PATCH] backend/drm: try to import buffer when testing it If the import to KMS succeeds, we have a better chance to be able to scan it out. Importing is also necessary for test-only commits, which we want to add in the future. --- backend/drm/drm.c | 24 +++--------------------- 1 file changed, 3 insertions(+), 21 deletions(-) diff --git a/backend/drm/drm.c b/backend/drm/drm.c index a9c1b3c9..db9747b3 100644 --- a/backend/drm/drm.c +++ b/backend/drm/drm.c @@ -399,29 +399,11 @@ static bool test_buffer(struct wlr_drm_connector *conn, return false; } - struct wlr_dmabuf_attributes attribs; - if (!wlr_buffer_get_dmabuf(wlr_buffer, &attribs)) { + struct wlr_drm_fb *fb = NULL; + if (!drm_fb_import(&fb, drm, wlr_buffer, &crtc->primary->formats)) { return false; } - - if (attribs.flags != 0) { - return false; - } - - if (!wlr_drm_format_set_has(&crtc->primary->formats, - attribs.format, attribs.modifier)) { - // The format isn't supported by the plane. Try stripping the alpha - // channel, if any. - const struct wlr_pixel_format_info *info = - drm_get_pixel_format_info(attribs.format); - if (info != NULL && info->opaque_substitute != DRM_FORMAT_INVALID && - wlr_drm_format_set_has(&crtc->primary->formats, - info->opaque_substitute, attribs.modifier)) { - attribs.format = info->opaque_substitute; - } else { - return false; - } - } + drm_fb_clear(&fb); return true; }