TorizonCore 6.1 cannot render anymore 3D content on Verdin iMX8M-Mini

Hi @vix !

This bumping that you are referring to was done as a test for Toradex R&D to check for problems. It was done on purpose. Now it was rolled back, as you can see here: container-tags.sh: rollback browsers to bullseye · toradex/meta-toradex-torizon@cd85120 · GitHub

There are at least two ways (and, being honest, I just learned about them :smile: ).

You can check toradex-manifest.git - Repo manifest for Toradex Embedded Linux TorizonCore and BSP layer setup for Yocto Project/Openembedded for tags in Toradex’s manifest file. You will find there Quarterlies and probably Monthlies.

Also, you can get the layers’ commits from an image itself: you just need to check the /etc/build content. E.g.:

$ cat /etc/build      
-----------------------
Build Configuration:  |
-----------------------
DISTRO = torizon
DISTRO_VERSION = 6.3.0-devel-20230504145727+build.0
-----------------------
Layer Revisions:      |
-----------------------
meta-toradex-torizon = tor-2903:3f03c352e7d12987eb47edb4ae7a09cae6b3f506 -- modified
meta-toradex-distro = HEAD:fda3e56a06f7d3cef7f73b174bb68c4f1074c26e 
meta-toradex-bsp-common = HEAD:1c5d0d1d763366eabbacaeb40fb2813e9488f7c3 
meta-oe           = HEAD:82c75b466e55d7dca7a2364986ecb704cf63d141 
meta-networking   = HEAD:82c75b466e55d7dca7a2364986ecb704cf63d141 
meta-filesystems  = HEAD:82c75b466e55d7dca7a2364986ecb704cf63d141 
meta-python       = HEAD:82c75b466e55d7dca7a2364986ecb704cf63d141 
meta-perl         = HEAD:82c75b466e55d7dca7a2364986ecb704cf63d141 
meta-virtualization = HEAD:a7413c5d7568ce91b809ed11f84305b1afb468bb 
meta-updater      = HEAD:ffbbc2b9f46a60bd2d51be53079252f8e6304a8b 
meta-toradex-nxp  = HEAD:8f9e36d0af54b568a2eada60860605f4899daaa4 
meta-freescale    = HEAD:d9f77788e1902a7d999958575a955e701c1c1b61 
meta-freescale-3rdparty = HEAD:f6fa0fd8783ce69d07feaad0b7ca6759b5a4d5d6 
meta-yocto-bsp    = HEAD:b662ed3d7a40d7c96f67b8a2337fd1eaa3f179a9 
meta-poky         = HEAD:b662ed3d7a40d7c96f67b8a2337fd1eaa3f179a9 
meta-security     = HEAD:cc20e2af2ae1c74e306f6c039c4963457c4cbd0f 
meta-toradex-ti   = HEAD:82e19264109288ddd80a673d83079a96d20d6dce 
meta-arm-toolchain = HEAD:904f8e82c2772986fad500af4f72f5211a7ff831 
meta-arm          = HEAD:904f8e82c2772986fad500af4f72f5211a7ff831 
meta-ti-bsp       = HEAD:2a5a0339d5bd28d6f6aedaf02a6aaa9b73a248e4 
meta-ti-extras    = HEAD:2a5a0339d5bd28d6f6aedaf02a6aaa9b73a248e4 
meta              = HEAD:6b50713cd51002584915f46eb366b8667db210ea

Best regards,

1 Like

Hi @vix !

Do you have any updates regarding this thread?

Was this solved?

Best regards,

Hi @henrique.tx

not yet;
based on what I see in the past (i.e., issues mixing bullseye and bookworm containers), I prefer wating for Chromium:3 bookworm before trying again.

Hi @vix !

Did you have time to test the Chromium Bookworm version?

https://hub.docker.com/r/torizon/chromium/tags

Best regards,

Hi @vix !

Did you have time to test the new Chromium Bookworm Container?

Best regards,

Hi @henrique.tx
yes I tried.
Basically the Chromium Bookworm Container works for a simple web page.
But the behavior with 3D content is not ok.
It seems that Vulkan is not enabled (or something like that), but I need some more time to investigate.
I let you know.

Hi @vix !

Thanks for the feedback.

When you get back to us, please don’t forget to share details of your tests, so we can perform the same tests and compare the results.

Best regards,

It seems that Vulkan is not enabled

Just to clarify on this point. According to NXP: i.MX 8 Series Applications Processors | Arm® Cortex®-A72/A53/A35/M4 cores | NXP Semiconductors

