IMX8ULP : Hardware acceleration with EPDC display

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

IMX8ULP : Hardware acceleration with EPDC display

943 Views
Bhavin-Sharma
Contributor III

Hello,

I am working with an EPDC display interfaced to IMX8ULP. The driver for EPDC display is based on FBDEV. As FBDEV supports software rendering only, it loads up CPU beyond 100% at the moment. I have below queries regarding support of EPDC display:

1. Does EPDC only has support for FBDEV? Is there any driver or patch leveraging DRM for EPDC? As with DRM we can use GLES for hardware acceleration.
2. With FBDEV, can I, somehow, still use any kind of hardware rendering?
3. What would be the best way to not let CPU load up while rendering with FBDEV for EPDC display?

Regards,
Bhavin

#IMX8ULP

0 Kudos
Reply
18 Replies

418 Views
Chong
NXP Employee
NXP Employee

Hi @Bhavin-Sharma ,

 

Could you please contact your local NXP FAE so that we can provide more assistance?

Best regards,
Chong

0 Kudos
Reply

913 Views
Chong
NXP Employee
NXP Employee

Hi @Bhavin-Sharma ,

1. Does EPDC only has support for FBDEV?

We only provide EPDC driver based on FBdev. But you can also refer to some third-party DRM porting. Keep FBdev because it has better performance on EPD for DRM. You just need to mark the rendered memory as Framebuffer and submit it for upload. Which display framework(QT/LVGL/wayland) is your UI using? You can contact your FAE for more support. 

2. With FBDEV, can I, somehow, still use any kind of hardware rendering?

You can use GPU and PXP to accelerate the program. Just point the rendered memory to the framebuffer and submit the EPDC update.

3. What would be the best way to not let CPU load up while rendering with FBDEV for EPDC display?
There are many hardware modules for EPD rendering in imx8ulp. You can describe the specific functions you have implemented, or provide us with a test program, and we can help you achieve better performance in imx8ulp.

Best regards,
Chong

0 Kudos
Reply

907 Views
Bhavin-Sharma
Contributor III

Hi @Chong,

 

The framework that I am using is LVGL for UI implementation. So far I have developed for HDMI display to observe performance over FBDEV. I am yet to migrate the application for EPDC display and it may take a couple of days. I will post it here once I test something with the display.

 

I believe LVGL does support rendering using PXP but for specific platforms only. Is it true? 

 

Regards,

Bhavin

0 Kudos
Reply

900 Views
Chong
NXP Employee
NXP Employee

Hi @Bhavin-Sharma ,

Indeed, we have not published examples of GPU/PXP accelerated rendering for LVGL on imx8ulp. However, 2D GPU and PXP can be accelerated in LVGL programs. We can implement this function through patching. Which LVGL version are you using? If you can provide a simple test program, we can help you improve the performance of imx8ulp.

Best regards,
Chong 


0 Kudos
Reply

888 Views
Bhavin-Sharma
Contributor III

Thanks for the prompt response, @Chong 

For my UI development I am using the GUI-guider tool supported by NXP itself, and the LVGL version is 9.2. 

At the moment I can't share any code as the application is proprietary and the simple test application won't have that much of CPU load. 

Can you provide an example application, using PXP and GPU for rendering and offloading CPU?

Regards,

Bhavin

0 Kudos
Reply

727 Views
Bhavin-Sharma
Contributor III

Hi,

@Chong, I’m still working on the same issue and haven’t found a workaround yet. Could you please help me out?

0 Kudos
Reply

721 Views
Chong
NXP Employee
NXP Employee

Hi @Bhavin-Sharma ,

Sorry I missed the message. I can continue to help.

I can try to provide a simple demo based on LVGL and using G2D acceleration. What transformations (rotation/scaling/resize) are used in your application, or are there any special animation effects?

Best regards,
Chong

0 Kudos
Reply

718 Views
Bhavin-Sharma
Contributor III

I am not working with animations at the moment, just trying to render multiple images on the display, zoom-in and out. But it would be helpful if animations like rendering a 3D object as done in glmark2-es2 utilities could be tested.

 

Regards,

Bhavin

0 Kudos
Reply

712 Views
Chong
NXP Employee
NXP Employee

Hi @Bhavin-Sharma ,

The attached demo enables g2d and can reduce CPU loading.  You can get more information by visiting imx-LVGL-G2D-enablement , but please note that this patch only works on LVGL version 8.x. G2D is enabled by default in LVGL 9.3(Check here). It applies for imx8ulp. It requires some porting knowledge to FBdev for EPD panel.
We haven‘t tested the complex animations(like rendering a 3D object).  If you need, we hope you can provide a specific test and we can help you optimize it.

Best regards,
Chong

0 Kudos
Reply

675 Views
Bhavin-Sharma
Contributor III

Thanks for the patch @Chong.

 

I am on leave for this week so I won't be able to test it at the moment. Will surely post an update once I have.

 

Regards,

Bhavin

0 Kudos
Reply

930 Views
Bio_TICFSL
NXP TechSupport
NXP TechSupport

Hello,

A1) No it support DRM and yes it is accelerated with the GPU.

A2) Sorry no, it should be pure software

A3) Just disable the GPU and all render will be via software.

 

Here are how to connect the EPDC in case of iMX8ULP:

https://docs.nxp.com/bundle/MCIMX8ULP-EVK-UM/page/topics/electrophoretic_display_interface.html

 

Regards

0 Kudos
Reply

919 Views
Bhavin-Sharma
Contributor III

Thanks for the reply, @Bio_TICFSL.

 

A1) No it support DRM and yes it is accelerated with the GPU.

I am working with YOCTO (Walnascar) setup for IMX8ULP. It has kernel 6.12. I have had a look through it, and I have not been able to find any driver for EPDC supporting DRM.

 

Is it supported in some other kernel version? Can you help with the steps to enable the DRM support for EPDC?

 

Regards,
Bhavin

0 Kudos
Reply

703 Views
Bio_TICFSL
NXP TechSupport
NXP TechSupport

Hello,

The yocto from NXP support DRM on EPDC but you are using community BSP since we support yocto Styhead in 6.12v please update your yocto.

Regards

0 Kudos
Reply

618 Views
Bhavin-Sharma
Contributor III

Hi @Bio_TICFSL,

 

I switched to the yocto-styhead branch and I checked in the kernel (6.12.3) source, it also has the support for the EPDC display over FBDEV only.

Can you please validate this once and provide the link of the yocto branch that has this support?

 

Regards,

Bhavin

0 Kudos
Reply

595 Views
Bio_TICFSL
NXP TechSupport
NXP TechSupport

Hello,

In NXP bsp 6.12.20 yes it works.

Regards

0 Kudos
Reply

572 Views
Bhavin-Sharma
Contributor III

I validated the source that I am cloning for my BSP setup, and it is the official NXP GitHub repo. Also, the styhead branch only has support for the 6.12.3 kernel, while 6.12.20 is provided within walnascar.

 

I have tried with both these branches, and none of them has the support of DRM for EPDC display. Can you provide any link or source that supports it?

 

Regards,

Bhavin

0 Kudos
Reply

565 Views
Bio_TICFSL
NXP TechSupport
NXP TechSupport

Hello,

Yes both supported, please check the release note of iMX linux

https://www.nxp.com/docs/en/release-note/RN00210.pdf

Regards

 

0 Kudos
Reply

455 Views
Bhavin-Sharma
Contributor III

I referred to the attached link, but I could not find any statement related to the use of DRM with the EPDC display.

Could you please share the exact section or statement from the PDF link that you have shared which confirms the support of it?

 

Thanks for your support.

0 Kudos
Reply