Hi there,
I am running a 5-sensor (12MP/30fps) setup on Xavier w/ latest L4T R32.2.1 (problem also observed on R32.1). The image sensor driver is set up specifically for 5 sensors, and each sensor has been individually verified to provide a solid 30fps at 12MP. However, when attempting multiple simultaneous camera streams, I am seeing some strange bandwidth limitation with nvarguscamerasrc in GStreamer, even with the simplest of pipelines, as shown here:
gst-launch-1.0
nvarguscamerasrc sensor-id=0 wbmode=3 ! ‘video/x-raw(memory:NVMM), width=(int)4056, height=(int)3040, format=NV12, framerate=(fraction)30/1’ ! fakesink
nvarguscamerasrc sensor-id=1 wbmode=3 ! ‘video/x-raw(memory:NVMM), width=(int)4056, height=(int)3040, format=NV12, framerate=(fraction)30/1’ ! fakesink
nvarguscamerasrc sensor-id=2 wbmode=3 ! ‘video/x-raw(memory:NVMM), width=(int)4056, height=(int)3040, format=NV12, framerate=(fraction)30/1’ ! fakesink
nvarguscamerasrc sensor-id=3 wbmode=3 ! ‘video/x-raw(memory:NVMM), width=(int)4056, height=(int)3040, format=NV12, framerate=(fraction)30/1’ ! fakesink
nvarguscamerasrc sensor-id=4 wbmode=3 ! ‘video/x-raw(memory:NVMM), width=(int)4056, height=(int)3040, format=NV12, framerate=(fraction)30/1’ ! fakesink
This pipeline is not a problem on the TX2 with R28/nvcamerasrc using the same image sensors, and a very similar driver; all 5 sensors run steady at 30 fps, simultaneously. But on Xavier/R32/nvarguscamerasrc, I am getting a lot of frame drops, with each camera seeing unstable frame rates of 15-20 fps (as observed from gst-shark tracer data).
If I reduce the number of cameras, or reduce nvarguscamerasrc’s output resolution, the problem can be reduced or eliminated, indicating there is some unusual bandwidth limitation that should not be present. I should note that the driver only has one mode (4056x3040x30fps), so the fact that I can get a solid 30fps on all 5 cameras, when specifying a lower resolution in the caps (meaning the ISP has to do the scaling), indicates that the driver is successfully supplying 4056x3040x30fps to the ISP for all 5 sensors, simultaneously.
Hope you have some insight into this problem. All 8 of Xavier’s CPUs are running, mode is MAXN, and jetson_clocks.sh has been run/stored to maximize all CPU/GPU clock frequencies.