All the mail mirrored from lore.kernel.org
 help / color / mirror / Atom feed
* NXP i.MX8MM GPU performances
@ 2024-05-07 18:17 João Paulo Gonçalves
  2024-05-08  8:16 ` Lucas Stach
  0 siblings, 1 reply; 4+ messages in thread
From: João Paulo Gonçalves @ 2024-05-07 18:17 UTC (permalink / raw
  To: etnaviv, dri-devel, mesa-dev
  Cc: Marek Vasut, Lucas Stach, Russell King, Christian Gmeiner,
	Philipp Zabel, joao.goncalves

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/

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: NXP i.MX8MM GPU performances
  2024-05-07 18:17 NXP i.MX8MM GPU performances João Paulo Gonçalves
@ 2024-05-08  8:16 ` Lucas Stach
  2024-05-08 14:32   ` João Paulo Gonçalves
  0 siblings, 1 reply; 4+ messages in thread
From: Lucas Stach @ 2024-05-08  8:16 UTC (permalink / raw
  To: João Paulo Gonçalves, etnaviv, dri-devel, mesa-dev
  Cc: Marek Vasut, Russell King, Christian Gmeiner, Philipp Zabel,
	joao.goncalves

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/


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: NXP i.MX8MM GPU performances
  2024-05-08  8:16 ` Lucas Stach
@ 2024-05-08 14:32   ` João Paulo Gonçalves
  2024-05-10 12:49     ` João Paulo Gonçalves
  0 siblings, 1 reply; 4+ messages in thread
From: João Paulo Gonçalves @ 2024-05-08 14:32 UTC (permalink / raw
  To: Lucas Stach
  Cc: etnaviv, dri-devel, mesa-dev, Marek Vasut, Russell King,
	Christian Gmeiner, Philipp Zabel, joao.goncalves

Hi Lucas,

On Wed, May 08, 2024 at 10:16:24AM +0200, Lucas Stach wrote:
> 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.

I patched the kernel and enabled TS. The performance improved slightly,
but it still seems lower than the NXP driver. Here are some of the
results:

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 (no TS) | 263   | 334 | 291   | 22    | 63   | 328|
| etnaviv         | 340   | 549 | 460   | 18    | 84   | 560|
| vivante         | 544   | 956 | 790   | 26    | 225  | 894|

Enabling TS, etnaviv scores improved by around 30-60% compared to
when it is disabled. However, it still remains approximately 40% lower
than galcore.

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 (no TS) | 348   | 541 | 466   | 24    | 81   | 498|
| etnaviv         | 434   | 901 | 832   | 19    | 106  | 871|
| vivante         | 544   | 956 | 790   | 26    | 225  | 894|

With TS enabled, offscreen scores improved considerably in some
individual benchmarks.

Regards,
João Paulo

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: NXP i.MX8MM GPU performances
  2024-05-08 14:32   ` João Paulo Gonçalves
@ 2024-05-10 12:49     ` João Paulo Gonçalves
  0 siblings, 0 replies; 4+ messages in thread
From: João Paulo Gonçalves @ 2024-05-10 12:49 UTC (permalink / raw
  To: Lucas Stach
  Cc: etnaviv, dri-devel, mesa-dev, Marek Vasut, Russell King,
	Christian Gmeiner, Philipp Zabel, joao.goncalves


> 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 (no TS) | 348   | 541 | 466   | 24    | 81   | 498|
> | etnaviv         | 434   | 901 | 832   | 19    | 106  | 871|
> | vivante         | 544   | 956 | 790   | 26    | 225  | 894|
>
> With TS enabled, offscreen scores improved considerably in some
> individual benchmarks.

Ralized that the last line (vivante) of the above table is wrong for offscreen
results with TS enabled. Correcting it:

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 (no TS)      | 348   | 541 | 466      | 24    | 81   | 498 |
| etnaviv              | 434   | 901 | 832      | 19    | 106  | 871 |
| vivante              | 402   | 624 | 520      | 26    | 177  | 557 |

With TS enabled, etnaviv offscreen scores seems to be overall better
than galcore.

Thanks!

Regards,
João Paulo

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2024-05-10 12:49 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-05-07 18:17 NXP i.MX8MM GPU performances João Paulo Gonçalves
2024-05-08  8:16 ` Lucas Stach
2024-05-08 14:32   ` João Paulo Gonçalves
2024-05-10 12:49     ` João Paulo Gonçalves

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.