Unverified Commit 985769b8 authored by Louis Chauvet's avatar Louis Chauvet
Browse files

drm/vkms: Add support for ARGB8888 formats



The formats XRGB8888 and ARGB8888 were already supported. Add the
support for:
- XBGR8888
- ABGR8888
- RGBA8888
- BGRA8888

Reviewed-by: default avatarMaíra Canal <mcanal@igalia.com>
Acked-by: default avatarDaniel Stone <daniels@collabora.com>
Link: https://lore.kernel.org/r/20250703-b4-new-color-formats-v7-2-15fd8fd2e15c@bootlin.com


Signed-off-by: default avatarLouis Chauvet <louis.chauvet@bootlin.com>
parent 544f161a
Loading
Loading
Loading
Loading
+11 −2
Original line number Diff line number Diff line
@@ -438,9 +438,12 @@ static void R4_read_line(const struct vkms_plane_state *plane, int x_start,


READ_LINE_ARGB8888(XRGB8888_read_line, px, 0xFF, px[2], px[1], px[0])
READ_LINE_ARGB8888(XBGR8888_read_line, px, 0xFF, px[0], px[1], px[2])

READ_LINE_ARGB8888(ARGB8888_read_line, px, px[3], px[2], px[1], px[0])
READ_LINE_ARGB8888(ABGR8888_read_line, px, px[3], px[0], px[1], px[2])
READ_LINE_ARGB8888(RGBA8888_read_line, px, px[0], px[3], px[2], px[1])
READ_LINE_ARGB8888(BGRA8888_read_line, px, px[0], px[1], px[2], px[3])

READ_LINE_le16161616(ARGB16161616_read_line, px, px[3], px[2], px[1], px[0])
READ_LINE_le16161616(XRGB16161616_read_line, px, cpu_to_le16(0xFFFF), px[2], px[1], px[0])
@@ -650,10 +653,16 @@ pixel_read_line_t get_pixel_read_line_function(u32 format)
	switch (format) {
	case DRM_FORMAT_ARGB8888:
		return &ARGB8888_read_line;
	case DRM_FORMAT_XRGB8888:
		return &XRGB8888_read_line;
	case DRM_FORMAT_ABGR8888:
		return &ABGR8888_read_line;
	case DRM_FORMAT_BGRA8888:
		return &BGRA8888_read_line;
	case DRM_FORMAT_RGBA8888:
		return &RGBA8888_read_line;
	case DRM_FORMAT_XRGB8888:
		return &XRGB8888_read_line;
	case DRM_FORMAT_XBGR8888:
		return &XBGR8888_read_line;
	case DRM_FORMAT_ARGB16161616:
		return &ARGB16161616_read_line;
	case DRM_FORMAT_XRGB16161616:
+4 −1
Original line number Diff line number Diff line
@@ -14,8 +14,11 @@

static const u32 vkms_formats[] = {
	DRM_FORMAT_ARGB8888,
	DRM_FORMAT_XRGB8888,
	DRM_FORMAT_ABGR8888,
	DRM_FORMAT_BGRA8888,
	DRM_FORMAT_RGBA8888,
	DRM_FORMAT_XRGB8888,
	DRM_FORMAT_XBGR8888,
	DRM_FORMAT_XRGB16161616,
	DRM_FORMAT_ARGB16161616,
	DRM_FORMAT_RGB565,