NXP i.MX8MM GPU performances

Lucas Stach l.stach at pengutronix.de
Wed May 8 08:16:24 UTC 2024


Hi João Paulo,

Am Dienstag, dem 07.05.2024 um 15:17 -0300 schrieb João Paulo
Gonçalves:
> 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

That's a problem. This will prevent TS from being used, which has a
large performance impact. But it shouldn't be necessary to disable it
on the i.MX8MM GPU, as all memory accesses aside from the initial MMU
commandstream go through MMU translation, so the issue with MC1.0 will
not be hit. Can you try patching out the check in the kernel and see if
it helps?

I'll also send a proper patch for this.

Regards,
Lucas

> [    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 etnaviv mailing list