Toybrick

标题: V1.3 Fedroa 缺少mali库支持 [打印本页]

作者: 板蓝根    时间: 2019-7-2 16:32
标题: V1.3 Fedroa 缺少mali库支持
我在Fedroa上准备跑glmark2时发现系统好像没有包含mali库,请问贵公司可不可以提供可安装的deb包,或者之后的更新中会不会添加mali库支持

作者: jefferyzhang    时间: 2019-7-2 17:12
有的,只是因为依赖问题,我们放到了标准ocl的库里
dnf install ocl-icd-devel.aarch64

作者: 板蓝根    时间: 2019-7-3 09:50
jefferyzhang 发表于 2019-7-2 17:12
有的,只是因为依赖问题,我们放到了标准ocl的库里
dnf install ocl-icd-devel.aarch64
...

你好,这样的话glmark2怎么去用mali来跑呢?debian上是通过链接链到mali库上去
作者: jefferyzhang    时间: 2019-7-3 10:05
板蓝根 发表于 2019-7-3 09:50
你好,这样的话glmark2怎么去用mali来跑呢?debian上是通过链接链到mali库上去 ...

rpm -ql ocl-icd-devel

链接这个库/usr/lib64/libOpenCL.so就可以了。
mali的GL和CL是在一个so里,我们只是解决了CL依赖而已,GL依赖还没找到相关的包。先这么用
作者: 板蓝根    时间: 2019-7-3 10:27
jefferyzhang 发表于 2019-7-3 10:05
rpm -ql ocl-icd-devel

链接这个库/usr/lib64/libOpenCL.so就可以了。

[toybrick@localhost ~]$ readlink -f /usr/lib64/libOpenCL.so
/usr/lib64/libmali.so.r18p0

但是结果FPS只有20多左右,在debian下基本上都是60,还是没有用mali在跑
作者: jefferyzhang    时间: 2019-7-3 10:51
板蓝根 发表于 2019-7-3 10:27
[toybrick@localhost ~]$ readlink -f /usr/lib64/libOpenCL.so
/usr/lib64/libmali.so.r18p0

这个mali库应该是没问题的,我们也在用。
可以单独写一些gl程序试下走的是不是mali.so
或者你可以从debian把那套so拷贝过来用,debian的mali是多少版本的?
作者: 板蓝根    时间: 2019-7-3 11:11
jefferyzhang 发表于 2019-7-3 10:51
这个mali库应该是没问题的,我们也在用。
可以单独写一些gl程序试下走的是不是mali.so
或者你可以从debia ...

[toybrick@localhost ~]$ ldd /usr/bin/glmark2-es2
        linux-vdso.so.1 (0x0000007f84bb2000)
        libjpeg.so.62 => /lib64/libjpeg.so.62 (0x0000007f84b1c000)
        libdl.so.2 => /lib64/libdl.so.2 (0x0000007f84afb000)
        libpng12.so.0 => /lib64/libpng12.so.0 (0x0000007f84aba000)
        libX11.so.6 => /lib64/libX11.so.6 (0x0000007f84966000)
       libEGL.so.1 => /lib64/libEGL.so.1 (0x0000007f84935000)
        libGLESv2.so.2 => /lib64/libGLESv2.so.2 (0x0000007f848f4000)
        libstdc++.so.6 => /lib64/libstdc++.so.6 (0x0000007f8474f000)
        libm.so.6 => /lib64/libm.so.6 (0x0000007f8468e000)
        libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x0000007f8465d000)
        libc.so.6 => /lib64/libc.so.6 (0x0000007f844e7000)
        /lib/ld-linux-aarch64.so.1 (0x0000007f84b84000)
        libz.so.1 => /lib64/libz.so.1 (0x0000007f844b6000)
        libxcb.so.1 => /lib64/libxcb.so.1 (0x0000007f84475000)
        libGLdispatch.so.0 => /lib64/libGLdispatch.so.0 (0x0000007f84344000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x0000007f8430f000)
        libXau.so.6 => /lib64/libXau.so.6 (0x0000007f842ee000)
[toybrick@localhost ~]$ [ 2558.267001] wl_run_escan: LEGACY_SCAN sync ID: 43, bssidx: 0


你好,是不是应该连到libEGL.so.1呢 ,我之前试过把debian 的mali,deb包解包手动cp到fedroa中然后(libmali-rk-midgard-t86x-r14p0_1.6-1_arm64.deb),然后链接上面的库,跑glmark2-es2-drm可以达到60fps,但是glmark2-es2会报一下的错

eglinitialize() failed with error 0x3001
作者: jefferyzhang    时间: 2019-7-3 11:33
本帖最后由 jefferyzhang 于 2019-7-3 11:35 编辑

直接链接 /usr/lib64/libmali.so.r18p0 就好了

你报错的是显示框架,跟EGL无关。

如果桌面在运行,drm已经被桌面占用了,是不能跑DRM的,但是如果你没有其他框架,只有DRM,那你跑EGL肯定初始化失败。。。

设置:sudo systemctl set-default multi-user.target
然后重启,然后就没有桌面了,这时候再跑drm的es2

