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; }