From 7fa6d3fc95f6e4be3bc3bf9778d6c234174c805d Mon Sep 17 00:00:00 2001 From: Derek Foreman Date: Thu, 23 Sep 2021 14:37:19 -0500 Subject: [PATCH] egl/wayland: Support RGBA ordered formats There's no reason not to try to use RGBA ordered formats, and in some cases doing so might lead to features such as AFBC being available when they otherwise wouldn't. Signed-off-by: Derek Foreman Reviewed-by: Eric Engestrom Reviewed-by: Emil Velikov Part-of: --- src/egl/drivers/dri2/egl_dri2.h | 2 +- src/egl/drivers/dri2/platform_wayland.c | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/egl/drivers/dri2/egl_dri2.h b/src/egl/drivers/dri2/egl_dri2.h index 1f1c338cdcc45..98fdc1e2e2ddc 100644 --- a/src/egl/drivers/dri2/egl_dri2.h +++ b/src/egl/drivers/dri2/egl_dri2.h @@ -89,7 +89,7 @@ struct zwp_linux_dmabuf_v1; #include "util/u_vector.h" #include "util/bitset.h" -#define EGL_DRI2_MAX_FORMATS 10 +#define EGL_DRI2_MAX_FORMATS 11 struct wl_buffer; diff --git a/src/egl/drivers/dri2/platform_wayland.c b/src/egl/drivers/dri2/platform_wayland.c index cfff0ade90e56..d94e674653fc9 100644 --- a/src/egl/drivers/dri2/platform_wayland.c +++ b/src/egl/drivers/dri2/platform_wayland.c @@ -128,6 +128,20 @@ static const struct dri2_wl_visual { { 16, 8, 0, 24 }, { 8, 8, 8, 8 }, }, + { + "ABGR8888", + WL_DRM_FORMAT_ABGR8888, WL_SHM_FORMAT_ABGR8888, + __DRI_IMAGE_FORMAT_ABGR8888, __DRI_IMAGE_FORMAT_NONE, 32, + { 0, 8, 16, 24 }, + { 8, 8, 8, 8 }, + }, + { + "XBGR8888", + WL_DRM_FORMAT_XBGR8888, WL_SHM_FORMAT_XBGR8888, + __DRI_IMAGE_FORMAT_XBGR8888, __DRI_IMAGE_FORMAT_NONE, 32, + { 0, 8, 16, -1 }, + { 8, 8, 8, 0 }, + }, { "RGB565", WL_DRM_FORMAT_RGB565, WL_SHM_FORMAT_RGB565, @@ -812,6 +826,8 @@ dri2_wl_get_capability(void *loaderPrivate, enum dri_loader_cap cap) switch (cap) { case DRI_LOADER_CAP_FP16: return 1; + case DRI_LOADER_CAP_RGBA_ORDERING: + return 1; default: return 0; }