Message ID | 20241007-b4-new-color-formats-v2-5-d47da50d4674@bootlin.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm/vkms: Add support for multiple plane formats | expand |
Hi Louis, On 07/10/24 13:46, Louis Chauvet wrote: > Add the support for: > - RGB888 > - BGR888 > > Signed-off-by: Louis Chauvet <louis.chauvet@bootlin.com> > --- > drivers/gpu/drm/vkms/vkms_formats.c | 7 +++++++ > drivers/gpu/drm/vkms/vkms_plane.c | 2 ++ > 2 files changed, 9 insertions(+) > > diff --git a/drivers/gpu/drm/vkms/vkms_formats.c b/drivers/gpu/drm/vkms/vkms_formats.c > index e34bea5da752..2376ea8661ac 100644 > --- a/drivers/gpu/drm/vkms/vkms_formats.c > +++ b/drivers/gpu/drm/vkms/vkms_formats.c > @@ -461,6 +461,9 @@ 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_ARGB8888(RGB888_read_line, px, 255, px[2], px[1], px[0]) > +READ_LINE_ARGB8888(BGR888_read_line, px, 255, px[0], px[1], px[2]) > + > READ_LINE_16161616(ARGB16161616_read_line, px, px[3], px[2], px[1], px[0]) > READ_LINE_16161616(ABGR16161616_read_line, px, px[3], px[0], px[1], px[2]) > READ_LINE_16161616(XRGB16161616_read_line, px, 0xFFFF, px[2], px[1], px[0]) > @@ -679,6 +682,10 @@ pixel_read_line_t get_pixel_read_line_function(u32 format) > return &RGBX8888_read_line; > case DRM_FORMAT_BGRX8888: > return &BGRX8888_read_line; > + case DRM_FORMAT_RGB888: > + return RGB888_read_line; Shouldn't it be &RGB888_read_line? > + case DRM_FORMAT_BGR888: > + return BGR888_read_line; Same. Best Regards, - Maíra > case DRM_FORMAT_ARGB16161616: > return &ARGB16161616_read_line; > case DRM_FORMAT_ABGR16161616: > diff --git a/drivers/gpu/drm/vkms/vkms_plane.c b/drivers/gpu/drm/vkms/vkms_plane.c > index a243a706459f..0fa589abc53a 100644 > --- a/drivers/gpu/drm/vkms/vkms_plane.c > +++ b/drivers/gpu/drm/vkms/vkms_plane.c > @@ -21,6 +21,8 @@ static const u32 vkms_formats[] = { > DRM_FORMAT_XBGR8888, > DRM_FORMAT_RGBX8888, > DRM_FORMAT_BGRX8888, > + DRM_FORMAT_RGB888, > + DRM_FORMAT_BGR888, > DRM_FORMAT_XRGB16161616, > DRM_FORMAT_XBGR16161616, > DRM_FORMAT_ARGB16161616, >
On 26/10/24 - 11:51, Maíra Canal wrote: > Hi Louis, > > On 07/10/24 13:46, Louis Chauvet wrote: > > Add the support for: > > - RGB888 > > - BGR888 > > > > Signed-off-by: Louis Chauvet <louis.chauvet@bootlin.com> > > --- > > drivers/gpu/drm/vkms/vkms_formats.c | 7 +++++++ > > drivers/gpu/drm/vkms/vkms_plane.c | 2 ++ > > 2 files changed, 9 insertions(+) > > > > diff --git a/drivers/gpu/drm/vkms/vkms_formats.c b/drivers/gpu/drm/vkms/vkms_formats.c > > index e34bea5da752..2376ea8661ac 100644 > > --- a/drivers/gpu/drm/vkms/vkms_formats.c > > +++ b/drivers/gpu/drm/vkms/vkms_formats.c > > @@ -461,6 +461,9 @@ 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_ARGB8888(RGB888_read_line, px, 255, px[2], px[1], px[0]) > > +READ_LINE_ARGB8888(BGR888_read_line, px, 255, px[0], px[1], px[2]) > > + > > READ_LINE_16161616(ARGB16161616_read_line, px, px[3], px[2], px[1], px[0]) > > READ_LINE_16161616(ABGR16161616_read_line, px, px[3], px[0], px[1], px[2]) > > READ_LINE_16161616(XRGB16161616_read_line, px, 0xFFFF, px[2], px[1], px[0]) > > @@ -679,6 +682,10 @@ pixel_read_line_t get_pixel_read_line_function(u32 format) > > return &RGBX8888_read_line; > > case DRM_FORMAT_BGRX8888: > > return &BGRX8888_read_line; > > + case DRM_FORMAT_RGB888: > > + return RGB888_read_line; > > Shouldn't it be &RGB888_read_line? According to [1], &function, function, ***function are understood the same by gcc. But this is ugly and I will change to use & everywhere, thanks! [1]:https://stackoverflow.com/questions/6893285/why-do-function-pointer-definitions-work-with-any-number-of-ampersands-or-as Thanks, Louis Chauvet > > + case DRM_FORMAT_BGR888: > > + return BGR888_read_line; > > Same. > > Best Regards, > - Maíra > > > case DRM_FORMAT_ARGB16161616: > > return &ARGB16161616_read_line; > > case DRM_FORMAT_ABGR16161616: > > diff --git a/drivers/gpu/drm/vkms/vkms_plane.c b/drivers/gpu/drm/vkms/vkms_plane.c > > index a243a706459f..0fa589abc53a 100644 > > --- a/drivers/gpu/drm/vkms/vkms_plane.c > > +++ b/drivers/gpu/drm/vkms/vkms_plane.c > > @@ -21,6 +21,8 @@ static const u32 vkms_formats[] = { > > DRM_FORMAT_XBGR8888, > > DRM_FORMAT_RGBX8888, > > DRM_FORMAT_BGRX8888, > > + DRM_FORMAT_RGB888, > > + DRM_FORMAT_BGR888, > > DRM_FORMAT_XRGB16161616, > > DRM_FORMAT_XBGR16161616, > > DRM_FORMAT_ARGB16161616, > >
Hi Louis, On 28/10/24 06:50, Louis Chauvet wrote: > On 26/10/24 - 11:51, Maíra Canal wrote: >> Hi Louis, >> >> On 07/10/24 13:46, Louis Chauvet wrote: >>> Add the support for: >>> - RGB888 >>> - BGR888 >>> >>> Signed-off-by: Louis Chauvet <louis.chauvet@bootlin.com> >>> --- >>> drivers/gpu/drm/vkms/vkms_formats.c | 7 +++++++ >>> drivers/gpu/drm/vkms/vkms_plane.c | 2 ++ >>> 2 files changed, 9 insertions(+) >>> >>> diff --git a/drivers/gpu/drm/vkms/vkms_formats.c b/drivers/gpu/drm/vkms/vkms_formats.c >>> index e34bea5da752..2376ea8661ac 100644 >>> --- a/drivers/gpu/drm/vkms/vkms_formats.c >>> +++ b/drivers/gpu/drm/vkms/vkms_formats.c >>> @@ -461,6 +461,9 @@ 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_ARGB8888(RGB888_read_line, px, 255, px[2], px[1], px[0]) >>> +READ_LINE_ARGB8888(BGR888_read_line, px, 255, px[0], px[1], px[2]) >>> + >>> READ_LINE_16161616(ARGB16161616_read_line, px, px[3], px[2], px[1], px[0]) >>> READ_LINE_16161616(ABGR16161616_read_line, px, px[3], px[0], px[1], px[2]) >>> READ_LINE_16161616(XRGB16161616_read_line, px, 0xFFFF, px[2], px[1], px[0]) >>> @@ -679,6 +682,10 @@ pixel_read_line_t get_pixel_read_line_function(u32 format) >>> return &RGBX8888_read_line; >>> case DRM_FORMAT_BGRX8888: >>> return &BGRX8888_read_line; >>> + case DRM_FORMAT_RGB888: >>> + return RGB888_read_line; >> >> Shouldn't it be &RGB888_read_line? > > According to [1], &function, function, ***function are understood the > same by gcc. > > But this is ugly and I will change to use & everywhere, thanks! I didn't know that, that's interesting. I'd add & just for consistency. Best Regards, - Maíra > > [1]:https://stackoverflow.com/questions/6893285/why-do-function-pointer-definitions-work-with-any-number-of-ampersands-or-as > > Thanks, > Louis Chauvet > >>> + case DRM_FORMAT_BGR888: >>> + return BGR888_read_line; >> >> Same. >> >> Best Regards, >> - Maíra >> >>> case DRM_FORMAT_ARGB16161616: >>> return &ARGB16161616_read_line; >>> case DRM_FORMAT_ABGR16161616: >>> diff --git a/drivers/gpu/drm/vkms/vkms_plane.c b/drivers/gpu/drm/vkms/vkms_plane.c >>> index a243a706459f..0fa589abc53a 100644 >>> --- a/drivers/gpu/drm/vkms/vkms_plane.c >>> +++ b/drivers/gpu/drm/vkms/vkms_plane.c >>> @@ -21,6 +21,8 @@ static const u32 vkms_formats[] = { >>> DRM_FORMAT_XBGR8888, >>> DRM_FORMAT_RGBX8888, >>> DRM_FORMAT_BGRX8888, >>> + DRM_FORMAT_RGB888, >>> + DRM_FORMAT_BGR888, >>> DRM_FORMAT_XRGB16161616, >>> DRM_FORMAT_XBGR16161616, >>> DRM_FORMAT_ARGB16161616, >>>
diff --git a/drivers/gpu/drm/vkms/vkms_formats.c b/drivers/gpu/drm/vkms/vkms_formats.c index e34bea5da752..2376ea8661ac 100644 --- a/drivers/gpu/drm/vkms/vkms_formats.c +++ b/drivers/gpu/drm/vkms/vkms_formats.c @@ -461,6 +461,9 @@ 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_ARGB8888(RGB888_read_line, px, 255, px[2], px[1], px[0]) +READ_LINE_ARGB8888(BGR888_read_line, px, 255, px[0], px[1], px[2]) + READ_LINE_16161616(ARGB16161616_read_line, px, px[3], px[2], px[1], px[0]) READ_LINE_16161616(ABGR16161616_read_line, px, px[3], px[0], px[1], px[2]) READ_LINE_16161616(XRGB16161616_read_line, px, 0xFFFF, px[2], px[1], px[0]) @@ -679,6 +682,10 @@ pixel_read_line_t get_pixel_read_line_function(u32 format) return &RGBX8888_read_line; case DRM_FORMAT_BGRX8888: return &BGRX8888_read_line; + case DRM_FORMAT_RGB888: + return RGB888_read_line; + case DRM_FORMAT_BGR888: + return BGR888_read_line; case DRM_FORMAT_ARGB16161616: return &ARGB16161616_read_line; case DRM_FORMAT_ABGR16161616: diff --git a/drivers/gpu/drm/vkms/vkms_plane.c b/drivers/gpu/drm/vkms/vkms_plane.c index a243a706459f..0fa589abc53a 100644 --- a/drivers/gpu/drm/vkms/vkms_plane.c +++ b/drivers/gpu/drm/vkms/vkms_plane.c @@ -21,6 +21,8 @@ static const u32 vkms_formats[] = { DRM_FORMAT_XBGR8888, DRM_FORMAT_RGBX8888, DRM_FORMAT_BGRX8888, + DRM_FORMAT_RGB888, + DRM_FORMAT_BGR888, DRM_FORMAT_XRGB16161616, DRM_FORMAT_XBGR16161616, DRM_FORMAT_ARGB16161616,
Add the support for: - RGB888 - BGR888 Signed-off-by: Louis Chauvet <louis.chauvet@bootlin.com> --- drivers/gpu/drm/vkms/vkms_formats.c | 7 +++++++ drivers/gpu/drm/vkms/vkms_plane.c | 2 ++ 2 files changed, 9 insertions(+)