[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID:
<MW4PR12MB7165061E0765E5B0C9C0E6DFE6EBA@MW4PR12MB7165.namprd12.prod.outlook.com>
Date: Tue, 14 Oct 2025 20:56:48 +0000
From: "Klymenko, Anatoliy" <Anatoliy.Klymenko@....com>
To: Mike Looijmans <mike.looijmans@...ic.nl>, Laurent Pinchart
<laurent.pinchart@...asonboard.com>
CC: "dri-devel@...ts.freedesktop.org" <dri-devel@...ts.freedesktop.org>, David
Airlie <airlied@...il.com>, Maarten Lankhorst
<maarten.lankhorst@...ux.intel.com>, Maxime Ripard <mripard@...nel.org>,
"Simek, Michal" <michal.simek@....com>, Simona Vetter <simona@...ll.ch>,
Thomas Zimmermann <tzimmermann@...e.de>, Tomi Valkeinen
<tomi.valkeinen@...asonboard.com>, "linux-arm-kernel@...ts.infradead.org"
<linux-arm-kernel@...ts.infradead.org>, "linux-kernel@...r.kernel.org"
<linux-kernel@...r.kernel.org>
Subject: RE: [PATCH] drm: xlnx: zynqmp_dp: Support DRM_FORMAT_XRGB8888
[AMD Official Use Only - AMD Internal Distribution Only]
Hi All,
> -----Original Message-----
> From: Klymenko, Anatoliy
> Sent: Monday, June 30, 2025 6:03 PM
> To: Mike Looijmans <mike.looijmans@...ic.nl>; Laurent Pinchart
> <laurent.pinchart@...asonboard.com>
> Cc: dri-devel@...ts.freedesktop.org; David Airlie <airlied@...il.com>; Maarten
> Lankhorst <maarten.lankhorst@...ux.intel.com>; Maxime Ripard
> <mripard@...nel.org>; Simek, Michal <michal.simek@....com>; Simona
> Vetter <simona@...ll.ch>; Thomas Zimmermann <tzimmermann@...e.de>;
> Tomi Valkeinen <tomi.valkeinen@...asonboard.com>; linux-arm-
> kernel@...ts.infradead.org; linux-kernel@...r.kernel.org
> Subject: RE: [PATCH] drm: xlnx: zynqmp_dp: Support
> DRM_FORMAT_XRGB8888
>
> Hi Mike,
>
> > -----Original Message-----
> > From: dri-devel <dri-devel-bounces@...ts.freedesktop.org> On Behalf Of Mike
> > Looijmans
> > Sent: Monday, June 30, 2025 7:49 AM
> > To: Laurent Pinchart <laurent.pinchart@...asonboard.com>
> > Cc: dri-devel@...ts.freedesktop.org; David Airlie <airlied@...il.com>;
> Maarten
> > Lankhorst <maarten.lankhorst@...ux.intel.com>; Maxime Ripard
> > <mripard@...nel.org>; Simek, Michal <michal.simek@....com>; Simona
> > Vetter <simona@...ll.ch>; Thomas Zimmermann <tzimmermann@...e.de>;
> > Tomi Valkeinen <tomi.valkeinen@...asonboard.com>; linux-arm-
> > kernel@...ts.infradead.org; linux-kernel@...r.kernel.org
> > Subject: Re: [PATCH] drm: xlnx: zynqmp_dp: Support
> > DRM_FORMAT_XRGB8888
> >
> > Caution: This message originated from an External Source. Use proper
> caution
> > when opening attachments, clicking links, or responding.
> >
> >
> > On 30-06-2025 10:21, Laurent Pinchart wrote:
> > > On Mon, Jun 30, 2025 at 10:03:16AM +0200, Mike Looijmans wrote:
> > >> On 27-06-2025 20:19, Laurent Pinchart wrote:
> > >>> On Fri, Jun 27, 2025 at 04:50:46PM +0200, Mike Looijmans wrote:
> > >>>> XRGB8888 is the default mode that Xorg will want to use. Add support
> > >>>> for this to the Zynqmp DisplayPort driver, so that applications can use
> > >>>> 32-bit framebuffers. This solves that the X server would fail to start
> > >>>> unless one provided an xorg.conf that sets DefaultDepth to 16.
> > >>>>
> > >>>> Signed-off-by: Mike Looijmans <mike.looijmans@...ic.nl>
> > >>>> ---
> > >>>>
> > >>>> drivers/gpu/drm/xlnx/zynqmp_disp.c | 5 +++++
> > >>>> 1 file changed, 5 insertions(+)
> > >>>>
> > >>>> diff --git a/drivers/gpu/drm/xlnx/zynqmp_disp.c
> > b/drivers/gpu/drm/xlnx/zynqmp_disp.c
> > >>>> index 80d1e499a18d..501428437000 100644
> > >>>> --- a/drivers/gpu/drm/xlnx/zynqmp_disp.c
> > >>>> +++ b/drivers/gpu/drm/xlnx/zynqmp_disp.c
> > >>>> @@ -312,6 +312,11 @@ static const struct zynqmp_disp_format
> > avbuf_gfx_fmts[] = {
> > >>>> .buf_fmt =
> > ZYNQMP_DISP_AV_BUF_FMT_NL_GFX_RGBA8888,
> > >>>> .swap = true,
> > >>>> .sf = scaling_factors_888,
> > >>>> + }, {
> > >>>> + .drm_fmt = DRM_FORMAT_XRGB8888,
> > >>>> + .buf_fmt =
> > ZYNQMP_DISP_AV_BUF_FMT_NL_GFX_RGBA8888,
> > >>>> + .swap = true,
> > >>>> + .sf = scaling_factors_888,
> > >>> I'm afraid that's not enough. There's a crucial difference between
> > >>> DRM_FORMAT_ARGB8888 (already supported by this driver) and
> > >>> DRM_FORMAT_XRGB8888: for the latter, the 'X' component must be
> > ignored.
> > >>> The graphics layer is blended on top of the video layer, and the blender
> > >>> uses both a global alpha parameter and the alpha channel of the graphics
> > >>> layer for 32-bit RGB formats. This will lead to incorrect operation when
> > >>> the 'X' component is not set to full opacity.
> > >> I spent a few hours digging in the source code and what I could find in
> > >> the TRM and register maps, but there's not enough information in there
> > >> to explain how the blender works. The obvious "XRGB" implementation
> > >> would be to just disable the blender.
> > > That won't work when using global alpha unfortunately :-(
> > >
> > >> What I got from experimenting so far is that the alpha component is
> > >> ignored anyway while the video path isn't active. So as long as one
> > >> isn't using the video blending path, the ARGB and XRGB modes are
> > identical.
> > > Correct, *if* global alpha is set to full opaque, then you can disable
> > > the blender. That could confuse userspace though, enabling the graphics
> > > plane with XRGB would work, and then enabling the video plane with
> > > global alpha would fail.
> > >
> > >> Guess I'll need assistance from AMD/Xilinx to completely implement the
> > >> XRGB modes.
> > > The blender can ignore the alpha channel of the graphics plane for
> > > formats that have no alpha channel. It would be nice if there was a bit
> > > to force that behaviour for 32-bit RGB too, but I couldn't find any :-(
> > > It's worth asking though.
> >
>
> Unfortunately, there are no such explicit flag on the HW side. Although,
> some blender modes may turn off per-pixel alpha as a side effect. Let me
> check if I can find some trick to make it happen.
>
After some investigations I may confirm that this patch works, and it is
safe to accept it. The ZynqMP DP blender ignores per pixel alpha if top
plane alpha is enabled (which is always the case in the driver). So, AR24
is effectively treated as XR24 by the hardware.
> > Yes, my problem exactly.
> >
> >
> > >
> > >> (For our application, this patch is sufficient as it solves the issues
> > >> like X11 not starting up, OpenGL not working and horrendously slow
> > >> scaling performance)
> > >>
> > >>>> }, {
> > >>>> .drm_fmt = DRM_FORMAT_RGBA8888,
> > >>>> .buf_fmt =
> > ZYNQMP_DISP_AV_BUF_FMT_NL_GFX_ABGR8888,
> >
> >
> > --
> > Mike Looijmans
> > System Expert
> >
> > TOPIC Embedded Products B.V.
> > Materiaalweg 4, 5681 RJ Best
> > The Netherlands
> >
> > T: +31 (0) 499 33 69 69
> > E: mike.looijmans@...ic.nl
> > W: www.topic.nl
> >
> >
> --
> Thank you,
> Anatoliy
>
Thank you,
Anatoliy
Powered by blists - more mailing lists