diff --git a/backend/drm/drm.c b/backend/drm/drm.c index 7153761ad..4aa9bbf4a 100644 --- a/backend/drm/drm.c +++ b/backend/drm/drm.c @@ -109,10 +109,11 @@ static bool add_plane(struct wlr_drm_backend *drm, for (size_t j = 0; j < drm_plane->count_formats; ++j) { uint32_t fmt = drm_plane->formats[j]; - if (fmt == DRM_FORMAT_ARGB8888) { - // Prefer formats with alpha channel + if (fmt == DRM_FORMAT_XRGB2101010) { rgb_format = fmt; break; + } else if (fmt == DRM_FORMAT_ARGB8888) { + rgb_format = fmt; } else if (fmt == DRM_FORMAT_XRGB8888) { rgb_format = fmt; } diff --git a/backend/drm/renderer.c b/backend/drm/renderer.c index 2f9769f54..559baae3e 100644 --- a/backend/drm/renderer.c +++ b/backend/drm/renderer.c @@ -35,7 +35,7 @@ bool init_drm_renderer(struct wlr_drm_backend *drm, EGL_NONE, }; - renderer->gbm_format = GBM_FORMAT_ARGB8888; + renderer->gbm_format = GBM_FORMAT_ARGB2101010; renderer->wlr_rend = create_renderer_func(&renderer->egl, EGL_PLATFORM_GBM_MESA, renderer->gbm, config_attribs, renderer->gbm_format);