We are using the Yocto Project BSP 5.10.72_2.2.1 Release;
We've been running some field tests on i.MX8M Mini, and we have found what seems to be a video driver issue. Since the application uses a lot of triangles in our 3D scene, when the number of triangles reaches a specific amount of video memory usage, the kernel crashes. No other geometric form, such as squares or lines, seems to cause this issue.
We developed a Qt application that reproduces the same behavior we've encountered running our main application. It's a simple 3D scene with a slider that increases the triangle count and, consequently, the video memory.
Kernel log files attached.
Not sure, VSI is still debugging this issue.
The size of RAM if 2GB.
3Dtest application and kms.conf file in the attachment, run the application like this:
root@imx8mmevk:~# export QT_QPA_PLATFORM=eglfs
root@imx8mmevk:~# export QT_QPA_EGLFS_INTEGRATION=eglfs_kms
root@imx8mmevk:~# export QT_QPA_EGLFS_ALWAYS_SET_MODE=1
root@imx8mmevk:~# export QT_QPA_EGLFS_KMS_CONFIG=/etc/kms.conf
root@imx8mmevk:~# export QT_LOGGING_RULES=qt.qpa.input=true
root@imx8mmevk:~# export QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS=/dev/input/event1
root@imx8mmevk:~# export QT_QPA_EVDEV_MOUSE_PARAMETERS=/dev/input/event1
root@imx8mmevk:~# export QT_QPA_FB_HIDECURSOR=1
root@imx8mmevk:~# export QT_QWS_FONTDIR=/usr/share/fonts
root@imx8mmevk:~#
root@imx8mmevk:~# ./3DTEST -platform eglfs
I can't reproduce same issue on i.MX8MM EVK
Here is memory information after using 400000 triangles.
root@imx8mmevk:/sys/kernel/debug/gc# cat meminfo
VIDEO MEMORY:
POOL SYSTEM:
Free : 26274148 B
Used : 107943580 B
MinFree : 10762236 B
MaxUsed : 123455492 B
Total : 134217728 B
POOL VIRTUAL:
Used : 24883200 B
MaxUsed : 24883200 B
Are you using same cma size in your dts?
resmem: reserved-memory {
#address-cells = <2>;
#size-cells = <2>;
ranges;
/* global autoconfigured region for contiguous allocations */
linux,cma {
compatible = "shared-dma-pool";
reusable;
size = <0 0x28000000>;
alloc-ranges = <0 0x80000000 0 0x40000000>;
linux,cma-default;
};
};
From the crash log, it relates to memory.
Memory information when triangle is 0:
root@imx8mmevk:gc# cat meminfo
VIDEO MEMORY:
POOL SYSTEM:
Free : 107181520 B
Used : 27036208 B
MinFree : 27508744 B
MaxUsed : 106708984 B
Total : 134217728 B
POOL VIRTUAL:
Used : 12304384 B
MaxUsed : 12304384 B
when triangles increase to 40000:
root@imx8mmevk:gc# cat meminfo
VIDEO MEMORY:
POOL SYSTEM:
Free : 51040464 B
Used : 83177264 B
MinFree : 27508744 B
MaxUsed : 106708984 B
Total : 134217728 B
POOL VIRTUAL:
Used : 12304384 B
MaxUsed : 12304384 B