OpenCL on etnaviv?

Tim Harvey tharvey at gateworks.com
Tue Oct 20 21:03:02 UTC 2020


On Tue, Oct 20, 2020 at 1:26 PM Christian Gmeiner
<christian.gmeiner at gmail.com> wrote:
>
> Hi Tim,
>
> Am Mo., 19. Okt. 2020 um 17:48 Uhr schrieb Tim Harvey <tharvey at gateworks.com>:
> >
> > On Mon, Oct 19, 2020 at 6:12 AM Christian Gmeiner
> > <christian.gmeiner at gmail.com> wrote:
> > >
> > > Hi Tim
> > >
> > > >
> > > > Could anyone explain if OpenCL can run with etnaviv? I'm also not
> > > > quite understanding if OpenCL has specific hardware requirements. I
> > > > have users that I support wanting to run OpenCL on an IMX8M and am
> > > > finding that NXP states the IMX8MM doesn't support OpenCL (yet the
> > > > IMX8MN does)  and I'm trying to understand if that is a technical
> > > > issue or just simply that they won't support it through their closed
> > > > Vivante driver.
> > > >
> > >
> > > On the etnaviv side OpenCL is possible but nothing has done in that
> > > direction and
> > > needs work to get it up and running. Hardware wise it should work on GPUs with
> > > SSBOs and Images support. Intuitively it should work on most Vivante GPUs. Also
> > > you might have a look https://en.wikipedia.org/wiki/Vivante_Corporation
> > >
> >
> > Christian,
> >
> > Thanks - this is very helpful. I found some info about what a Shader
> > Storage Buffer Object (SSBO) is but I haven't managed to find what you
> > mean by Images support. I'm also not clear how to tell what Vivante
> > GPU's have this support. The wikipedia page doesn't go into detail on
> > SSBO's and Images support. Where do you typically find this info?
> >
>
> Regarding images: https://livebook.manning.com/book/opencl-in-action/chapter-6/
>
> > What led me to post this question was NXP stating that the IMX8MM does
> > not support OpenCL or Vulkan whereas the other IMX8M's (IMX8MN,
> > IMX8MP, and IMX8MQ) do. I wasn't clear if it was a limitation in what
> > NXP offers through the Vivante driver or if this was a technical
> > limit. It would appear that it is likely both but more so a technical
> > limit.
> >
>
> This is a hard question to answer as there is no feature flag regarding compute.
> Also NXP might have not packed opencl support into their release even though the
> gpu supports it. Maybe just ask NXP? Btw. how is the upstream support for the
> imx8mm? I do not own such hardware.

from what I can tell imx8mm upstream support is deadlocked waiting for
the linux devs and NXP to agree on power domain management (NXP is
being stubborn and keeps insisting power domain should be handled in
ARM Trusted Firmware even though patches have been submitted that add
it to existing Linux drivers). This power domain issue is keeping USB
from working (drivers are fine, you just have to enable the power
domain manually, like in boot firmware). It's also from what I can
tell keeping PCIe from getting the minor attention it needs to add
support to existing drivers. And as far as I can tell almost nothing
in the way of MIPI DSI or CSI bridge drivers have been done upstream
yet and I doubt NXP will be helping there if from past experiences. I
believe I read that etnaviv works on IMX8M but not clear where I saw
that and because DSI bridge support isn't there it would be difficult
to verify. I'm also not clear which IMX8M that would be for as there
are four variants with different GPUs in use.

Philipp, Marek or Fabio likely know much more.

>
> > > > I suppose for my own education I also have the same question about
> > > > Vulkan. Is there specific GPU hardware requirements for that? My
> > > > understanding is that things like OpenCL and Vulkan are just software
> > > > API's to tap into the hardware units.
> > > >
> > >
> > > I am a big vulkan newbie but I think the baseline for vulkan is ES 3.1. So any
> > > GPU where we can support ES 3.1 could also be driven by the Vulkan API.
> > >
> >
> > The IMX8MM has a GC NanoUltra (1 shader) supporting OpenGL ES 2.0 and
> > a GC502L for 2D from what I can find. So if the baseline is ES 3.1
> > there would never be any hope for Vulkan on that. I'm assuming the
> > GLES API's are implemented in hardware and not some sort of
> > abstraction layer.
> >
>
> Yeah.. no Vulkan.
>
> > > But the Vulkan road for etnaviv is even longer one. I think gles 3.0 is more
> > > important at the moment. So do not expect anything in that area in the near and
> > > far future.
> >
> > Meaning that entaviv currently supports GLES 2.0 and work is being
> > done to improve that support to GLES 3.0?
> >
>
> Correct... next stop is es 3.0.
>

Thanks for the info!

Tim


More information about the etnaviv mailing list