summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonas Ådahl <jadahl@gmail.com>2023-03-08 16:54:30 +0100
committerOlivier Fourdan <ofourdan@redhat.com>2023-03-08 17:25:51 +0100
commit8c1cad5b75507f0f6e9d19c1f42eeade3181115e (patch)
tree7e17af5620561df4d3fa8eb1d5fb09efaf1b2387
parent7d05c05367641c99532ad38c18f7670394f69c53 (diff)
downloadxserver-8c1cad5b75507f0f6e9d19c1f42eeade3181115e.tar.gz
xwayland/glamor/gbm: Use helper for implicit buffer params too
Signed-off-by: Jonas Ådahl <jadahl@gmail.com> (cherry picked from commit 9bd83c02a8e02b902303a145de15c13ee650b910)
-rw-r--r--hw/xwayland/xwayland-glamor-gbm.c32
1 files changed, 26 insertions, 6 deletions
diff --git a/hw/xwayland/xwayland-glamor-gbm.c b/hw/xwayland/xwayland-glamor-gbm.c
index 2e1a4bfd5..d545a570d 100644
--- a/hw/xwayland/xwayland-glamor-gbm.c
+++ b/hw/xwayland/xwayland-glamor-gbm.c
@@ -395,6 +395,26 @@ init_buffer_params_with_modifiers(struct xwl_pixmap *xwl_pixmap,
return TRUE;
}
+#else
+static Bool
+init_buffer_params_fallback(struct xwl_pixmap *xwl_pixmap,
+ uint64_t *modifier,
+ int *num_planes,
+ int *prime_fds,
+ uint32_t *strides,
+ uint32_t *offsets)
+{
+ *num_planes = 1;
+ *modifier = DRM_FORMAT_MOD_INVALID;
+ prime_fds[0] = gbm_bo_get_fd(xwl_pixmap->bo);
+ if (prime_fds[0] == -1)
+ return FALSE;
+
+ strides[0] = gbm_bo_get_stride(xwl_pixmap->bo);
+ offsets[0] = 0;
+
+ return TRUE;
+}
#endif
static struct wl_buffer *
@@ -435,13 +455,13 @@ xwl_glamor_gbm_get_wl_buffer_for_pixmap(PixmapPtr pixmap)
offsets))
return NULL;
#else
- num_planes = 1;
- modifier = DRM_FORMAT_MOD_INVALID;
- prime_fds[0] = gbm_bo_get_fd(xwl_pixmap->bo);
- if (prime_fds[0] == -1)
+ if (!init_buffer_params_fallback(xwl_pixmap,
+ &modifier,
+ &num_planes,
+ prime_fds,
+ strides,
+ offsets))
return NULL;
- strides[0] = gbm_bo_get_stride(xwl_pixmap->bo);
- offsets[0] = 0;
#endif
if (xwl_screen->dmabuf &&