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