egl/wayland: Add opaque-equivalent FourCCs

Add a mapping for the opaque version of an alphaful format (e.g.
ARGB8888 -> XRGB8888) to better support EGL_EXT_present_opaque.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27709>
This commit is contained in:
Daniel Stone 2024-02-23 11:44:09 +00:00 committed by Marge Bot
parent 084fea1e7d
commit c74f480391

View file

@ -74,6 +74,7 @@ static const struct dri2_wl_visual {
*/
int alt_pipe_format;
int bpp;
int opaque_wl_drm_format;
int rgba_shifts[4];
unsigned int rgba_sizes[4];
} dri2_wl_visuals[] = {
@ -84,6 +85,7 @@ static const struct dri2_wl_visual {
PIPE_FORMAT_R16G16B16A16_FLOAT,
PIPE_FORMAT_NONE,
64,
WL_DRM_FORMAT_XBGR16F,
{0, 16, 32, 48},
{16, 16, 16, 16},
},
@ -94,6 +96,7 @@ static const struct dri2_wl_visual {
PIPE_FORMAT_R16G16B16X16_FLOAT,
PIPE_FORMAT_NONE,
64,
WL_DRM_FORMAT_XBGR16F,
{0, 16, 32, -1},
{16, 16, 16, 0},
},
@ -104,6 +107,7 @@ static const struct dri2_wl_visual {
PIPE_FORMAT_B10G10R10X2_UNORM,
PIPE_FORMAT_R10G10B10X2_UNORM,
32,
WL_DRM_FORMAT_XRGB2101010,
{20, 10, 0, -1},
{10, 10, 10, 0},
},
@ -114,6 +118,7 @@ static const struct dri2_wl_visual {
PIPE_FORMAT_B10G10R10A2_UNORM,
PIPE_FORMAT_R10G10B10A2_UNORM,
32,
WL_DRM_FORMAT_XRGB2101010,
{20, 10, 0, 30},
{10, 10, 10, 2},
},
@ -124,6 +129,7 @@ static const struct dri2_wl_visual {
PIPE_FORMAT_R10G10B10X2_UNORM,
PIPE_FORMAT_B10G10R10X2_UNORM,
32,
WL_DRM_FORMAT_XBGR2101010,
{0, 10, 20, -1},
{10, 10, 10, 0},
},
@ -134,6 +140,7 @@ static const struct dri2_wl_visual {
PIPE_FORMAT_R10G10B10A2_UNORM,
PIPE_FORMAT_B10G10R10A2_UNORM,
32,
WL_DRM_FORMAT_XBGR2101010,
{0, 10, 20, 30},
{10, 10, 10, 2},
},
@ -144,6 +151,7 @@ static const struct dri2_wl_visual {
PIPE_FORMAT_BGRX8888_UNORM,
PIPE_FORMAT_NONE,
32,
WL_DRM_FORMAT_XRGB8888,
{16, 8, 0, -1},
{8, 8, 8, 0},
},
@ -154,6 +162,7 @@ static const struct dri2_wl_visual {
PIPE_FORMAT_BGRA8888_UNORM,
PIPE_FORMAT_NONE,
32,
WL_DRM_FORMAT_XRGB8888,
{16, 8, 0, 24},
{8, 8, 8, 8},
},
@ -164,6 +173,7 @@ static const struct dri2_wl_visual {
PIPE_FORMAT_RGBA8888_UNORM,
PIPE_FORMAT_NONE,
32,
WL_DRM_FORMAT_XBGR8888,
{0, 8, 16, 24},
{8, 8, 8, 8},
},
@ -174,6 +184,7 @@ static const struct dri2_wl_visual {
PIPE_FORMAT_RGBX8888_UNORM,
PIPE_FORMAT_NONE,
32,
WL_DRM_FORMAT_XBGR8888,
{0, 8, 16, -1},
{8, 8, 8, 0},
},
@ -184,6 +195,7 @@ static const struct dri2_wl_visual {
PIPE_FORMAT_B5G6R5_UNORM,
PIPE_FORMAT_NONE,
16,
WL_DRM_FORMAT_RGB565,
{11, 5, 0, -1},
{5, 6, 5, 0},
},
@ -194,6 +206,7 @@ static const struct dri2_wl_visual {
PIPE_FORMAT_B5G5R5A1_UNORM,
PIPE_FORMAT_R5G5B5A1_UNORM,
16,
WL_DRM_FORMAT_XRGB1555,
{10, 5, 0, 15},
{5, 5, 5, 1},
},
@ -204,6 +217,7 @@ static const struct dri2_wl_visual {
PIPE_FORMAT_B5G5R5X1_UNORM,
PIPE_FORMAT_R5G5B5X1_UNORM,
16,
WL_DRM_FORMAT_XRGB1555,
{10, 5, 0, -1},
{5, 5, 5, 0},
},
@ -214,6 +228,7 @@ static const struct dri2_wl_visual {
PIPE_FORMAT_B4G4R4A4_UNORM,
PIPE_FORMAT_R4G4B4A4_UNORM,
16,
WL_DRM_FORMAT_XRGB4444,
{8, 4, 0, 12},
{4, 4, 4, 4},
},
@ -224,6 +239,7 @@ static const struct dri2_wl_visual {
PIPE_FORMAT_B4G4R4X4_UNORM,
PIPE_FORMAT_R4G4B4X4_UNORM,
16,
WL_DRM_FORMAT_XRGB4444,
{8, 4, 0, -1},
{4, 4, 4, 0},
},