GPU acceleration does not work with weston-am62:4.13.0 container

Hello,

the GPU acceleration stopped working in our C++ Qt6/QML Torizon project.

The GPU acceleration works well when the application was built/started with these containers:

Log from our C++ Qt6/QML application with EGL_LOG_LEVEL=debug:

libEGL debug: using driver pvr for 16
libEGL debug: MESA-LOADER: device is not located on the PCI bus
libEGL debug: using driver pvr for 16
libEGL debug: MESA-LOADER: dlopen(/usr/lib/aarch64-linux-gnu/dri/pvr_dri.so)

Up from these versions, the GPU acceleration does not work, software rendering is used instead:

Log from our C++ Qt6/QML application with EGL_LOG_LEVEL=debug:

libEGL debug: using driver tidss for 16
libEGL debug: MESA-LOADER: device is not located on the PCI bus
libEGL debug: using driver tidss for 16
libEGL debug: MESA-LOADER: dlopen(/usr/lib/aarch64-linux-gnu/dri/tidss_dri.so)
libEGL warning: egl: failed to create dri2 screen
libEGL debug: MESA-LOADER: dlopen(/usr/lib/aarch64-linux-gnu/dri/zink_dri.so)
MESA: error: ZINK: vkCreateInstance failed (VK_ERROR_INCOMPATIBLE_DRIVER)
libEGL warning: egl: failed to create dri2 screen
libEGL debug: MESA-LOADER: dlopen(/usr/lib/aarch64-linux-gnu/dri/swrast_dri.so)

What is the difference between the versions 4.12.0 and 4.13.0?

best regards,

Robert Fabian

tdx-info:

Software summary
------------------------------------------------------------
Bootloader:               U-Boot
Kernel version:           6.6.106-7.4.0-g650792253644 #1-Torizon SMP PREEMPT Thu Sep 18 20:27:33 UTC 2025
Kernel command line:      root=LABEL=otaroot rootfstype=ext4 quiet logo.nologo vt.global_cursor_default=0 plymouth.ignore-serial-consoles splash fbcon=map:3 ostree=/ostree/boot.1/torizon/95252299f2e662a9495c21a278c9c4133cb0363c5c7729696d5081ac9fe73b88/0
Distro name:              NAME="Torizon OS"
Distro version:           VERSION_ID=7.4.0-build.28
Distro variant:           VARIANT="Docker"
Hostname:                 verdin-am62-08723718
------------------------------------------------------------

Hardware info
------------------------------------------------------------
HW model:                 Toradex Verdin AM62 on NT656 Board
Toradex version:          0074 V1.2A
Serial number:            08723718
Processor arch:           aarch64
------------------------------------------------------------

Hi, I’m the Toradex AI Assistant.

I might make mistakes or occasionally get you wrong. Our support team will step in if needed.


Based on your logs, the issue appears to be related to GPU driver changes between container versions. The logs show that version 4.12.0 successfully uses the pvr driver while version 4.13.0 falls back to software rendering with the tidss driver.

GPU Acceleration on AM62 Modules

For AM62-based SoCs like your Verdin AM62, GPU acceleration is supported (1). The Qt containers are designed to provide hardware acceleration for Qt applications (1).

Container Usage for AM62

For your Verdin AM62 module, you should use the AM62-specific containers. The documentation shows the correct commands for running Qt applications with GPU acceleration (1):

Running Weston Container

# 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 13:* rmw" \
    --device-cgroup-rule="c 226:* rmw" --device-cgroup-rule="c 10:223 rmw" \
    torizon/weston-am62:4 --developer

(1)

Running Qt Container

# docker run --rm -it --name=qt6 \
             -v /tmp:/tmp \
             -v /dev/dri:/dev/dri --device-cgroup-rule='c 226:* rmw' \
             torizon/qt6-wayland-examples-am62:$CT_TAG_QT6_WAYLAND_EXAMPLES_AM62 \
             bash

(1)

Troubleshooting Steps

  1. Verify Container Tags: Ensure you’re using the correct AM62-specific containers (qt6-wayland-am62 and weston-am62) (1)

  2. Check Device Access: Make sure your container has proper access to /dev/dri and the correct device cgroup rules (1)

  3. Container Version: Consider staying with version 4.12.0 temporarily while investigating the driver changes in 4.13.0

Version Differences

The change from pvr to tidss driver between versions suggests an underlying Mesa/GPU driver stack update. The tidss driver is typically used for display output, while pvr is the PowerVR GPU driver that provides hardware acceleration.

To resolve this issue, you may need to ensure that the PowerVR GPU drivers are properly loaded and accessible within the newer container versions, or investigate if there were intentional changes to the GPU driver configuration.

Best regards, Toradex AI Assistant.


Did you like my answer? :+1: :-1:

If I answered your question, please tick the “Solution” checkbox.

For follow-up questions to me, please use @ToradexAI in your post.

Greetings @rfabian,

I reported this to our team. It seems there is a compatibility issue here with the 4.13.0 containers, which work on Torizon OS 7.5.0, but not the earlier versions. I see you are on Torizon OS 7.4.0.

For now the recommendation is to use the 4.12.0 containers if you are only Torizon OS 7.4.0, or earlier.

Best Regards,
Jeremias

1 Like