The formats XRGB8888 and ARGB8888 were already supported. Add the
support for: - XBGR8888 - RGBX8888 - BGRX8888 - ABGR8888 - RGBA8888 -
BGRA8888
Signed-off-by: Louis Chauvet <louis.chauvet@bootlin.com>
---
drivers/gpu/drm/vkms/vkms_formats.c | 13 +++++++++++--
drivers/gpu/drm/vkms/vkms_plane.c | 5 ++++-
2 files changed, 15 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/vkms/vkms_formats.c b/drivers/gpu/drm/vkms/vkms_formats.c
index a9c624081dac..231b327e86b3 100644
--- a/drivers/gpu/drm/vkms/vkms_formats.c
+++ b/drivers/gpu/drm/vkms/vkms_formats.c
@@ -432,9 +432,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])
@@ -644,10 +647,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:
diff --git a/drivers/gpu/drm/vkms/vkms_plane.c b/drivers/gpu/drm/vkms/vkms_plane.c
index e3fdd161d0f0..01fed722808b 100644
--- a/drivers/gpu/drm/vkms/vkms_plane.c
+++ b/drivers/gpu/drm/vkms/vkms_plane.c
@@ -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,
--
2.49.0
Hi Louis, On 27/06/25 06:12, Louis Chauvet wrote: > The formats XRGB8888 and ARGB8888 were already supported. Add the > support for: - XBGR8888 - RGBX8888 - BGRX8888 - ABGR8888 - RGBA8888 - > BGRA8888 Please, remove RGBX8888 and BGRX8888 from this list. Also, for readability, it would be great if you add each format in one separate line. Apart from that, Reviewed-by: Maíra Canal <mcanal@igalia.com> Best Regards, - Maíra > > Signed-off-by: Louis Chauvet <louis.chauvet@bootlin.com> > --- > drivers/gpu/drm/vkms/vkms_formats.c | 13 +++++++++++-- > drivers/gpu/drm/vkms/vkms_plane.c | 5 ++++- > 2 files changed, 15 insertions(+), 3 deletions(-) > > diff --git a/drivers/gpu/drm/vkms/vkms_formats.c b/drivers/gpu/drm/vkms/vkms_formats.c > index a9c624081dac..231b327e86b3 100644 > --- a/drivers/gpu/drm/vkms/vkms_formats.c > +++ b/drivers/gpu/drm/vkms/vkms_formats.c > @@ -432,9 +432,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]) > @@ -644,10 +647,16 @@ pixel_read_line_t get_pixel_read_line_function(u32 format) > switch (format) {RGBA8888 > 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: > diff --git a/drivers/gpu/drm/vkms/vkms_plane.c b/drivers/gpu/drm/vkms/vkms_plane.c > index e3fdd161d0f0..01fed722808b 100644 > --- a/drivers/gpu/drm/vkms/vkms_plane.c > +++ b/drivers/gpu/drm/vkms/vkms_plane.c > @@ -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, >
Le 27/06/2025 à 15:17, Maíra Canal a écrit : > Hi Louis, > > On 27/06/25 06:12, Louis Chauvet wrote: >> The formats XRGB8888 and ARGB8888 were already supported. Add the >> support for: - XBGR8888 - RGBX8888 - BGRX8888 - ABGR8888 - RGBA8888 - >> BGRA8888 > > Please, remove RGBX8888 and BGRX8888 from this list. Also, for > readability, it would be great if you add each format in one separate > line. Indeed, I will wait for review on 6/8 and 8/8, but I will definitely make those changes for apply/next revision! Thanks a lot for your reviews! Louis Chauvet > Apart from that, > > Reviewed-by: Maíra Canal <mcanal@igalia.com> > > Best Regards, > - Maíra > >> >> Signed-off-by: Louis Chauvet <louis.chauvet@bootlin.com> >> --- >> drivers/gpu/drm/vkms/vkms_formats.c | 13 +++++++++++-- >> drivers/gpu/drm/vkms/vkms_plane.c | 5 ++++- >> 2 files changed, 15 insertions(+), 3 deletions(-) >> >> diff --git a/drivers/gpu/drm/vkms/vkms_formats.c b/drivers/gpu/drm/vkms/vkms_formats.c >> index a9c624081dac..231b327e86b3 100644 >> --- a/drivers/gpu/drm/vkms/vkms_formats.c >> +++ b/drivers/gpu/drm/vkms/vkms_formats.c >> @@ -432,9 +432,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]) >> @@ -644,10 +647,16 @@ pixel_read_line_t get_pixel_read_line_function(u32 format) >> switch (format) {RGBA8888 >> 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: >> diff --git a/drivers/gpu/drm/vkms/vkms_plane.c b/drivers/gpu/drm/vkms/vkms_plane.c >> index e3fdd161d0f0..01fed722808b 100644 >> --- a/drivers/gpu/drm/vkms/vkms_plane.c >> +++ b/drivers/gpu/drm/vkms/vkms_plane.c >> @@ -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, >> > -- Louis Chauvet, Bootlin Embedded Linux and Kernel engineering https://bootlin.com
© 2016 - 2025 Red Hat, Inc.