From 8d2ea9544b527b7a1e31bf559d2182782bc6107e Mon Sep 17 00:00:00 2001
From: Simon Ser <contact@emersion.fr>
Date: Wed, 14 Aug 2019 21:53:10 +0300
Subject: backend/drm: fix missing plane formats

The loop populating the format list was exiting early if ARGB8888 was found.
---
 backend/drm/drm.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/backend/drm/drm.c b/backend/drm/drm.c
index bc74a506..85c750dd 100644
--- a/backend/drm/drm.c
+++ b/backend/drm/drm.c
@@ -98,11 +98,15 @@ static bool add_plane(struct wlr_drm_backend *drm,
 	p->id = drm_plane->plane_id;
 	p->props = *props;
 
+	for (size_t j = 0; j < drm_plane->count_formats; ++j) {
+		wlr_drm_format_set_add(&p->formats, drm_plane->formats[j],
+			DRM_FORMAT_MOD_INVALID);
+	}
+
 	// Choose an RGB format for the plane
 	uint32_t rgb_format = DRM_FORMAT_INVALID;
 	for (size_t j = 0; j < drm_plane->count_formats; ++j) {
 		uint32_t fmt = drm_plane->formats[j];
-		wlr_drm_format_set_add(&p->formats, fmt, DRM_FORMAT_MOD_INVALID);
 
 		if (fmt == DRM_FORMAT_ARGB8888) {
 			// Prefer formats with alpha channel
-- 
cgit v1.2.3