库差异我们这里复现下试试

作者: 板蓝根    时间: 2019-7-3 11:43
jefferyzhang 发表于 2019-7-3 11:33
直接链接 /usr/lib64/libmali.so.r18p0 就好了

你报错的是显示框架,跟EGL无关。

上面的报错是跑glmark2-es2跑的错 ,glmark2-es2-drm是成功的。。
作者: jefferyzhang    时间: 2019-7-3 11:43
板蓝根 发表于 2019-7-3 11:43
上面的报错是跑glmark2-es2跑的错 ,glmark2-es2-drm是成功的。。

glmark2是自己编译的还是dnf install的?
作者: 板蓝根    时间: 2019-7-3 12:06
dnf install

这个是装了嵌入到opencl 里mali库后运行glmark2-es2结果

[toybrick@localhost lib64]$ glmark2-es2
libEGL warning: DRI2: failed to authenticate
=======================================================
    glmark2 2017.07
=======================================================
    OpenGL Information
    GL_VENDOR:     VMware, Inc.
    GL_RENDERER:   llvmpipe (LLVM 6.0, 128 bits)
    GL_VERSION:    OpenGL ES 3.0 Mesa 18.0.5
=======================================================
[build] use-vbo=false: FPS: 24 FrameTime: 41.667 ms
[build] use-vbo=true: FPS: 24 FrameTime: 41.667 ms
[texture] texture-filter=nearest: FPS: 28 FrameTime: 35.714 ms

作者: jefferyzhang    时间: 2019-7-3 12:08
板蓝根 发表于 2019-7-3 12:06
dnf install

这个是装了嵌入到opencl 里mali库后运行glmark2-es2结果

直接安装,连接的依赖全是错的,肯定没跑到mali。
作者: 板蓝根    时间: 2019-7-3 17:48
下午手动编译也是只有20FPS  ,只有像debian一样链glmark2-es2-drm才正常
[toybrick@localhost etc]$ glmark2-es2-drm
=======================================================
    glmark2 2017.07
=======================================================
    OpenGL Information
    GL_VENDOR:     ARM
    GL_RENDERER:   Mali-T860
    GL_VERSION:    OpenGL ES 3.2 v1.r14p0-01rel0-git(966ed26).f44c85cb3d2ceb87e8be88e7592755c3
=======================================================
[build] use-vbo=false:^C FPS: 59 FrameTime: 16.949 ms
=======================================================
                                  glmark2 Score: 59
=======================================================
[toybrick@localhost etc]$ cd
[toybrick@localhost ~]$ ls


但是跑glmark2-es2依然报错

[toybrick@localhost ~]$ DISPLAY=:0 glmark2-es2
Error: eglInitialize() failed with error: 0x3001
Error: eglInitialize() failed with error: 0x3001
Error: main: Could not initialize canvas

如果什么都不改,是不会报错的但是没有用mali在跑,只有20fps
作者: jefferyzhang    时间: 2019-7-4 09:37
板蓝根 发表于 2019-7-3 17:48
下午手动编译也是只有20FPS  ,只有像debian一样链glmark2-es2-drm才正常
[toybrick@localhost etc]$ glmar ...

是的,什么都不改依赖肯定是错的。
我昨天有问了相关工程师,这个问题可能比较复杂,Toybrick上Mali r18库是以CL为主的加速模式,GL要想走gbm的话驱动要修改一些东西,略麻烦。如果你用debian r14库能用的话建议先用那个。不然就要走x11或者其他的图形显示框架来用r18的GL。
作者: 板蓝根    时间: 2019-7-4 20:39
本帖最后由 板蓝根 于 2019-7-4 20:43 编辑
jefferyzhang 发表于 2019-7-4 09:37
是的,什么都不改依赖肯定是错的。
我昨天有问了相关工程师,这个问题可能比较复杂,Toybrick上Mali r18 ...

你好,感谢回复,可能上说得有点乱了,现在的情况是不用r18,用debian那里拿过来的r14。

现在跑glmark2-es2报错,这个就是跑x11 + opengl es 2.0
Error: eglInitialize() failed with error: 0x3001

跑glmark2-es2-drm成功 ,这个是drm显示框架
   GL_RENDERER:   Mali-T860
    GL_VERSION:    OpenGL ES 3.2 v1.r14p0-01rel0-git(966ed26).f44c85cb3d2ceb87e8be88e7592755c3
这个是成功用到gpu在跑,而且运行结果也是ok的

现在问题就是不知道哪里出错了导致x11+opengl es2.0,在egl这里报错了
作者: jefferyzhang    时间: 2019-7-5 11:43
板蓝根 发表于 2019-7-4 20:39
你好,感谢回复,可能上说得有点乱了,现在的情况是不用r18,用debian那里拿过来的r14。

现在跑glmark2-e ...

x11架构需要打开桌面系统,具体调用路径要去跟下,x11 server我们适配的gbm也是kernel那个,会遇到和r18一样的性能问题。
有一个能跑就可以了,没必要每个显示框架都跑过去把




欢迎光临 Toybrick (https://t.rock-chips.com/) Powered by Discuz! X3.3