NXP i.MX8MM GPU performances

João Paulo Gonçalves <[email protected]>
Newsgroups gmane.comp.video.mesa3d.devel,gmane.comp.video.dri.devel
Message-ID <20240507181712.svjjaryisdgfxkle@joaog-nb>
(unnamed) (text/plain, 3.2 KB)
Hello all,

I did run some benchmark on i.MX8MM GPU and I have some concerns on the
differences between mainline Linux/etnaviv/Mesa and the proprietary NXP/Vivante
solution.

The tests were executed comparing glmark2 results between a mainline kernel
(6.9.0-rc6) running Mesa 24.0.3 and NXP provided galcore driver
6.4.3.p4.398061 running with a 5.15 based NXP downstream kernel.

The GPU is running in overdrive mode (see [1]).

mainline infos (etnaviv):

> dmesg | grep -i -E '(gpu|etnaviv)'
[    9.113389] etnaviv-gpu 38000000.gpu: model: GC600, revision: 4653
[    9.120939] etnaviv-gpu 38000000.gpu: Need to move linear window on MC1.0, disabling TS
[    9.129238] etnaviv-gpu 38008000.gpu: model: GC520, revision: 5341
[    9.138463] [drm] Initialized etnaviv 1.4.0 20151214 for etnaviv on minor 1

glmark2-es2-wayland info output: 
=======================================================
    glmark2 2023.01
=======================================================
    OpenGL Information
    GL_VENDOR:      Mesa
    GL_RENDERER:    Vivante GC600 rev 4653
    GL_VERSION:     OpenGL ES 2.0 Mesa 24.0.3
    Surface Config: buf=32 r=8 g=8 b=8 a=8 depth=24 stencil=0 samples=0
    Surface Size:   640x480 windowed
=======================================================

galcore infos (vivante):

> dmesg | grep -i -E '(gpu|vivante|gal)'
[    4.524977] Galcore version 6.4.3.p4.398061
[    4.587654] [drm] Initialized vivante 1.0.0 20170808 for 38000000.gpu on minor 0

glmark2-es2-wayland info output: 
=======================================================
    glmark2 2023.01
=======================================================
    OpenGL Information
    GL_VENDOR:      Vivante Corporation
    GL_RENDERER:    Vivante GC7000NanoUltra
    GL_VERSION:     OpenGL ES 2.0 V6.4.3.p4.398061
    Surface Config: buf=32 r=8 g=8 b=8 a=8 depth=24 stencil=0 samples=0
    Surface Size:   640x480 windowed
=======================================================


In screen (weston + DSI) test results:

glmark2 command: 
> glmark2-es2-wayland -b shading:duration=5.0 -b refract -b build -b texture -b shadow -b bump -s 640x480 2>&1

|         |          glmark2 tests                  |
| sw ver  |shading|build|texture|refract|shadow|bump|
|---------|-------|-----|-------|-------|------|----|
| etnaviv | 263   | 334 | 291   | 22    | 63   | 328|
| vivante | 544   | 956 | 790   | 26    | 225  | 894|

we have 50-60% smaller number with etnaviv.

Offscreen test results:

glmark2 command: 
> glmark2-es2-wayland  --off-screen -b shading:duration=5.0 -b refract -b build -b texture -b shadow -b bump -s 640x480 2>&1

|         |          glmark2 tests                  |
| sw ver  |shading|build|texture|refract|shadow|bump|
|---------|-------|-----|-------|-------|------|----|
| etnaviv | 348   | 541 | 466   | 24    | 81   | 498|
| vivante | 402   | 624 | 520   | 26    | 177  | 557|

we have a 10~13% smaller number with etnaviv.

Do anybody did run similar benchmark in the past on NXP i.MX8MM? With what
results?

Is it expected such a difference in the glmark2 tests results?
Any idea on this big difference between running the test offscreen or not?

João Paulo

[1] https://lore.kernel.org/all/[email protected]/
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.