NXP i.MX8MM GPU performances

João Paulo Gonçalves jpaulo.silvagoncalves at gmail.com
Tue May 7 18:17:12 UTC 2024


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/20240507143555.471025-1-jpaulo.silvagoncalves@gmail.com/


More information about the mesa-dev mailing list