From: Gary Bisson <gary.bisson@boundarydevices.com>
To: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Cc: Gary Bisson <bisson.gary@gmail.com>,
buildroot@buildroot.org, Refik Tuzakli <tuzakli.refik@gmail.com>
Subject: Re: [Buildroot] [PATCH v2 2/7] package/freescale-imx/imx-dpu-g2d: new package imx-dpu-g2d package is used by i.MX 8 and i.MX 8X series instead of imx-vpu or imx-vpu-hantro.With this commit, imx-dpu-g2d is added and is enabled for i.MX 8X.
Date: Fri, 6 Aug 2021 09:33:14 +0200 [thread overview]
Message-ID: <YQzluoTETdnadPXC@p1g2> (raw)
In-Reply-To: <20210805225102.0108f2ac@windsurf>
Hi Thomas,
On Thu, Aug 05, 2021 at 10:51:02PM +0200, Thomas Petazzoni wrote:
> Hello Gary,
>
> On Mon, 10 Feb 2020 16:58:01 +0100
> Gary Bisson <bisson.gary@gmail.com> wrote:
>
> > Sorry but I disagree with the title/log of this commit.
> >
> > This has nothing to do with vpu, it's all about g2d which is NXP
> > interface for 2D graphics operations (CSC, rotation etc).
> >
> > On most platforms (like i.MX6 for instance) there is a 3D GPU and a 2D
> > GPU, so for those Vivante package was providing the libg2d libraries
> > that leveraged the 2D GPU.
> >
> > Now on newer platform such as i.MX8X, there's no 2D GPU but the display
> > IP (here called DPU) can perform the 2D operations so another package
> > was created.
> >
> > Here is where the selection is made in Yocto:
> > https://source.codeaurora.org/external/imx/meta-fsl-bsp-release/tree/imx/meta-bsp/conf/machine/include/imx-base.inc?h=warrior-4.19.35-1.1.0#n222
> >
> > So my opinion is that, like Yocto, we should create a virtual g2d
> > package that either be populated by Vivante libs by the platforms that
> > have 2D GPU or by DPU on others.
>
> Thanks for the explanation, but I do have a number of questions
> following this. Right now the imx-gpu-g2d package is included with:
>
> if BR2_PACKAGE_FREESCALE_IMX_HAS_VIV_GPU
> source "package/freescale-imx/imx-gpu-g2d/Config.in"
> ...
> endif
>
> So it means it's visible and accessible to all those platforms:
>
> config BR2_PACKAGE_FREESCALE_IMX_HAS_VIV_GPU
> bool
> default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6Q || \
> BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6S || \
> BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7 || \
> BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8 || \
> BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M || \
> BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM || \
> BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MN || \
> BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MP || \
> BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8X
>
> But you're saying that imx-gpu-g2d only applies to i.MX6. So it seams
> like we would in fact need a BR2_PACKAGE_FREESCALE_IMX_HAS_VIV_GPU_G2D,
> like:
I was saying it only was supported on i.MX6 series, but since then NXP
added the 2D GPU back on several new SoCs.
> config BR2_PACKAGE_FREESCALE_IMX_HAS_VIV_GPU_G2D
> bool
> default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6Q || \
> BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6S
>
> And make imx-gpu-g2d only visible on these ?
I believe I offered something like that in the past but was told to
limit the use of "IMX_HAS_XXX". At the time I believe the reasoning was
that users should know whether they can use g2d or not.
> Could you clarify exactly the list of i.MX6/i.MX7/i.MX8 variants on
> which imx-gpu-g2d makes sense, and on which imx-dpu-g2d makes sense ?
>
> In Yocto they have this odd:
>
> MACHINEOVERRIDES_EXTENDER_mx25 = "use-mainline-bsp"
> MACHINEOVERRIDES_EXTENDER_mx6q = "imxfbdev:imxipu:imxvpu:imxgpu:imxgpu2d:imxgpu3d"
> MACHINEOVERRIDES_EXTENDER_mx6dl = "imxfbdev:imxpxp:imxipu:imxvpu:imxgpu:imxgpu2d:imxgpu3d:imxepdc"
> MACHINEOVERRIDES_EXTENDER_mx6sx = "imxfbdev:imxpxp:imxgpu:imxgpu2d:imxgpu3d"
> MACHINEOVERRIDES_EXTENDER_mx6sl = "imxfbdev:imxpxp:imxgpu:imxgpu2d:imxepdc"
> MACHINEOVERRIDES_EXTENDER_mx6sll = "imxfbdev:imxpxp:imxepdc"
> MACHINEOVERRIDES_EXTENDER_mx6ul = "imxfbdev:imxpxp"
> MACHINEOVERRIDES_EXTENDER_mx6ull = "imxfbdev:imxpxp:imxepdc"
> MACHINEOVERRIDES_EXTENDER_mx6ulz = "imxfbdev:imxpxp:imxepdc"
> MACHINEOVERRIDES_EXTENDER_mx7d = "imxfbdev:imxpxp:imxepdc"
> MACHINEOVERRIDES_EXTENDER_mx7ulp = "imxfbdev:imxpxp:imxgpu:imxgpu2d:imxgpu3d"
> MACHINEOVERRIDES_EXTENDER_mx8qm = "imxdrm:imxdpu:imxgpu:imxgpu2d:imxgpu3d"
> MACHINEOVERRIDES_EXTENDER_mx8mm = "imxdrm:imxvpu:imxgpu:imxgpu2d:imxgpu3d"
> MACHINEOVERRIDES_EXTENDER_mx8mn = "imxdrm:imxgpu:imxgpu3d"
> MACHINEOVERRIDES_EXTENDER_mx8mp = "imxdrm:imxvpu:imxgpu:imxgpu2d:imxgpu3d"
> MACHINEOVERRIDES_EXTENDER_mx8mq = "imxdrm:imxvpu:imxgpu:imxgpu3d"
> MACHINEOVERRIDES_EXTENDER_mx8qxp = "imxdrm:imxdpu:imxgpu:imxgpu2d:imxgpu3d"
> MACHINEOVERRIDES_EXTENDER_mx8dxl = "imxfbdev"
>
> But I can't really make much sense out of this.
Well I guess the naming is very confusing, but having imxgpu2d in the
above means that G2D is supported, whether it is with GPU2D or DPU [1].
From that list, if you have both imxgpu2d + imxdpu it means imx-dpu-g2d
is the g2d lib provider[2]. So imx-dpu-g2d is only available for mx8qm
and mx8qxp, all the other platforms with imxgpu2d are using imx-gpu-g2d.
Hope this clarifies things (a bit at least).
Regards,
Gary
[1] https://github.com/Freescale/meta-freescale/blob/hardknott/conf/machine/include/imx-base.inc#L228
[2] https://github.com/Freescale/meta-freescale/blob/hardknott/conf/machine/include/imx-base.inc#L362
_______________________________________________
buildroot mailing list
buildroot@busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot
next prev parent reply other threads:[~2021-08-06 7:33 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-02-03 19:31 [Buildroot] [PATCH v2 1/7] enable vivante gpu driver for imx8x Refik Tuzakli
2020-02-03 19:31 ` [Buildroot] [PATCH v2 2/7] package/freescale-imx/imx-dpu-g2d: new package imx-dpu-g2d package is used by i.MX 8 and i.MX 8X series instead of imx-vpu or imx-vpu-hantro.With this commit, imx-dpu-g2d is added and is enabled for i.MX 8X Refik Tuzakli
2020-02-03 23:02 ` Thomas Petazzoni
2020-02-10 15:58 ` Gary Bisson
2021-08-05 20:51 ` Thomas Petazzoni
2021-08-06 7:33 ` Gary Bisson [this message]
2020-02-03 19:31 ` [Buildroot] [PATCH v2 3/7] availability control for vpu in i.MX families Refik Tuzakli
2020-02-03 23:09 ` Thomas Petazzoni
2020-02-03 19:31 ` [Buildroot] [PATCH v2 4/7] install video encode decode firwmare into target for imx8x Refik Tuzakli
2020-02-03 19:31 ` [Buildroot] [PATCH v2 5/7] package/freescale-imx/imx-gpu-viv: bump to version 6.4.0.p1.0 Refik Tuzakli
2020-02-04 22:10 ` Thomas Petazzoni
[not found] ` <CAMWBNu68n60JO5X1rUxnb5TD1RvV9FqeghtPLttJSHExkUy3gQ@mail.gmail.com>
2020-02-05 8:39 ` Thomas Petazzoni
2020-02-05 15:54 ` Gary Bisson
2020-02-05 16:48 ` Thomas Petazzoni
2020-02-05 18:44 ` Refik Tuzakli
2020-02-10 15:51 ` Gary Bisson
2020-02-10 15:56 ` Thomas Petazzoni
2020-02-03 19:31 ` [Buildroot] [PATCH v2 6/7] package/freescale-imx/imx-gpu-g2d: " Refik Tuzakli
2020-02-04 22:06 ` Thomas Petazzoni
2020-02-03 19:31 ` [Buildroot] [PATCH v2 7/7] DEVELOPERS: update my entry list Refik Tuzakli
2020-03-15 22:11 ` Thomas Petazzoni
2020-02-03 22:46 ` [Buildroot] [PATCH v2 1/7] enable vivante gpu driver for imx8x Thomas Petazzoni
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=YQzluoTETdnadPXC@p1g2 \
--to=gary.bisson@boundarydevices.com \
--cc=bisson.gary@gmail.com \
--cc=buildroot@buildroot.org \
--cc=thomas.petazzoni@bootlin.com \
--cc=tuzakli.refik@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.