Closed howieOfive closed 1 year ago
使用其他的mpp buffer的虚拟地址是否能够正常拷贝?以及使用其他的dma-buf fd是否能够正常使用
更新一下rk3588上使用imcopy的现象:
1、设置RGA2
imconfig(IM_CONFIG_SCHEDULER_CORE, IM_SCHEDULER_RGA2_DEFAULT);
调用上述imconfig接口,设置为RGA2来进行imcopy,昨天一直能把YUV数据拷贝出来,写成文件打开也正常,以为问题解决了。 但是今天就一直报错,
_程序报错:RgaBlit(1465) RGA_BLIT fail: Invalid argument
dmesg信息: rga_policy: RGA2 only support under 4G memory!__
板载是8GB内存,唯一的解释就是:是昨天malloc恰好一直能分配到4GB地址空间一下的内存,今天就不行了。
问题1: 怎么在超过4GB板载内存的环境下,正常使用RGA2。 我找了很多方法,也不能保证申请的内存地址在4GB以下。
2、设置RGA3
imconfig(IM_CONFIG_SCHEDULER_CORE, IM_SCHEDULER_RGA3_DEFAULT);
调用上述imconfig接口,设置使用RGA3,调用imcopy一直失败。
_程序报错:RgaBlit(1465) RGA_BLIT fail: Device or resource busy
dmesg信息: rga_job: rga_jobwait timeout
问题2: 怎么在rk3588上使能RGA3。
问题3: 我的初衷是把MPP解码后的数据从设备内存拷贝到系统内存,需要借助RGA来加快拷贝,减轻CPU消耗。 能提供建议吗?
问题1: 怎么在超过4GB板载内存的环境下,正常使用RGA2。 我找了很多方法,也不能保证申请的内存地址在4GB以下。
malloc是没办法指定申请的内存范围的,可以使用其他dma-buf的分配器有支持的申请4G以内的,或者可以见示例代码:https://github.com/airockchip/librga/blob/main/samples/allocator_demo/src/rga_allocator_dma32_demo.cpp 这里是使用的最底层的dma_buf_heap来分配内存的,dma_buf_heap是可以支持配置指定的heap来实现指定申请4G以内内存。
问题2: 怎么在rk3588上使能RGA3。
相同的配置RGA2能跑RGA3跑不了么?
问题3: 我的初衷是把MPP解码后的数据从设备内存拷贝到系统内存,需要借助RGA来加快拷贝,减轻CPU消耗。 能提供建议吗?
以上的使用imcopy的行为是正常的,另外此前有发现一个dma相关的补丁会影响到使用dma-buf的设备访问内存导致超时的问题不知是否有关,可以尝试更新SDK 到最新,或者检查一下kernel中是否有附件的补丁。 0001-dma-buf-dma-buf-cache-fix-concurrency-issue.patch
我用的板子是RK3588,16GB。我之前RGA是默认的CONFIG,偶尔会出现RgaBlit(1465) RGA_BLIT fail: Invalid argument。今天看到这个问题,配置RGA只使用RGA3_CORE0 和 RGA3_CORE1。目前没有BUG。
我用的板子是RK3588,16GB。我之前RGA是默认的CONFIG,偶尔会出现RgaBlit(1465) RGA_BLIT fail: Invalid argument。今天看到这个问题,配置RGA只使用RGA3_CORE0 和 RGA3_CORE1。目前没有BUG。 运行一个小时左右还是出了问题。。。。
问题1: 怎么在超过4GB板载内存的环境下,正常使用RGA2。 我找了很多方法,也不能保证申请的内存地址在4GB以下。
malloc是没办法指定申请的内存范围的,可以使用其他dma-buf的分配器有支持的申请4G以内的,或者可以见示例代码:https://github.com/airockchip/librga/blob/main/samples/allocator_demo/src/rga_allocator_dma32_demo.cpp 这里是使用的最底层的dma_buf_heap来分配内存的,dma_buf_heap是可以支持配置指定的heap来实现指定申请4G以内内存。
这里的dma方式只是分配4G下的内存空间,然后还需要将外部的图像数据通过memcpy拷贝到dma的内存上,然后再进行resize等操作,操作完成后,再将视频数据拷贝出去,一来一回10ms没了,请问这种拷贝耗时如何避免啊?
RGA imcopy报错: RgaBlit(1465) RGA_BLIT fail: Device or resource busy 环境为:RK3588,ubuntu20.04系统,内存8GB RGA版本: rgaapi version 1.8.1[0]