Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

是否考虑添加(或者考虑给出添加教程)一些Arm Mali GPU的驱动进入ReDroid #362

Open
akibaso opened this issue Apr 18, 2023 · 29 comments

Comments

@akibaso
Copy link

akibaso commented Apr 18, 2023

Is your feature request related to a problem? Please describe.
我在使用reDroid运行游戏+scrcpy串流的时候CPU爆满,虽然

redroid_arm64:/ # dumpsys SurfaceFlinger | grep GLES
GLES: Panfrost, Mali-T860 (Panfrost), OpenGL ES 3.1 Mesa 22.1.5 (git-f94151ee80)

指示是使用了GPU,但是指定GPU NODE SurfaceFlinger 必定无法启动,找到了类似issue但未找到明确解决方案,貌似使用waydroid可以直接使用GPU,我也参考waydroid挂载了设备上的渲染节点,然而没有作用

Describe the solution you'd like
是否考虑添加(或者考虑给出添加教程)一些Arm Mali GPU的驱动进入ReDroid,或者提供一种从原厂镜像中获取驱动并并入reDroid的方法
如果可以的话感谢帮助
硬件配置
RK3399(Mali T860 GPU)
Armbian 23.02 (ubuntu jammy)

@zhouziyang
Copy link
Member

Primary due to the poor media encoder (h264 etc.).
It's possible to add all those graphic blobs alongside with the existing.

@fandashi18
Copy link

rk平台应该需要集成MPP才能释放硬编码能力吧。

@Lua12138
Copy link

需要集成MPP才能释放硬编码

from #228 , it looks like no need to mpp.

@fandashi18
Copy link

需要集成MPP才能释放硬编码

from #228 , it looks like no need to mpp.

mesa3d编译时可以指定不同版本,比如i915,对应intel gpu。这个issue中rk官方给的gles应该是可以调用rk gpu硬件的。
但是,这个issue描述cpu依然负载很重。我猜测要么是游戏本身就是吃cpu,要么就是走了media swcodec。谁有环境可以用top命令看下进程media.swcodec的cpu负载。我试用了android x86 和bliss等一些开源android项目,发现它们走的都是软编码,所以很卡。

@Lua12138
Copy link

需要集成MPP才能释放硬编码

from #228 , it looks like no need to mpp.

mesa3d编译时可以指定不同版本,比如i915,对应intel gpu。这个issue中rk官方给的gles应该是可以调用rk gpu硬件的。 但是,这个issue描述cpu依然负载很重。我猜测要么是游戏本身就是吃cpu,要么就是走了media swcodec。谁有环境可以用top命令看下进程media.swcodec的cpu负载。我试用了android x86 和bliss等一些开源android项目,发现它们走的都是软编码,所以很卡。

我尝试一下,从228的描述来看,它的解决方案并不困难,只是商业原因,无法分享出来。正好我手上有个3566的开发板。

@helperShang
Copy link

我也搞定

image

@SeeFlowerX
Copy link

我也搞定

image

可以说一下方法或者思路吗,GPU能用起来就行了

@helperShang
Copy link

@zhouziyang The decoding library has been ported,but hw/android.hardware.media.omx@1.0-service High cpu usage?

image

@helperShang
Copy link

终于搞定mpp硬解码了,cpu 降下来了

a66d571b35dd:/ # dumpsys media.player |grep 'hw-accelerated: 1'
      hw-accelerated: 1 ]
      hw-accelerated: 1 ]
      hw-accelerated: 1 ]
      hw-accelerated: 1 ]
      hw-accelerated: 1 ]
      hw-accelerated: 1 ]
      hw-accelerated: 1 ]
      hw-accelerated: 1 ]
      hw-accelerated: 1 ]

@fandashi18
Copy link

终于搞定mpp硬解码了,cpu 降下来了

a66d571b35dd:/ # dumpsys media.player |grep 'hw-accelerated: 1'
      hw-accelerated: 1 ]
      hw-accelerated: 1 ]
      hw-accelerated: 1 ]
      hw-accelerated: 1 ]
      hw-accelerated: 1 ]
      hw-accelerated: 1 ]
      hw-accelerated: 1 ]
      hw-accelerated: 1 ]
      hw-accelerated: 1 ]

我这边也加了,不过我发现插入camera后会出现文件描述符泄漏的问题。lsof -p 看的。
不知道你那边有没有这个情况?

@helperShang
Copy link

没适配camera

我抖音有的视频有问题,这个问题。

