IMX6 Solo GPU Performance Issue With opengl ES 1.1

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

IMX6 Solo GPU Performance Issue With opengl ES 1.1

929 Views
vishnu_motghare
Contributor III

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

Labels (4)
0 Kudos
Reply
3 Replies

885 Views
jimmychan
NXP TechSupport
NXP TechSupport

Please check the chapter 5.3.8 xorg.conf for i.MX.

https://www.nxp.com/docs/en/reference-manual/IMX_REFERENCE_MANUAL.pdf

0 Kudos
Reply

877 Views
vishnu_motghare
Contributor III

@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?

 

 

 

 

 

0 Kudos
Reply

866 Views
jimmychan
NXP TechSupport
NXP TechSupport

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

 

0 Kudos
Reply