Mesa (main): egl/wayland: Support RGBA ordered formats

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed Oct 6 22:51:12 UTC 2021


Module: Mesa
Branch: main
Commit: 7fa6d3fc95f6e4be3bc3bf9778d6c234174c805d
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=7fa6d3fc95f6e4be3bc3bf9778d6c234174c805d

Author: Derek Foreman <derek.foreman at collabora.com>
Date:   Thu Sep 23 14:37:19 2021 -0500

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 <derek.foreman at collabora.com>
Reviewed-by: Eric Engestrom <eric at engestrom.ch>
Reviewed-by: Emil Velikov <emil.velikov at collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13040>

---

 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 1f1c338cdcc..98fdc1e2e2d 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 cfff0ade90e..d94e674653f 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;
    }



More information about the mesa-commit mailing list