JeffyCN / mirrors

Mirrors of Rockchip BSP repositories, only contains yocto related ones to keep it thin since the yocto would try to clone the whole repository.
Other
13 stars 5 forks source link

在ubuntu 22.04的嵌入式服务器系统上报:could not initialize canvas #24

Closed kevin406972552 closed 4 months ago

kevin406972552 commented 4 months ago

在ubuntu22.04 下载源码后meson build 发现生成的.so只有8.2kb,ninja ---> ninja install 后,把安装目录的.so文件覆盖到系统/usr/lib/aarch64-linux-gnu/目录下 运行glmark2-es2-drm 报错: root@localhost:/usr/lib/aarch64-linux-gnu# ls libmali libMali libEGL libgbm libGLES* -l -h lrwxrwxrwx 1 root root 11 Apr 15 15:07 libEGL.so -> libEGL.so.1 -rwxr-xr-x 1 root root 8.2K Apr 15 15:07 libEGL.so.1 lrwxrwxrwx 1 root root 17 Apr 15 15:07 libGLESv1_CM.so -> libGLESv1_CM.so.1 -rwxr-xr-x 1 root root 8.2K Apr 15 15:07 libGLESv1_CM.so.1 lrwxrwxrwx 1 root root 14 Apr 15 15:07 libGLESv2.so -> libGLESv2.so.2 -rwxr-xr-x 1 root root 8.2K Apr 15 15:07 libGLESv2.so.2 lrwxrwxrwx 1 root root 18 Apr 15 15:07 libMaliOpenCL.so -> libMaliOpenCL.so.1 -rwxr-xr-x 1 root root 8.2K Apr 15 15:07 libMaliOpenCL.so.1 lrwxrwxrwx 1 root root 11 Apr 15 15:07 libgbm.so -> libgbm.so.1 -rwxr-xr-x 1 root root 8.2K Apr 15 15:07 libgbm.so.1 lrwxrwxrwx 1 root root 12 Apr 15 15:07 libmali-bifrost-g52-g13p0-gbm.so -> libmali.so.1 -rw-r--r-- 1 root root 3.6K Apr 15 14:59 libmali-hook-injector.a lrwxrwxrwx 1 root root 17 Apr 15 15:07 libmali-hook.so -> libmali-hook.so.1 lrwxrwxrwx 1 root root 21 Apr 15 15:07 libmali-hook.so.1 -> libmali-hook.so.1.9.0 -rwxr-xr-x 1 root root 23K Apr 15 15:07 libmali-hook.so.1.9.0 lrwxrwxrwx 1 root root 12 Apr 15 15:07 libmali.so -> libmali.so.1 lrwxrwxrwx 1 root root 16 Apr 15 15:07 libmali.so.1 -> libmali.so.1.9.0 -rwxr-xr-x 1 root root 42M Apr 15 15:07 libmali.so.1.9.0 root@localhost:/usr/lib/aarch64-linux-gnu# glmark2-es2-drm arm_release_ver: g13p0-01eac0, rk_so_ver: 10 Error: eglCreateWindowSurface failed with error: 0x3009 Error: eglCreateWindowSurface failed with error: 0x3009 Error: CanvasGeneric: Invalid EGL state Error: main: Could not initialize canvas

同样的方法在ubuntu23.10系统下,能正常运行glmark2-es2-drm root@localhost:~# glmark2-es2-drm arm_release_ver: g13p0-01eac0, rk_so_ver: 10

glmark2 2023.01

======================================================= OpenGL Information GL_VENDOR: ARM GL_RENDERER: Mali-G52 GL_VERSION: OpenGL ES 3.2 v1.g13p0-01eac0.fdf91928d758c45c1787782175b35c6a Surface Config: buf=32 r=8 g=8 b=8 a=8 depth=24 stencil=0 samples=0 Surface Size: 800x480 fullscreen

