Argus:Failed with three cameras

Hi, we want to get && process three cameras’ raw bayer with libargus at the same time, but it always failed.(use cudaConsumer)
When I process 2 cameras, it works.
And when I try running the cudaHistogram samples(multi cameras a time, use para “-d”), 2 cameras works, 3 cameras failed.(timeout)

~/tegra_multimedia_api/argus/build/samples/cudaHistogram$ ./argus_cudahistogram -d 0
~/tegra_multimedia_api/argus/build/samples/cudaHistogram$ ./argus_cudahistogram -d 1
~/tegra_multimedia_api/argus/build/samples/cudaHistogram$ ./argus_cudahistogram -d 2

Is this a bug or do I something wrong?
TX2: # R32 (release), REVISION: 1.0,

Hi @gitever,
Can you check if you are able to stream all 3 cameras normally (try using argus_camera application). If you run across any error even then I suggest you check all the configuration parameters in your device-tree.
Meanwhile, Can you share the log messages of your failure case?

Also confirm the argus_camera can run the multiple session for all of the cameras.

Hi, @akshaya.p, @ShaneCCC,
The camera ui application sample works normally, we can see all 3-camera images, there shows no error.

when I run this sample at the same time,

~/tegra_multimedia_api/argus/build/samples/cudaHistogram$ ./argus_cudahistogram -d 0
~/tegra_multimedia_api/argus/build/samples/cudaHistogram$ ./argus_cudahistogram -d 1
~/tegra_multimedia_api/argus/build/samples/cudaHistogram$ ./argus_cudahistogram -d 2

it works for many frames, and then, it shows as follows,

Submitting a capture request
Acquiring an image from the EGLStream

and always wait

Could you check if any kernel message after that happened.
And what if only run the -d 1 and -d 2 only two cameras.

@ShaneCCC,
it always waitting after many frames processed, when run the -d 0 , -d 1 and -d 2 with three cameras.

but, it works normal when run -d 1 and -d 2 only two cameras.

Could you run below command then try it again.

sudo nvpmodel -m 0
sudo jetson_clocks

yes. the sudo jetson_clocks shows “Can’t access Fan!”

thanks, and what’s the reason?

Did looks like you are not un on Jetson reference carrier board?

Have remove the do_fan function call from the /usr/bin/jetson_clocks to try.

@ShaneCCC
yes, and after remove the do_fan function, the process is still stuck.

What’s the sensor output resolution? Any smaller mode to try?

The output resolution is 3840x2160, when I use iEGLStreamSettings->setResolution(resolution); set 1920x1080, it failed

I would like try is the sensor mode the iEGLStreamSettings->setResolution(resolution) are set the display resolution. Please check if the sensor have others mode by vl42-ctl --list-formats-ext and use iSourceSettings->setSensorMode(sensorMode) to set the sensor mode.

@ShaneCCC
Thank you, I try the 1920x1080, it works normal.
but resolution 3840x2160 can only run 2 cameras at a time.

@ShaneCCC
how to run three cameras simultaneously?

Please have apply below patch to try
0001-video-tegra-host-Set-DMA-masks.patch.txt (6 KB)
0002-video-tegra-vi-Set-DMA-masks.patch.txt (941 Bytes)

Thank you, and how to apply these patch?

It’s kernel patch.
You need to download kernel source and apply it to …/kernel/nvidia/ and replace the kernel Image for them.

https://docs.nvidia.com/jetson/l4t/Tegra%20Linux%20Driver%20Package%20Development%20Guide/kernel_custom.html#

Hello, is this patch included in L4t 32.3.1 ?
thanks.

Hello,
can you please tell me if this patch is included in L4t 32.3.1 ?
thank you.