This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DM3730: Use SGX graphics HW acceleration

Part Number: DM3730

I am developing a touchscreen based GUI application with bitmaps and other graphical elements like graphs, shapes etc on a custom board with OMAP3 AM/DM3730. My application is using open source LVGL library to draw graphic elements. I can use framebuffer, DRM or SDL2 to finally render it on screen. All of them are working on hardware but is really slow where framebuffer rendering is better compared to others. I would like to use SGX GPU to get some HW acceleration which I am struggling to configure properly.

I have an OS built using bitbake from Arago project @ 149ca1956a32c12186b770c30f39f077c0c9dea7
Customisations added in conf file are:

DISTRO_FEATURES += "opengl alsa gpu"

PREFERRED_PROVIDER_virtual/egl = "ti-sgx-ddk-um"
PREFERRED_PROVIDER_virtual/libgles1= "ti-sgx-ddk-um"
PREFERRED_PROVIDER_virtual/libgles2 = "ti-sgx-ddk-um"
PREFERRED_PROVIDER_virtual/libgbm = "ti-sgx-ddk-um"

# Use OpenGL ES2 for SDL2
PACKAGECONFIG_GL:pn-libsdl2 = "gles2"

# Add KMS/DRM backend support
PACKAGECONFIG:append:pn-libsdl2 = " kmsdrm"

PACKAGECONFIG:append:pn-libdrm = " omap"

The Kernel boot log shows (pasting parts here), some information as well error from DSS and its stack trace.

U-Boot 2021.01 (Aug 16 2023 - 12:45:58 +0000)␍␊
[15:41:26:489] ␍␊
[15:41:26:489] OMAP3630/3730-GP ES1.2, CPU-OPP2, L3-200MHz, Max CPU Clock 1 GHz␍␊
[15:41:26:489] Model: TI OMAP35XX EVM (TMDSEVM3530)␍␊
[15:41:26:489] OMAP3 EVM board + LPDDR/NAND␍␊
[15:41:26:489] I2C: ready␍
....
[15:41:44:242] [ 9.512664] omapdrm omapdrm.0: DMM not available, disable DMM support␍␊
[15:41:44:578] [ 9.699432] ------------[ cut here ]------------␍␊
[15:41:44:623] [ 9.699615] WARNING: CPU: 0 PID: 106 at drivers/gpu/drm/omapdrm/dss/dss.c:654 dss_set_fck_rate+0x70/0x84 [omapdss]␍␊
[15:41:44:623] [ 9.699615] clk rate mismatch: 108000000 != 57600000␍␊
[15:41:45:104] [ 9.755584] ---[ end trace 28399be6b1225086 ]---␍␊
[15:41:45:104] [ 9.844207] Console: switching to colour frame buffer device 60x40␍␊
[15:41:45:104] [ 10.394348] omapdrm omapdrm.0: [drm] fb0: omapdrmdrmfb frame buffer device␍␊
[15:41:45:141] [ 10.426879] [drm] Initialized omapdrm 1.0.0 20110917 for omapdrm.0 on minor 1␍␊
....
[15:41:47:301] [ 12.567565] PVR_K: UM DDK-(4948957) and KM DDK-(4948957) match. [ OK ]␍␊
[15:41:47:313] Loaded PowerVR consumer services.

My questions are:

1. How exactly is graphics pipeline activated from user space? 
2. How do I check from user space if SGX is getting used? Is there an easy way to enable logs of ti driver? 
2. What specific configurations/variables/tuning needs to be applied to which all recipies? 
3. Is there a branch/machine conf which is compatible with OMAP3 AM/DM3730 that I can directly use?

Any help is deeply appreciated!

Many Thanks

  • Hello Fezin,

    Unfortunately TI is no longer able to provide hardware or software design support for DM3730, as per the limited support banner on the product page:
    https://www.ti.com/product/DM3730 
    Our apps team no longer has any hardware or software expertise on this part. The latest software releases that TI tested with the part are also on the product page.

    If there are any non-TI engineers on the forums who want to comment, please jump in!

    If you decide that you want to use a newer part that does have design support from TI, but you need assistance with part selection, let us know.

    Regards,

    Nick

  • Hello Nick,

    I will refer to LINUXDVSDK.

    Can you suggest any configuration which is close to or similar to DM3730 from yocto arago project that I may be able to refer to ? 

    Thanks
    Fezin

  • Hello Fezin,

    I wish I had a better answer for you. LINUXDVSDK was released 12 years ago, so the code is extremely old. TI has not tested any later software on DM3730, so I cannot tell you whether the later Linux / yocto code works or not, or which configurations are most likely to work on DM3730.

    I am reassigning your question to our yocto support guy just in case he has any inputs. But he might not be able to provide any additional support either.

    Regards,

    Nick

  • You could perhaps try use what's used for AM335x, or at least model after. It also uses an SGX graphics core, and is supported by our current SDKs.

    Other than that my recommendation would be to look at the last shipping SDK for that processor, which can be found here, https://www.ti.com/tool/LINUXDVSDK-DM37X?keyMatch=DM3730 and re-create what was done there before porting it to your environment/software.

    Regards, Andreas