Re: drm/sun4i: Add missing pixel formats to the vi layer

From: Jernej Åkrabec
Date: Fri Sep 20 2019 - 16:31:49 EST


Dne petek, 20. september 2019 ob 22:22:44 CEST je Roman Stratiienko
napisal(a):
> On Thu, Sep 19, 2019 at 9:53 PM Jernej Åkrabec <jernej.skrabec@xxxxxxxx>
wrote:
> > Hi!
> >
> > Dne sreda, 18. september 2019 ob 13:05:41 CEST je
> >
> > roman.stratiienko@xxxxxxxxxxxxxxx napisal(a):
> > > From: Roman Stratiienko <roman.stratiienko@xxxxxxxxxxxxxxx>
> > >
> > > According to Allwinner DE2.0 Specification REV 1.0, vi layer supports
> > > the
> > > following pixel formats: ABGR_8888, ARGB_8888, BGRA_8888, RGBA_8888
> >
> > It's true that DE2 VI layers support those formats, but it wouldn't change
> > anything because alpha blending is not supported by those planes. These
> > formats were deliberately left out because their counterparts without
> > alpha
> > exist, for example ABGR8888 <-> XBGR8888. It would also confuse user,
> > which
> > would expect that alpha blending works if format with alpha channel is
> > selected.
> >
> > Admittedly some formats with alpha are still reported as supported due to
> > lack of their counterparts without alpha, but I'm fine with removing them
> > for consistency.

I checked again and appropriate formats (with "X" instead of "A") already
exist.

>
> Why not to replace 'A' with 'X' on all relevant formats and map them
> to corresponding index marked with 'A' (that behaves as true 'X' for
> vi)

Yes, that's would be best.

Best regards,
Jernej

>
> > Best regards,
> > Jernej
> >
> > > Signed-off-by: Roman Stratiienko <roman.stratiienko@xxxxxxxxxxxxxxx>
> > > ---
> > >
> > > drivers/gpu/drm/sun4i/sun8i_vi_layer.c | 4 ++++
> > > 1 file changed, 4 insertions(+)
> > >
> > > diff --git a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c
> > > b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c index
> > > bd0e6a52d1d8..07c27e6a4b77
> > > 100644
> > > --- a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c
> > > +++ b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c
> > > @@ -404,17 +404,21 @@ static const struct drm_plane_funcs
> > > sun8i_vi_layer_funcs = { static const u32 sun8i_vi_layer_formats[] = {
> > >
> > > DRM_FORMAT_ABGR1555,
> > > DRM_FORMAT_ABGR4444,
> > >
> > > + DRM_FORMAT_ABGR8888,
> > >
> > > DRM_FORMAT_ARGB1555,
> > > DRM_FORMAT_ARGB4444,
> > >
> > > + DRM_FORMAT_ARGB8888,
> > >
> > > DRM_FORMAT_BGR565,
> > > DRM_FORMAT_BGR888,
> > > DRM_FORMAT_BGRA5551,
> > > DRM_FORMAT_BGRA4444,
> > >
> > > + DRM_FORMAT_BGRA8888,
> > >
> > > DRM_FORMAT_BGRX8888,
> > > DRM_FORMAT_RGB565,
> > > DRM_FORMAT_RGB888,
> > > DRM_FORMAT_RGBA4444,
> > > DRM_FORMAT_RGBA5551,
> > >
> > > + DRM_FORMAT_RGBA8888,
> > >
> > > DRM_FORMAT_RGBX8888,
> > > DRM_FORMAT_XBGR8888,
> > > DRM_FORMAT_XRGB8888,