05-19 02:09:38.914    79 16716 E mpp_buffer: mpp_buffer_ref_dec found non-positive ref_count 0 caller commitBufferToMpp
05-19 02:09:38.915    79 16716 E mpp_buffer: mpp_buffer_ref_dec found non-positive ref_count 0 caller commitBufferToMpp
05-19 02:09:38.915    79 16716 E mpp_buffer: mpp_buffer_ref_dec found non-positive ref_count 0 caller commitBufferToMpp
05-19 02:09:38.916    79 16716 E mpp_buffer: mpp_buffer_ref_dec found non-positive ref_count 0 caller commitBufferToMpp
05-19 02:09:38.916    79 16716 E mpp_buffer: mpp_buffer_ref_dec found non-positive ref_count 0 caller commitBufferToMpp
05-19 02:09:38.917    79 16716 E mpp_buffer: mpp_buffer_ref_dec found non-positive ref_count 0 caller commitBufferToMpp
05-19 02:09:38.920    79 16716 E mpp_buffer: mpp_buffer_ref_dec found non-positive ref_count 0 caller commitBufferToMpp
05-19 02:09:38.920    79 16716 E mpp_buffer: mpp_buffer_ref_dec found non-positive ref_count 0 caller commitBufferToMpp
05-19 02:09:38.920    79 16716 E mpp_buffer: mpp_buffer_ref_dec found non-positive ref_count 0 caller commitBufferToMpp
05-19 02:09:38.920    79 16716 E mpp_buffer: mpp_buffer_ref_dec found non-positive ref_count 0 caller commitBufferToMpp
05-19 02:09:38.920    79 16716 E mpp_buffer: mpp_buffer_ref_dec found non-positive ref_count 0 caller commitBufferToMpp
05-19 02:09:38.921    79 16716 E mpp_buffer: mpp_buffer_ref_dec found non-positive ref_count 0 caller commitBufferToMpp
05-19 02:09:38.991    79 16716 E mpp_buffer: mpp_buffer_ref_dec found non-positive ref_count 0 caller commitBufferToMpp
05-19 02:09:39.183    79 16716 E mpp_buffer: mpp_buffer_ref_dec found non-positive ref_count 0 caller commitBufferToMpp
05-19 02:09:39.763    79 16727 E mpp_buffer: mpp_buffer_ref_dec found non-positive ref_count 0 caller commitBufferToMpp
05-19 02:09:39.763    79 16727 E mpp_buffer: mpp_buffer_ref_dec found non-positive ref_count 0 caller commitBufferToMpp
05-19 02:09:39.765    79 16727 E mpp_buffer: mpp_buffer_ref_dec found non-positive ref_count 0 caller commitBufferToMpp
05-19 02:09:39.767    79 16727 E mpp_buffer: mpp_buffer_ref_dec found non-positive ref_count 0 caller commitBufferToMpp
05-19 02:09:39.768    79 16727 E mpp_buffer: mpp_buffer_ref_dec found non-positive ref_count 0 caller commitBufferToMpp
05-19 02:09:39.768    79 16727 E mpp_buffer: mpp_buffer_ref_dec found non-positive ref_count 0 caller commitBufferToMpp
05-19 02:09:39.769    79 16727 E mpp_buffer: mpp_buffer_ref_dec found non-positive ref_count 0 caller commitBufferToMpp
05-19 02:09:39.769    79 16727 E mpp_buffer: mpp_buffer_ref_dec found non-positive ref_count 0 caller commitBufferToMpp
05-19 02:09:39.769    79 16727 E mpp_buffer: mpp_buffer_ref_dec found non-positive ref_count 0 caller commitBufferToMpp
05-19 02:09:39.769    79 16727 E mpp_buffer: mpp_buffer_ref_dec found non-positive ref_count 0 caller commitBufferToMpp
05-19 02:09:39.770    79 16727 E mpp_buffer: mpp_buffer_ref_dec found non-positive ref_count 0 caller commitBufferToMpp
05-19 02:09:39.770    79 16727 E mpp_buffer: mpp_buffer_ref_dec found non-positive ref_count 0 caller commitBufferToMpp
05-19 02:09:39.851    79 16727 E mpp_buffer: mpp_buffer_ref_dec found non-positive ref_count 0 caller commitBufferToMpp

@helperShang
Copy link

@fandashi18 这我适配的

docker run -d --privileged --name test \
    -p 5555:5555 \
    -v /dev/mali0:/dev/mali0 \
    shangzebei/rk3588 androidboot.redroid_gpu_mode=mali

@akibaso
Copy link
Author

akibaso commented May 31, 2023

需要集成MPP才能释放硬编码

from #228 , it looks like no need to mpp.

mesa3d编译时可以指定不同版本,比如i915,对应intel gpu。这个issue中rk官方给的gles应该是可以调用rk gpu硬件的。 但是,这个issue描述cpu依然负载很重。我猜测要么是游戏本身就是吃cpu,要么就是走了media swcodec。谁有环境可以用top命令看下进程media.swcodec的cpu负载。我试用了android x86 和bliss等一些开源android项目,发现它们走的都是软编码,所以很卡。

