Imx-gpu-viv-wayland on torizon/qt6-wayland:4 image

We ran into this issue when building a torizon 6 yocto image: Error while building Torizon 6 - #8 by eric.tx

We then tried updating to torizon 7 which solved the issue with useradd but one of our requirements is running Qt applications with GPU acceleration in docker containers.

Our applications work with the torizon/qt6-wayland:4 image but the imx-gpu-viv-wayland package seems to not be available. Is the GPU driver coming soon by any chance?

The module we’re using is imx8mp.

Hi, I’m the Toradex AI Assistant. The Toradex Support team will follow up with you shortly!

Did you like my answer?

:+1: :-1:


Hello,

It sounds like you’re encountering some challenges with GPU acceleration for your Qt applications on Torizon 7 using the iMX8MP module. The imx-gpu-viv-wayland package is indeed essential for enabling GPU acceleration on NXP i.MX8 modules. For your needs, the qt6-wayland-vivante container is specifically designed for iMX8 modules and includes the necessary GPU drivers for hardware acceleration.

If the imx-gpu-viv-wayland package is not available in the torizon/qt6-wayland:4 image, it might be due to a version mismatch or an update in the container images. To ensure you have the correct setup, please use the following command to pull the latest version of the qt6-wayland-vivante container:

$ docker pull torizon/qt6-wayland-vivante:latest

This command will help you obtain the latest container with the appropriate GPU drivers. By using the qt6-wayland-vivante container, you should be able to achieve the desired GPU acceleration for your Qt applications on the iMX8MP module.

I hope this helps resolve your issue. If you have any further questions, feel free to ask.

Best regards, Toradex AI Assistant.

Please, also check if these links can help you solve your problem:

Getting Qt 6.6 on torizon/qt6-wayland-vivante (Docker Container).

Hello @juho-verge,

For Torizon OS 7, the naming convention for the hardware-accelerated containers has changed.
When using iMX8-based modules, you need to use the *-imx8 containers.

Therefore, the container you need for qt6 is torizon/qt6-wayland-imx8.
To run a simple test on the Verdin iMX8MP, you can use the torizon/qt6-wayland-examples-imx8, after running the torizon/weston-imx8 container.

Run Weston:

docker container run -d --name=weston --net=host \
    --cap-add CAP_SYS_TTY_CONFIG \
    -v /dev:/dev -v /tmp:/tmp -v /run/udev/:/run/udev/ \
    --device-cgroup-rule="c 4:* rmw" --device-cgroup-rule="c 253:* rmw" \
    --device-cgroup-rule="c 13:* rmw" --device-cgroup-rule="c 226:* rmw" \
    --device-cgroup-rule="c 10:223 rmw" --device-cgroup-rule="c 199:0 rmw" \
    torizon/weston-imx8:4 \
    --developer

Run Qt Container:

docker run -e ACCEPT_FSL_EULA=1 --rm -it --name=qt6 \
           -v /tmp:/tmp \
           -v /dev/dri:/dev/dri -v /dev/galcore:/dev/galcore \
           --device-cgroup-rule='c 199:* rmw' --device-cgroup-rule='c 226:* rmw' \
           torizon/qt6-wayland-examples-imx8:$CT_TAG_QT6_WAYLAND_EXAMPLES \
           bash

At this point, you will be in a shell within the Qt6 examples container.
To confirm proper GPU acceleration, you can run the contextinfo program and interact with it to create an OpenGL/OpenGLES context.

/usr/lib/aarch64-linux-gnu/qt6/examples/opengl/contextinfo/contextinfo

Best Regards,
Bruno