We have an IMX6 solo custom device running with WinCE7 & Linux running
We have developed a custom benchmark application using OpenGL ES1.1
When I ran the benchmark application on WinCE7 the performance looked good
Environment information
-----------------------
EGL version : 1.4
GL vendor : Vivante Corporation
GL renderer : Vivante GC880
GL version : OpenGL ES1.1
run scene 'Floating Frame3D VBO'
initialize, DATA_SIZE:11264, No of Frames:512
Average FPS = 48.075005
---
run scene 'Floating Frame3D'
initialize, DATA_SIZE:11264, No of Frames:512
Average FPS = 31.975005
---
run scene 'Frame 3D Fixed'
initialize, DATA_SIZE:11264, No of Frames:512
Average FPS = 31.505484
---
run scene 'Floating graph'
Average FPS = 238.403093
---
run scene 'Fixed graph'
Average FPS = 238.187271
Environment information
-----------------------
EGL version : 1.4
GL vendor : etnaviv
GL renderer : Vivante GC880 rev 5106
GL version : OpenGL ES 1.1 Mesa 22.0.3
run scene 'Floating Frame3D VBO'
initialize, DATA_SIZE:11264, No of Frames:512
Average FPS = 26.872623
---
run scene 'Floating Frame3D'
initialize, DATA_SIZE:11264, No of Frames:512
Average FPS = 24.373300
---
run scene 'Frame 3D Fixed'
initialize, DATA_SIZE:11264, No of Frames:512
Average FPS = 23.783205
---
run scene 'Floating graph'
Average FPS = 136.624447
---
run scene 'Fixed graph'
Average FPS = 136.510016
Section "Device"
Identifier "Kernel Framebuffer Device"
Screen 0
Driver "armada"
Option "fbdev" "/dev/fb0"
Option "Hotplug" "FALSE"
Option "HWCursor" "TRUE"
Option "UseGPU" "TRUE"
Option "XvAccel" "TRUE"
Option "XvPreferOverlay" "TRUE"
Option "AccelModule" "etnadrm_gpu"
Option "AccelModule" "etnaviv_gpu"
Option "DRI" "TRUE"
EndSection
Section "ServerFlags"
Option "BlankTime" "0"
Option "StandbyTime" "0"
Option "SuspendTime" "0"
Option "OffTime" "0"
EndSection
I'm investigating the cause of the performance drop in Linux but I'm unsure where to look. Any help is appreciated. Thanks in advance
Please check the chapter 5.3.8 xorg.conf for i.MX.
https://www.nxp.com/docs/en/reference-manual/IMX_REFERENCE_MANUAL.pdf
@jimmychan Thanks for your reply. I'm using the following combination
Yocto: Kirkstone
Kernel: 5.15 (Mainline)
GPU Driver: Etnaviv
X Driver: xf86-video-armada (ethnaviv enabled)
OpenGL: OpenGL ES 1.1
We are having performance issues with the above combination, So I thought to try with linux-imx kernel lf-5.15.y available in the Kirkstone version.
Kernel: lf-5.15.y (IMX)
GPU Driver: Vinante
X Driver: xf86-video-armada (Vivante enabled) (etnaviv disabled)
OpenGL: OpenGL ES 1.1
Following is my xorg.conf file
Section "Device"
Identifier "i.MX Accelerated Framebuffer Device"
Driver "vivante"
Option "fbdev" "/dev/fb0"
Option "vivante_fbdev" "/dev/fb0"
Option "HWcursor" "false"
EndSection
Section "ServerFlags"
Option "BlankTime" "0"
Option "StandbyTime" "0"
Option "SuspendTime" "0"
Option "OffTime" "0"
EndSection
With the above settings, I'm getting errors like being unable to load the "Vivante" module. The following files are present in "/usr/lib/xorg/modules/drivers"
armada_drv.so etnadrm_gpu.so fbdev_drv.so vivante_gpu.so
Does IMX kernel with GPU Vivante driver enabled & xf86-video-armada (Vivante enabled) work?
As per chapter 5.3.8, It is mentioned that we have to use "xf86-video-imxfb-vivante" X11driver but I can not find this recipe in the Kirkstone version. I see it was part of meta-fsl-arm but this is a very old repo.
Could you please let me know how to build IMX kernel with Vivante driver & xf86-video-imxfb-vivante?
I think this document should useful for you. Chapter 17 is the different environment building and setup.
https://www.nxp.com/docs/en/user-guide/IMX_GRAPHICS_USERS_GUIDE.pdf