NvSIPL Failed to get free buffer from pool

Dear Support,

I am currently in the process of migrating our camera handling layer from DriveOS 5.1.6 to DriveOS 5.2.0. Our solution is based on NvSIPL. I am familiar with the documentation and the nvsipl_camera example application.

I have tested the precompiled example application on the DriveAGX board with a single camera, it works.

I am trying to build a minimal configuration for a static setup, with a single camera based on the example application, to understand the NvSIPL API changes.

The pipeline would consist of a single Sekonix SF3325 camera and ISP0 as an output.
When I try to execute my application, RegisterImageGroups for ICP output images, gives the following error:

MAX96712: Revision 4 detected
MAX96712: SetCMU2Default
MAX96712: Enable periodic AEQ on Link 0
MAX96705: Pre-emphasis set to 0xaa
MAX96705: Revision 1 detected!
Sensor AR0231 RCCB Rev7 detected!
Module_id 22 Severity 6 : NvMediaICPCreateEx 76
Module_id 22 Severity 6 : T19x VI version  0x000019
example-nvmedia: CNvMBufferPool.hpp: 181: GetSciBuffer: Failed to get free buffer from pool
example-nvmedia: CNvMBufferPool.hpp: 101: Init: GetSciBuffer failed
example-nvmedia: CNvMSensorPipeline.cpp: 130: RegisterImageGroups: ICP buffer pool initialize failed
example-nvmedia: CNvMCamera.cpp: 546: RegisterImageGroups: Pipeline register imagegroups failed for pipeline:0

I have tried to allocate images with both NvMediaImageCreateFromNvSciBuf and NvMediaImageCreateNew, unfortunately the result is the same.

I assume, there were some fundamental changes in between 5.1.6 and 5.2.0, that I don’t yet understand.

Could you please give me guidance, what could I do wrong?

Please let me know, if I should post the relevant portions of my code.

Thank you very much in advance!

Software Version
DRIVE OS Linux 5.2.0
DRIVE OS Linux 5.2.0 and DriveWorks 3.5
NVIDIA DRIVE™ Software 10.0 (Linux)
NVIDIA DRIVE™ Software 9.0 (Linux)
other DRIVE OS version
other

Target Operating System
Linux
QNX
other

Hardware Platform
NVIDIA DRIVE™ AGX Xavier DevKit (E3550)
NVIDIA DRIVE™ AGX Pegasus DevKit (E3550)
other

SDK Manager Version
1.4.0.7363
other

Host Machine Version
native Ubuntu 18.04
other

Hi @krisztian.holman,

Please refer to ~/nvidia/nvidia_sdk/DRIVE_OS_5.2.0_SDK_Linux_OS_DDPX/DRIVEOS/drive-t186ref-linux/samples/nvmedia/nvsipl/test/camera/Makefile and try if adding “-DNVMEDIA_NVSCI_ENABLE” predefined macro helps. Thanks!

1 Like

Dear VickNV,

Thank you for the quick response, adding the define resolved my issue.

I still have a few issues left with the ISP configuration, as I receive the following error:

Module_id 22 Severity 6 : NvMediaICPCreateEx 76
Module_id 22 Severity 6 : T19x VI version  0x000019
[CamCheckRangeFloat:60] [CamCheckRangeFloat:60] Bad input parameter
[CamCheckAeAwbSettings:482] [CamCheckAeAwbSettings:482] Bad input parameter : CCT
[CamRangeCheck:1472] [CamRangeCheck:1472] Bad input parameter
[NvMediaCamProcess:149] [NvMediaCamProcess:149] Bad input parameter
SIPL_ICP_ISP_0: CNvMISPBlock.cpp: 458: ProgramISP: NvMediaCamProcess failed. nvmStatus:1
SIPL_ICP_ISP_0: CNvMISPBlock.cpp: 348: ProcessISP: ProgramISP failed
SIPL_ICP_ISP_0: CNvMSensorPipeline.cpp: 682: DoISPProcessing: ISP block process isp failed

Unfortunately verbose logging does not give me additional information regarding this error.

My pipeline has a single ISP consumer, with the following config:

...
consumerPipeLineCfg.clients.push_back(nvsipl::INvSIPLClient::ConsumerDesc{
    nvsipl::INvSIPLClient::ConsumerDesc::OutputType::ISP0,
    &consumer // INvMCallback object with OnFrameAvailable implementation
    });

producer->SetPipelineCfg(0, consumerPipeLineCfg);
producer->Init();
...
// Allocate and register image groups for ICP and images for ISP output
...
// Load NITO file: /opt/nvidia/nvmedia/nit/sf3325.nito
...
producer->RegisterAutoControlPlugin(0, INvSIPLAutoControl::PluginType::NV_PLUGIN, nullptr, nito);
producer->Start();
...

I keep examining the nvsipl_camera example application, but if you could give me a few hints regarding the nature of these ISP related errors, that would be another great help for me.

Does this error indicate issues with the consumer pipeline setup, or the image surface attributes which are allocated for ISP output?

Thank you very much for your support!

Could you confirm you’re using DRIVE OS 5.2.0? It doesn’t look like messages from the version.

1 Like

Dear VickNV,

I was testing on both my DriveAGX and other Xavier based samples from partners.
I assumed, that these samples have the same version as my DriveAGX, but I was wrong.

Meanwhile I have found the issue, my code was missing the following call after RegisterAutoControlPlugin:
producer->SetISPConfig(0, INvSIPLAutoControl::PluginType::NV_PLUGIN);

Thank you very much for your support, I have marked your previous answer as the solution (to define NVMEDIA_NVSCI_ENABLE).

1 Like