media.swcodec占用200%左右CPU,看样子是走了软解

@akibaso
Copy link
Author

akibaso commented May 31, 2023

@fandashi18 这我适配的

docker run -d --privileged --name test \
    -p 5555:5555 \
    -v /dev/mali0:/dev/mali0 \
    shangzebei/rk3588 androidboot.redroid_gpu_mode=mali

3399没有/dev/mali0这个节点,panfrost驱动有点毛病(但是waydroid和wayland可以GPU加速)

@akibaso
Copy link
Author

akibaso commented May 31, 2023

终于搞定mpp硬解码了,cpu 降下来了

a66d571b35dd:/ # dumpsys media.player |grep 'hw-accelerated: 1'
      hw-accelerated: 1 ]
      hw-accelerated: 1 ]
      hw-accelerated: 1 ]
      hw-accelerated: 1 ]
      hw-accelerated: 1 ]
      hw-accelerated: 1 ]
      hw-accelerated: 1 ]
      hw-accelerated: 1 ]
      hw-accelerated: 1 ]

在5.15内核下面好像mpp都装不上

@helperShang
Copy link

3399 没适配

@netPokey
Copy link

netPokey commented Jul 9, 2023

添加教程
你搞你可以写一部分文档学习吗,或者加您微信 请教您一下 @helperShang 谢谢

@netPokey
Copy link

@helperShang 大佬 可以考虑 一下 给出一部分教程吗,或者加个联系方式一下你 有个粉色的rock5a 想折腾折腾 ,我已经折腾好几天了,根据大佬的给出的几个项目 ,我现在有做到几个地方 1.在gpu_config 中添加对应代码,2将rk_gpu 代码根据rock5b 安卓12的代码放到vendor 下 然后make ,我最后编译是成功了 不加mali 也可以正常启动,但是加了mali 启动就sh能进去 ,进去后没有网络,求大佬帮助解答。谢谢
联系方式:qq群:681972981 其他人也可以一起进来交流交流 ,谢谢大家

@liukeqqs
Copy link

liukeqqs commented Oct 8, 2023

我也搞定

图像

怎么解决的GPU rk3588,能说下吗?我可付费

@liukeqqs
Copy link

liukeqqs commented Oct 8, 2023

我也搞定

image

可以说一下方法或者思路吗,GPU能用起来就行了

怎么解决的GPU rk3588,能说下吗?

@fandashi18
Copy link

我也搞定

image

可以说一下方法或者思路吗,GPU能用起来就行了

怎么解决的GPU rk3588,能说下吗?

给你个思路,买份rk源代码,拷贝下编码器和解码器的配置和相关模块的代码,引入你的项目中即可。

@liukeqqs
Copy link

liukeqqs commented Oct 9, 2023

我也搞定

image

可以说一下方法或者思路吗,GPU能用起来就行了

怎么解决的GPU rk3588,能说下吗?

给你个思路,买份rk源代码,拷贝下编码器和解码器的配置和相关模块的代码,引入你的项目中即可。

rk源代码要多少钱?不如我直接给你钱,你帮我买下?多少钱,我直接转给你。这问题研究了两个月了也没搞定

@liukeqqs
Copy link

liukeqqs commented Oct 9, 2023

我也搞定

图像

可以说一下方法或者思路吗,GPU能用起来就行了

GPU rk3588怎么解决,能说下吗?

给你一个想法,买份rk源代码,拷贝配置下编码器和解码器的以及相关模块的代码,引入你的项目中即可。

还有就是rk源码是指的什么?ubu系统源码 还是驱动或者内核源码?

@jjm2473
Copy link

jjm2473 commented Dec 1, 2023

RK的源码需要买?全都是开源的。可能除了bootloader。

@zhouziyang
Copy link
Member

RK的源码需要买?全都是开源的。可能除了bootloader。

No source codes required if only want accelerated graphics and media (only binaries needed).

@Lua12138
Copy link

Lua12138 commented Dec 2, 2023

RK的源码需要买?全都是开源的。可能除了bootloader。

No source codes required if only want accelerated graphics and media (only binaries needed).

Is there a more detailed explanation on how to do this?

@netPokey
Copy link

netPokey commented Dec 2, 2023

RK的源码需要买?全都是开源的。可能除了bootloader。

No source codes required if only want accelerated graphics and media (only binaries needed).

Is there a more detailed explanation on how to do this?

把二进制根据rk 安卓代码配置编译进去即可调用gpu 但是不稳定 和有些花屏的app

@hjxcode
Copy link

hjxcode commented Apr 9, 2024

请问,上述讨论是基于rk提供的android12的SDK来实现的么?如何在redroid13中实现使用Mali-G610呢?有稍微详细一些的建议么?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

10 participants