[meta-freescale] [PATCH 30/32] imx-base.inc: Add imxdpu and imxdpublit to MACHINEOVERRIDES_EXTENDER

Gary Bisson gary.bisson at boundarydevices.com
Wed Jun 27 07:12:54 PDT 2018


Hi Tom,

On Wed, Jun 27, 2018 at 02:00:29PM +0000, Tom Hochstein wrote:
> After thinking on this some more, let me start over.
> 
> > -----Original Message-----
> > From: meta-freescale-bounces at yoctoproject.org [mailto:meta-freescale-
> > bounces at yoctoproject.org] On Behalf Of Gary Bisson
> > Sent: Tuesday, June 26, 2018 3:20 AM
> > To: Otavio Salvador <otavio at ossystems.com.br>
> > Cc: meta-freescale Mailing List <meta-freescale at yoctoproject.org>
> > Subject: Re: [meta-freescale] [PATCH 30/32] imx-base.inc: Add imxdpu and
> > imxdpublit to MACHINEOVERRIDES_EXTENDER
> > 
> > Hi Otavio, Tom,
> > 
> > On Mon, Jun 25, 2018 at 04:30:30PM -0300, Otavio Salvador wrote:
> > > From: Tom Hochstein <tom.hochstein at nxp.com>
> > >
> > > - imx-gpu-g2d requires DPU-blit support
> > 
> > Can you elaborate on that? What has changed in the g2d package so that it
> > now depends on DPU-blit?
> 
> Nothing has changed, this just makes an existing requirement explicit. i.MX 6 and 7 with 2D GPU do in fact have a separate DPU blitting engine, different from the DPU used for i.MX 8.

What does "DPU" mean to you? I think what you mean is "i.MX6 and 7 can
do 2D blit operations with their 2D GPU".

Using the term DPU doesn't make sense to me, please elaborate.

My definition of DPU is "Display Processing Unit" as defined in i.MX8QM
docs, therefore using the same term for CPU that don't have that IP is
confusing, isn't it?

> > > - imx-dpu-g2d requires DPU support
> > >
> > > Signed-off-by: Tom Hochstein <tom.hochstein at nxp.com>
> > > Signed-off-by: Otavio Salvador <otavio at ossystems.com.br>
> > > ---
> > >
> > >  conf/machine/include/imx-base.inc                  | 14 +++++++-------
> > >  recipes-graphics/imx-dpu-g2d/imx-dpu-g2d_1.4.2.bb  |  4 +++-
> > >  .../imx-gpu-g2d/imx-gpu-g2d_6.2.4.p1.2.bb          |  4 +++-
> > >  3 files changed, 13 insertions(+), 9 deletions(-)
> > >
> > > diff --git a/conf/machine/include/imx-base.inc
> > > b/conf/machine/include/imx-base.inc
> > > index 346d1c77..6ba5014d 100644
> > > --- a/conf/machine/include/imx-base.inc
> > > +++ b/conf/machine/include/imx-base.inc
> > > @@ -59,17 +59,17 @@ DEFAULTTUNE_vf ?= "cortexa5thf-neon"
> > >  INHERIT += "machine-overrides-extender"
> > >
> > >  MACHINEOVERRIDES_EXTENDER_mx25   = "use-mainline-bsp"
> > > -MACHINEOVERRIDES_EXTENDER_mx6q   =
> > "imxipu:imxvpu:imxgpu2d:imxgpu3d"
> > > -MACHINEOVERRIDES_EXTENDER_mx6dl  =
> > "imxpxp:imxipu:imxvpu:imxgpu2d:imxgpu3d:imxepdc"
> > > -MACHINEOVERRIDES_EXTENDER_mx6sx  = "imxpxp:imxgpu2d:imxgpu3d"
> > > -MACHINEOVERRIDES_EXTENDER_mx6sl  = "imxpxp:imxgpu2d:imxepdc"
> > > +MACHINEOVERRIDES_EXTENDER_mx6q   =
> > "imxipu:imxvpu:imxgpu2d:imxdpublit:imxgpu3d"
> > > +MACHINEOVERRIDES_EXTENDER_mx6dl  =
> > "imxpxp:imxipu:imxvpu:imxgpu2d:imxdpublit:imxgpu3d:imxepdc"
> > > +MACHINEOVERRIDES_EXTENDER_mx6sx  =
> > "imxpxp:imxgpu2d:imxdpublit:imxgpu3d"
> > > +MACHINEOVERRIDES_EXTENDER_mx6sl  =
> > "imxpxp:imxgpu2d:imxdpublit:imxepdc"
> > 
> > ?? I don't understand that naming at all. Shouldn't imxdpublit be necessary
> > on HW that has a DPU (ie none of the above)?
> > 
> > >  MACHINEOVERRIDES_EXTENDER_mx6sll = "imxpxp:imxepdc"
> > >  MACHINEOVERRIDES_EXTENDER_mx6ul  = "imxpxp"
> > >  MACHINEOVERRIDES_EXTENDER_mx6ull = "imxpxp:imxepdc"
> > >  MACHINEOVERRIDES_EXTENDER_mx7d   = "imxpxp:imxepdc"
> > > -MACHINEOVERRIDES_EXTENDER_mx7ulp = "imxpxp:imxgpu2d:imxgpu3d"
> > > -MACHINEOVERRIDES_EXTENDER_mx8mq  = "imxvpu:imxgpu3d"
> > > -MACHINEOVERRIDES_EXTENDER_mx8mm  =
> > "imxvpu:imxgpu2d:imxgpu3d"
> > > +MACHINEOVERRIDES_EXTENDER_mx7ulp =
> > "imxpxp:imxgpu2d:imxdpublit:imxgpu3d"
> > > +MACHINEOVERRIDES_EXTENDER_mx8mq  = "imxvpu:imxdpu:imxgpu3d"
> > 
> > This is wrong, mx8mq doesn't have a DPU.
> 
> You are correct about that, my mistake.
> 
> So at this point just need to fix this patch. Note, that I need to submit an update for imx-gpu-sdk that also depends on imxdpublit.

Sorry but that still doesn't tell me why we're not using imxgpu2d as
before? Why creating a "2dblit" feature, it was known in the first place
that imxgpu2d is capable of 2dblit. Actually let's generalize it and say
that "libg2d" (whether it is gpu or dpu) is capable of blitting.

The only issue I see is that in the case of imx8mm, both gpu-g2d and
dpu-g2d can be built, but that should be easily selectable via a
preferred provider for lig2d no? Also I find it more flexible to leave
it to the user to select which 2D blitting engine he wants to use
instead of forcing one over the other.

Regards,
Gary


More information about the meta-freescale mailing list