Toybrick

楼主: jefferyzhang

RK3399Pro入门教程(5)图形加速引擎RGA的使用

 

puresoy

新手上路

积分
32
发表于 2020-1-6 16:51:19 | 显示全部楼层
试了试 rga本身是能使的
但是在没有drm的情况下 rga_copy的速度甚至比memcpy的速度慢一半
可是ubuntu系统(Debian)下没有dnf 也不能用apt找到rockchip-drm-dev
那么请问 rockchip的drm内存 应该如何申请?
有rockchip-drm 的源码么?
应该如何得到这个开发包?
回复

使用道具 举报

jefferyzhang

版主

积分
13608
 楼主| 发表于 2020-1-6 17:20:33 | 显示全部楼层
本帖最后由 jefferyzhang 于 2020-1-6 17:23 编辑
puresoy 发表于 2020-1-6 16:51
试了试 rga本身是能使的
但是在没有drm的情况下 rga_copy的速度甚至比memcpy的速度慢一半
可是ubuntu系统(D ...

1. drm接口是标准的,如何申请连续内存百度drm内存分配就可以,rockchip不会自己去折腾这个。
2. 代码可以参考android gralloc源码实现,不过你百度drm如何分配内存估计更快。
3. rockchip-drm也是开源的,在https://github.com/rockchip-linux/libdrm-rockchip (没有什么特别的东西,和libdrm基本是一样的)
4. 关于你说速度问题,rga copy就是dma搬运,连续内存速度快,不连续的随机内存dma速度当然没cpu快。跟是不是drm申请的内存是无关的,你目标是要申请连续内存。
回复

使用道具 举报

cjlongfei

金牌会员

积分
1051
发表于 2020-3-11 09:38:21 | 显示全部楼层
直接下载GITHUB上的源码,在板子上编译生成,rag_cpy,运行被Aborted了,是什么原因?好像是崩在RgaCreate这里,系统是fedora28
回复

使用道具 举报

jefferyzhang

版主

积分
13608
 楼主| 发表于 2020-3-11 09:39:11 | 显示全部楼层
cjlongfei 发表于 2020-3-11 09:38
直接下载GITHUB上的源码,在板子上编译生成,rag_cpy,运行被Aborted了,是什么原因?好像是崩在RgaCreate这 ...

板子是什么
回复

使用道具 举报

cjlongfei

金牌会员

积分
1051
发表于 2020-3-11 10:01:06 | 显示全部楼层

RK3399P的,我加SUDO和卸载之前安装的RGA库以后搞定了。现在可以了。
顺便问另外一个问题,在RTSP推流那个实验的时候,之前也是 rga有问题,现在RGA过了,但是报以下错误
是啥原因:
pictureSize=460800
__DD_H264VideoFileServerMediaSubsession::startStream__
StreamOn success!
V4L2FramedSource::doGetNextFrame use 317
mpp_rt: NOT found ion allocator
mpp_rt: found drm allocator
mpi: mpp version: Without VCS info
hal_h264e_api: vcodec type 00000000 can not find H.264 encoder device
mpp_hal: mpp_hal_init hal h264e_rkvenc init failed ret -1
mpp_hal: mpp_hal_init could not found coding type 7
mpp_enc: mpp_enc_init could not init hal
mpp: error found on mpp initialization
mpp: Assertion mEnc failed at control_enc:834
mpp_enc: mpp_enc_control found NULL input enc (nil) cmd 320003 param 258741672
mpp: command 320003 param 0xf6c15a8 ret -3
mpi control enc set prep cfg failed ret -3
test mpp setup failed ret -3
mpi_enc_test failed ret -3
V4L2FramedSource::doGetNextFrame use 29
mpi: mpp version: Without VCS info
hal_h264e_api: vcodec type 00000000 can not find H.264 encoder device
mpp_hal: mpp_hal_init hal h264e_rkvenc init failed ret -1
mpp_hal: mpp_hal_init could not found coding type 7
mpp_enc: mpp_enc_init could not init hal
mpp: error found on mpp initialization
Segmentation fault
回复

使用道具 举报

jefferyzhang

版主

积分
13608
 楼主| 发表于 2020-3-11 10:14:24 | 显示全部楼层
cjlongfei 发表于 2020-3-11 10:01
RK3399P的,我加SUDO和卸载之前安装的RGA库以后搞定了。现在可以了。
顺便问另外一个问题,在RTSP推流那 ...

mpp: error found on mpp initialization
要么代码有问题,要么驱动有问题
回复

使用道具 举报

panziwen86

注册会员

积分
53
发表于 2020-4-7 15:46:22 | 显示全部楼层
我在RK3399Pro上使用samples-toybrick-rga进行格式转换,程序刚开始没有问题,图片格式转换也正常,但总是运行了几天时间后卡住了,加日志发现是一直卡在:
ret = ioctl(rga->rgaFd, RGA_BLIT_SYNC, &req);一直阻塞在这个调用里了,然后重启程序也还是阻塞在这里面了,必须重启系统才能再正常使用。
请问楼主知道这可能是什么问题吗??
回复

使用道具 举报

panziwen86

注册会员

积分
53
发表于 2020-4-7 15:51:41 | 显示全部楼层
cjlongfei 发表于 2020-3-11 09:38
直接下载GITHUB上的源码,在板子上编译生成,rag_cpy,运行被Aborted了,是什么原因?好像是崩在RgaCreate这 ...

估计你是没有修改/dev/rga设备文件的权限吧,sudo chmod 777 /dev/rga,或者sudo执行程序就可以了。
回复

使用道具 举报

jefferyzhang

版主

积分
13608
 楼主| 发表于 2020-4-7 16:41:58 | 显示全部楼层
panziwen86 发表于 2020-4-7 15:46
我在RK3399Pro上使用samples-toybrick-rga进行格式转换,程序刚开始没有问题,图片格式转换也正常,但总是 ...

板子是什么?Toybrick板子不会出现这问题,如果是其他代理商的板子,请联系他们去debug。

如果是Toybrick的板子,怕你是传了错误的参数进去。跟硬件打交道和纯cpu不一样,参数传错、地址传错,出的错误就是毁灭性的,芯片是没办法知道你传的是不是对的。
回复

使用道具 举报

chansy

注册会员

积分
120
发表于 2020-4-10 16:47:20 | 显示全部楼层
cjlongfei 发表于 2020-3-11 10:01
RK3399P的,我加SUDO和卸载之前安装的RGA库以后搞定了。现在可以了。
顺便问另外一个问题,在RTSP推流那 ...

你解决了吗,要怎么修复?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

产品中心 购买渠道 开源社区 Wiki教程 资料下载 关于Toybrick


快速回复 返回顶部 返回列表