The i.MX8M Mini SoC does not have support for Vulkan. So lack of Vulkan support would be expected here.

Best Regards,
Jeremias

Hi @jeremias.tx
sorry for the confusion.
This topic has been created when I’ve been working on the Mini (February 2023).
But in the meanwhile I switched to the Plus (tha has HDMI).
For this reason now I refer to the Plus (that has Vulkan).

But in the meanwhile I switched to the Plus (tha has HDMI).

I see, I didn’t realize this. In that case ignore my previous message.

As we saw together with @matheus.tx it seems that even if chromium flags show that WebGL and WebGL2 are enabled (and Vulkan is not)
immagine

running this simple 3D js application Basic demo - CodeSandbox show a high load on the CPU.
This is unexpected, but it’s difficult to say since at the moment a GPU profiling is not available on TorizonCore for Verdin IMX8M-Plus.

@jeremias.tx Are you able to reproduce this behavior (high load on CPU when running the example) on your side?
Is it possible that WebGL is enabled, but not used (for some reason)?

Does the demo on that webpage actually run for you? I tried myself and the webpage opens but the demo actually never seems to start. In some cases after a while the webpage just goes black for me.

Best Regards,
Jeremias

Yes, it works on the Plus, with one lof the nightlies of TorizonCore downloaded more or less on the middle of July 2023 (I can’t check now the exat number).

I was able to get the demo application to run. Though I had to restart the container multiple times as sometimes the demo would fail to load or the webpage would freeze/crash. Is this what you’ve observed as well or does it work for you every time?

On the matter of CPU usage here’s what I see while the demo app is running. According to top I see 3 chromium processes at the top of the list that average around 70%, 50%, and 25% cpu usage. Though occasionally I see these values spike higher for short periods. Is this what you are seeing in terms of “high cpu load”?

Best Regards,
Jeremias

During my test, the demo works well. No freeze/crash.

For the cpu load, I confirm what you see.
And it’s not expected, since the whole animation of the demo is supposed to be done by the GPU, and so the CPU should stay more or less “unloaded”.
As a suggestion from muy side, a GPU profiling tool in TorizonCore would simplify dramatically this kind of analysis.
My feeling (it’s only a feeling) is that the animation is done by the CPU, even if the GPU is enabled.
Is there a way to confirm or negate this?
If it’s true, why the GPU is not used?

I did some additional testing and it really seems like something here is amiss with regards to hardware acceleration. I used this site to test WebGL: WebGL Blobs

With this I see a similarly high cpu usage as well. I’ll report this to our development team to look into.

As a suggestion from muy side, a GPU profiling tool in TorizonCore would simplify dramatically this kind of analysis.

Unfortunately this is a bit difficult since the GPU and the technology around it is proprietary to NXP. NXP does provide some kind of gpu tooling as seen here: GitHub - nxp-imx/imx-gputop: i.MX GPU Performance Tool

Though keep in mind this is provided by NXP and we’ve done no testing with this tool at the moment.

Best Regards,
Jeremias

Ok. Let me know.

It seems that this tool could be included in TorizonCore, but I think that now it’s not.
Searching in NXP Community I found this topic and I read

gputop and libgpuperfcnt builds for linux BSP seem broken in 5.15 indeed

I opened a ticket to NXP to investigate what happens to gputop.
NXP Tech support wrote me that

current bsp supports gputop already, I tested 5.15 without any issue, you can test, if you have any issue, pls tell me what you get, let me reproduce this

@jeremias.tx do you know why gputop has not been included in TorizonCore for iMX8M-Plus?

do you know why gputop has not been included in TorizonCore for iMX8M-Plus?

Well there’s a multitude of reasons.

  • The tool itself is somewhat unreliable and prone to issues as you’ve seen on the NXP forums.
  • Toradex can’t reasonably support, and maintain this tool if there are issues or questions since it’s not in our control or design.
  • It’s not a tool you’d want in a production ready image like TorizonCore so having it there by default is not desirable for a lot of customers.

That said there’s nothing stopping you from including this yourself. You could even try building this and deploying the tool in a container. In fact there were some experiments to try this by some in Toradex: Docker

You could give this a try but again it’s not an officially supported tool from us and the support we can provide is minimal at best. Any advanced issues or questions regarding the tool or GPU in general would best be brought to NXP as the proprietary nature here limits what we can do.

Best Regards,
Jeremias

1 Like

Do you have news from the development team on this issue?
Thanks

Nothing significant to share at the moment. The team is fairly sure there is something strange going on with hardware acceleration in chromium, though there’s no exact details and further work and investigation is still needed.

Best Regards,
Jeremias