[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID:
<MW4PR12MB71656AAACAD8F3F2D3CADD1DE6EBA@MW4PR12MB7165.namprd12.prod.outlook.com>
Date: Tue, 14 Oct 2025 21:02:33 +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]
> -----Original Message-----
> From: Klymenko, Anatoliy
> Sent: Tuesday, October 14, 2025 1:57 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 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
Almost forgot,
Tested-by: Anatoliy Klymenko <anatoliy.klymenko@....com>
- Anatoliy
Powered by blists - more mailing lists