[build] use-vbo=false: FPS: 60 FrameTime: 16.697 ms [build] use-vbo=true: FPS: 60 FrameTime: 16.679 ms [texture] texture-filter=nearest: FPS: 60 FrameTime: 16.671 ms [texture] texture-filter=linear: FPS: 60 FrameTime: 16.693 ms [texture] texture-filter=mipmap: FPS: 60 FrameTime: 16.672 ms [shading] shading=gouraud: FPS: 60 FrameTime: 16.701 ms [shading] shading=blinn-phong-inf: FPS: 60 FrameTime: 16.693 ms [shading] shading=phong: FPS: 60 FrameTime: 16.687 ms [shading] shading=cel: FPS: 60 FrameTime: 16.691 ms [bump] bump-render=high-poly: FPS: 60 FrameTime: 16.717 ms [bump] bump-render=normals: FPS: 60 FrameTime: 16.681 ms [bump] bump-render=height: FPS: 60 FrameTime: 16.685 ms [effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 60 FrameTime: 16.678 ms [effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 60 FrameTime: 16.703 ms [pulsar] light=false:quads=5:texture=false: FPS: 60 FrameTime: 16.692 ms [desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 60 FrameTime: 16.689 ms [desktop] effect=shadow:windows=4: FPS: 60 FrameTime: 16.679 ms [buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 43 FrameTime: 23.739 ms [buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 42 FrameTime: 24.119 ms [buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 60 FrameTime: 16.690 ms [ideas] speed=duration: FPS: 60 FrameTime: 16.689 ms [jellyfish] : FPS: 60 FrameTime: 16.692 ms [terrain] : FPS: 33 FrameTime: 30.709 ms [shadow] : FPS: 60 FrameTime: 16.674 ms [refract] : FPS: 58 FrameTime: 17.336 ms [conditionals] fragment-steps=0:vertex-steps=0: FPS: 60 FrameTime: 16.681 ms [conditionals] fragment-steps=5:vertex-steps=0: FPS: 60 FrameTime: 16.695 ms [conditionals] fragment-steps=0:vertex-steps=5: FPS: 60 FrameTime: 16.691 ms [function] fragment-complexity=low:fragment-steps=5: FPS: 60 FrameTime: 16.677 ms [function] fragment-complexity=medium:fragment-steps=5: FPS: 60 FrameTime: 16.700 ms [loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 60 FrameTime: 16.686 ms [loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 60 FrameTime: 16.689 ms [loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 60 FrameTime: 16.691 ms

                              glmark2 Score: 57

=======================================================

JeffyCN commented 4 months ago

rwxr-xr-x 1 root root 42M Apr 15 16:10 libmali.so.1.9.0

JeffyCN commented 4 months ago

pls try to test it with newest glmark2

kevin406972552 commented 4 months ago

两个系统环境下用的同样的glmark2-es2-drm版本,都是 apt update apt install glmark2-es2-drm 安装的。 最大的问题是在ubuntu22.04下ninja install 生成的 -rwxr-xr-x 1 root root 8.2K Apr 15 15:07 libEGL.so.1 -rwxr-xr-x 1 root root 8.2K Apr 15 15:07 libGLESv1_CM.so.1 -rwxr-xr-x 1 root root 8.2K Apr 15 15:07 libGLESv2.so.2 等等都异常的小。

我也试过只把下面的覆盖过去,也不行 lrwxrwxrwx 1 root root 17 Apr 15 15:07 libmali-hook.so -> libmali-hook.so.1 lrwxrwxrwx 1 root root 21 Apr 15 15:07 libmali-hook.so.1 -> libmali-hook.so.1.9.0 -rwxr-xr-x 1 root root 23K Apr 15 15:07 libmali-hook.so.1.9.0 lrwxrwxrwx 1 root root 12 Apr 15 15:07 libmali.so -> libmali.so.1 lrwxrwxrwx 1 root root 16 Apr 15 15:07 libmali.so.1 -> libmali.so.1.9.0 -rwxr-xr-x 1 root root 42M Apr 15 15:07 libmali.so.1.9.0

JeffyCN commented 4 months ago

they are expected to be small.

pls use the same glmark2 to test. (there's a knowing issue about old glmark2, it should be fixed in newer version)

kevin406972552 commented 4 months ago

在ubuntu23.10的文件系统情况下,刚刚还做了Qt的交叉编译: 1:在没更换编译出来的库时,config正常通过,并支持opengl 2:在更换编译出来的库后却报egl,eglfs,opengl es2 依赖库的错误

JeffyCN commented 4 months ago

For Debian-based OSs, this libmali uses vendor packaging, which would conflict with the unified libmali library(vendor packaging requires multiple sonames). So there would be some dummy(smallest) libraries to wrap the libmali. This requires third-party packages to get compiling flags through pkg-config(which would provide -lmali in ldflags) instead of being hard-coded in their build scripts.

The suggested way to use this libmali on Debian-based OS would be: 1/ Remove it when compiling other packages. 2/ Install it only when you are about to use it.