Hello,
We are trying to use a Verdin AM62 along with a Mallow Cardboard to run our application smoothly, however it is till now having poor performance. To improve them, we changed from using the chromium-am62 image to the cog-am62 image, and we are trying to make the GPU acceleration work. However, it is causing us trouble as we have the following error in the cog logs :
libEGL warning: egl: failed to create dri2 screen
MESA: error: ZINK: vkCreateInstance failed (VK_ERROR_INCOMPATIBLE_DRIVER)
Looking further the weston also seem to have trouble creating a correct EGL context. Weirdly when using the torizon/weston-am62:stable-rc image (or version 4), it fails on some point and logs :
failed to query DRM device from EGL
...
GL version: OpenGL ES 3.2 Mesa 24.0.1
GLSL version: OpenGL ES GLSL ES 3.20
GL vendor: Mesa
GL renderer: llvmpipe (LLVM 15.0.6, 128 bits)
...
libEGL warning: egl: failed to create dri2 screen
Refusing to try glamor on llvmpipe
However using a specific version of weston (torizon/weston-am62@sha256:ded14c38171722dd327ed8cea44310ad793e9e263451729701a99540fae27880), it seems to work better as the renderer is now :
GL version: OpenGL ES 3.1 build 23.3@6512818
GLSL version: OpenGL ES GLSL ES 3.10 build 23.3@6512818
GL vendor: Imagination Technologies
GL renderer: PowerVR A-Series AXE-1-16M
GL extensions: GL_APPLE_texture_format_BGRA8888
So, what could explain the difference of renderer and therefore of GL between those versions ?
And, admitting i stay with the specific version of weston, what should be done to make the cog work with GPU and get better performances (The fishtank demo is currently running at 2 fps) ?
Here is the example of the docker-compose I am using :
weston:
image: torizon/weston-am62@sha256:ded14c38171722dd327ed8cea44310ad793e9e263451729701a99540fae27880
cap_add:
- CAP_SYS_TTY_CONFIG
command:
- --tty=/dev/tty7
device_cgroup_rules:
- c 4:* rmw
- c 13:* rmw
- c 226:* rmw
network_mode: host
restart: always
platform: linux/arm64
volumes:
- /tmp:/tmp
- /dev:/dev
- /run/udev:/run/udev
- /var/sota/storage/docker-compose/weston:/etc/xdg/weston/
cog:
image: torizon/cog-am62:stable-rc
command:
- https://webglsamples.org/fishtank/fishtank.html
depends_on:
- weston
device_cgroup_rules:
- c 226:* rmw
platform: linux/arm64
restart: always
security_opt:
- seccomp:unconfined
shm_size: 256mb
environment:
- COG_PLATFORM_WL_VIEW_FULLSCREEN=1
volumes:
- /tmp:/tmp
- /var/run/dbus:/var/run/dbus
- /dev/dri:/dev/dri
and the current weston.ini :
[core]
idle-time=0
require-input=false
xwayland=false
modules=screen-share.so
[shell]
background-image=
background-color=0x00000000
panel-position=none
locking=false
allow-zap=false
num-workspaces=1
[keyboard]
vt-switching=false
[output]
name=LVDS-1
transform=rotate-270
#For multi-display support and other configurations, please read the article: https://developer.toradex.com/knowledge-base/working-with-weston-on-torizoncore