OpenGL ES on i.MX8


Andy Pont <andy.pont@...>
 

Hello,

This is probably a question for NXP themselves but I thought I would try the collective wisdom of the mailing list first.

When I build images for the i.MX6 I can build the OpenGL ES support to use EGL and the Vivante driver to directly access the framebuffer without having to include all of the overhead of X11 or Weston/Wayland.

Trying to find an equivalent configuration for the i.MX8m I am unable to find an equivalent method. The Vivante user space libraries don’t seem to exist in a framebuffer or DRM form, instead they all seem to require Wayland or X11.

Can someone more knowledgeable than I confirm whether that is the case or whether I am missing something?

-Andy.


Prabhu
 

i.MX8 has GBM(DRM) support which is alternative for the lagacy framebuffer.


On Sep 14, 2020 at 6:20 AM, <Andy Pont> wrote:

Hello,

This is probably a question for NXP themselves but I thought I would try
the collective wisdom of the mailing list first.

When I build images for the i.MX6 I can build the OpenGL ES support to
use EGL and the Vivante driver to directly access the framebuffer
without having to include all of the overhead of X11 or Weston/Wayland.

Trying to find an equivalent configuration for the i.MX8m I am unable to
find an equivalent method.  The Vivante user space libraries don’t seem
to exist in a framebuffer or DRM form, instead they all seem to require
Wayland or X11.

Can someone more knowledgeable than I confirm whether that is the case
or whether I am missing something?

-Andy.





Andy Pont <andy.pont@...>
 

Prabhusundar wrote…

i.MX8 has GBM(DRM) support which is alternative for the lagacy framebuffer.
Does that use the standard fsl-framebuffer or fslc-framebuffer distro options from meta-freescale-distro as I have used before?

-Andy.


Prabhu
 

I don’t it may be part of framebuffer distro. Application dependency to gbm should pull in libgbm.



On Sep 14, 2020 at 6:33 AM, <Andy Pont> wrote:

Prabhusundar wrote…

>i.MX8 has GBM(DRM) support which is alternative for the lagacy  
>framebuffer.
Does that use the standard fsl-framebuffer or fslc-framebuffer distro  
options from meta-freescale-distro as I have used before?

-Andy.



Peter Bergin
 

Hi Andy,

On 2020-09-14 13:20, Andy Pont wrote:
Trying to find an equivalent configuration for the i.MX8m I am unable to find an equivalent method.  The Vivante user space libraries don’t seem to exist in a framebuffer or DRM form, instead they all seem to require Wayland or X11.

Can someone more knowledgeable than I confirm whether that is the case or whether I am missing something?

-Andy.
this is the statement from NXP (https://source.codeaurora.org/external/imx/imx-manifest/tree/README?h=imx-linux-zeus#n53). As seen they do not actively support the framebuffer distro for i.Mx8 targets on their official BSP.

The recipe for vivante user space lib imx-gpu-viv also have a guard for mx8 that only builds it when wayland is enabled. (https://github.com/Freescale/meta-freescale/blob/e0fa0255795ce584b3b5ad74c330cabeb0caa28d/recipes-graphics/imx-gpu-viv/imx-gpu-viv-6.inc#L60).

I'm also interested in the same question as you are as I'm in a start up phase for a i.Mx8 project where we would like to run with OpenGL or Vulkan directly against DRM and avoid display manager. Would be great to hear someone from NXP give their picture of this. I have tried the NXP community but without any info so far. (https://community.nxp.com/t5/i-MX-Graphics/vulkan-without-display-server-Wayland-X11/m-p/1134083#M1)

Best regards,
/Peter


Joshua Watt
 

On Mon, Sep 14, 2020 at 3:56 PM Peter Bergin <peter@...> wrote:

Hi Andy,

On 2020-09-14 13:20, Andy Pont wrote:
Trying to find an equivalent configuration for the i.MX8m I am unable
to find an equivalent method. The Vivante user space libraries don’t
seem to exist in a framebuffer or DRM form, instead they all seem to
require Wayland or X11.

Can someone more knowledgeable than I confirm whether that is the case
or whether I am missing something?

-Andy.
this is the statement from NXP
(https://source.codeaurora.org/external/imx/imx-manifest/tree/README?h=imx-linux-zeus#n53).
As seen they do not actively support the framebuffer distro for i.Mx8
targets on their official BSP.

The recipe for vivante user space lib imx-gpu-viv also have a guard for
mx8 that only builds it when wayland is enabled.
(https://github.com/Freescale/meta-freescale/blob/e0fa0255795ce584b3b5ad74c330cabeb0caa28d/recipes-graphics/imx-gpu-viv/imx-gpu-viv-6.inc#L60).

I'm also interested in the same question as you are as I'm in a start up
phase for a i.Mx8 project where we would like to run with OpenGL or
Vulkan directly against DRM and avoid display manager. Would be great to
hear someone from NXP give their picture of this. I have tried the NXP
community but without any info so far.
(https://community.nxp.com/t5/i-MX-Graphics/vulkan-without-display-server-Wayland-X11/m-p/1134083#M1)
FWIW, standing up a GLES/DRM/KMS application isn't terribly hard. I've
done it on an IMX8 before without too much trouble. kmscube is
probably the best place to start as it is a pretty complete example.

However, I would also highly recommend looking at running your
application under the weston (wayland) fullscreen shell. It's just as
powerful except you don't have to deal with all the twiddly DRM/KMS
APIs, and the "overhead" is pretty much non-existent because you
render directly to a DMA buf which weston presents to the display.


Best regards,
/Peter