AGX ORIN 使用VIC时 GPU内存占用100M

我启动NvBufSurfTransform将19201536的YUYV图片转换成19201536的NV12格式,只要启动VIC硬件,通过jtop查看就是占用101M GPU MEM。这个符合预期吗?
如果符合预期方便解释一下100M 内存是用来干什么用的吗?
如果不符合预期,那理论值应该是多少?
我的代码如下:

    NvBufSurfTransformParams nvTransformParams;
    NvBufSurfTransformRect srcRect,dstRect;
    srcRect.left = transformParams.src_left;
    srcRect.top = transformParams.src_top;
    srcRect.width = transformParams.src_width;
    srcRect.height = transformParams.src_height;
    dstRect.left = transformParams.dst_left;
    dstRect.top = transformParams.dst_top;
    dstRect.width = transformParams.dst_width;
    dstRect.height = transformParams.dst_height;

    memset(&nvTransformParams,0,sizeof(nvTransformParams));
    nvTransformParams.transform_flag = NVBUFSURF_TRANSFORM_FILTER;
    nvTransformParams.transform_flip = NvBufSurfTransform_None;
    nvTransformParams.transform_filter = NvBufSurfTransformInter_Nearest;
    nvTransformParams.src_rect = &srcRect;
    nvTransformParams.dst_rect = &dstRect;

    NvBufSurface *nvSrcBuffer = static_cast<NvBufferObj*>(srcBuffer)->GetNvBufSurface();
    NvBufSurface *nvDesBuffer = static_cast<NvBufferObj*>(desBuffer)->GetNvBufSurface();
    
    auto ret = NvBufSurfTransform (nvSrcBuffer, nvDesBuffer, &nvTransformParams);
    if (ret != NvBufSurfTransformError_Success) {
        LOG_ERR("NvBufSurfaceTransform failed %d", ret);
        return HAL_STATUS_ERROR;
    }

Hi,
The NvBufSurface can be mapped and accessed on GPU, so it looks to be the reserved memory. This looks expected.

我程序申请两个NvBufSurface占用仅需6M左右,执行完NvBufSurfTransform这个API之后GPU mem就升高到101M了。这个现象如何解释?

Hi,
It should be normal usage if it does not keep increasing. If it keeps increasing, it may be a leak.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.