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
Running the same application on Linux shows a 50 % drop in performance
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
On Linux, we are using Mainline 5.15 kernel,
xf86-video-armada, and below is the xorg.conf configuration
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