Toybrick

标题: RGA缩放内存分配报错,请帮助分析一下原因 [打印本页]

作者: wudiking    时间: 2022-9-27 08:33
标题: RGA缩放内存分配报错,请帮助分析一下原因
resize with RGA!
RgaBlit(1465) RGA_BLIT fail: 无法分配内存
RgaBlit(1466) RGA_BLIT fail: 无法分配内存
fd-vir-phy-hnd-format[0, 0x55c052a000, (nil), 0, 0]
rect[0, 0, 1280, 720, 1280, 720, 512, 0]
f-blend-size-rotation-col-log-mmu[0, 0, 0, 0, 0, 0, 1]
fd-vir-phy-hnd-format[0, 0x55c07cd280, (nil), 0, 0]
rect[0, 0, 640, 640, 640, 640, 512, 0]
f-blend-size-rotation-col-log-mmu[0, 0, 0, 0, 0, 0, 1]
This output the user patamaters when rga call blit fail
srect[x,y,w,h] = [0, 0, 0, 0] src[w,h,ws,hs] = [1280, 720, 1280, 720]

drect[x,y,w,h] = [0, 0, 0, 0] dst[w,h,ws,hs] = [640, 640, 640, 640]

usage[0x80000]



作者: jefferyzhang    时间: 2022-9-27 09:22
请自行分配好内存再传给RGA处理
作者: wudiking    时间: 2022-9-27 10:37
本帖最后由 wudiking 于 2022-9-27 11:21 编辑
jefferyzhang 发表于 2022-9-27 09:22
请自行分配好内存再传给RGA处理

是自己分配好的
   
    resize_buf = malloc(height * width * channel);
   
    src = wrapbuffer_virtualaddr((void*)img.data, img_width, img_height, RK_FORMAT_RGB_888);
    dst = wrapbuffer_virtualaddr((void*)resize_buf, width, height, RK_FORMAT_RGB_888);
    ret = imcheck(src, dst, src_rect, dst_rect);
    if (IM_STATUS_NOERROR != ret) {
      printf("%d, check error! %s", __LINE__, imStrError((IM_STATUS)ret));
      return -1;
    }
    IM_STATUS STATUS = imresize(src, dst);


dmesg报错如下
[ 3719.363072] rga_dma_buf: rga_iommu_dma_alloc_iova failed
[ 3719.363085] rga_dma_buf: src0 channel viraddr get info error!
[ 3719.363121] rga_job: dma buf get failed
[ 3719.363131] rga_job: some error on rga_job_run before hw start, rga_job_next(343)
[ 3719.363145] rga_job: some error on job, rga_job_commit(750)
[ 3719.363152] rga: rga_job_commit failed



作者: cang_rong    时间: 2022-12-3 14:27
我也遇到这样的问题了,请问这个问题怎么解决?




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