Hi, I’m currently having issues with DeepStream 5 when used on a server equipped with two T4 cards. When running a simple pipeline (The real pipeline is much more complex!):
0:00:00.270630316 27402 0x55f5372cf370 ERROR v4l2 gstv4l2object.c:2074:gst_v4l2_object_get_interlace_mode: Driver bug detected - check driver with v4l2-compliance from http://git.linuxtv.org/v4l-utils.git
I’ve tested different setups, and I’ve meet all the requirements for DeepStream, but still my pipeline doesn’t work as expected. Tested multiple installations using CUDA 10.2 and newer drivers but none works. At this point, DeepStream 5 seems UNUSABLE with Testa T4 GPUs when running the real pipeline we’re working the pipe stops playing after a couple of seconds (this changes randomly)
Setup: • Hardware Platform (Jetson / GPU)
2x Tesla T4 GPUs • DeepStream Version
5.0_5.0.0-1 • JetPack Version (valid for Jetson only)
NA • TensorRT Version
TensorRT 7.0.0.11-ga-20191216 • NVIDIA GPU Driver Version (valid for GPU only)
440.33.01 • Operative System
Ubuntu Server x64 18.04.03 4.15.0-109-generic (Tested using also the desktop version with the 5+ kernel) • CUDA VERSION
cuda_10.2.89_440.33.01_linux.run (Used this to install the 440+ driver required by DeepStream)
All CUDA samples work correctly. • cuDDN VERSION
7.6.5.32 (Test passed)
OS: Ubuntu 18.04.03 Kernel 4.15.0-109-generic (Minimal install with third party packages option enabled on install)
Driver: nvidia-driver-440/bionic-updates,bionic-security,now 440.100-0ubuntu0.18.04.1 amd64 [installed] (Which was the one recommended by the OS, when installed it automatically installed the 4.15 kernel. We switched grub to use this kernel and proceeded with upgrading the system after installing and rebooting with the driver)
GCC: gcc (Ubuntu 7.5.0-3 ubuntu1~18.04) 7.5.0
After this point we continued installing the samne packages mentioned above.
driver → cuda-toolkit-10-2 → cudnn (Tests passed) → tensorrt (nv-tensorrt-repo-ubuntu1804-cuda10.2-trt7.0.0.11-ga-20191216_1-1_amd64.deb) → gstreamer tools using apt install (Same as on the deepstream 5 guide) → deepstream-5.0_5.0.0-1_amd64.deb
The pipeline does run. When viewed using an Xorg server on an x11vnc instance we are able to visualize the video despite the error. On our pipelines we use the sync property on the nveglglessink sync=false to supress the timestamp warning.
We repeated the test using this property on the simple pipeline:
$ DISPLAY=:0 GST_DEBUG=1 gst-launch-1.0 filesrc location=/opt/nvidia/deepstream/deepstream/samples/streams/sample_720p.mp4 ! qtdemux ! h264parse ! nvv4l2decoder ! nvvideoconvert ! nveglglessink sync=false
0:00:00.280056718 7821 0x558104cb1ca0 ERROR v4l2 gstv4l2object.c:2074:gst_v4l2_object_get_interlace_mode: Driver bug detected - check driver with v4l2-compliance from http://git.linuxtv.org/v4l-utils.git
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
Got EOS from element "pipeline0".
Execution ended after 0:00:01.344413609
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...
The video does not fully play when not in sync.
When using sync=true:
DISPLAY=:0 GST_DEBUG=1 gst-launch-1.0 filesrc location=/opt/nvidia/deepstream/deepstream/samples/streams/sample_720p.mp4 ! qtdemux ! h264parse ! nvv4l2decoder ! nvvideoconvert ! nveglglessink sync=true
0:00:00.284750949 7843 0x557a2a0248a0 ERROR v4l2 gstv4l2object.c:2074:gst_v4l2_object_get_interlace_mode: Driver bug detected - check driver with v4l2-compliance from http://git.linuxtv.org/v4l-utils.git
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
Got EOS from element "pipeline0".
Execution ended after 0:00:48.066704572
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...
Our pipelines were built and tested using a Jetson Nano developer kit. On this device the sync=true | sync=false property still allows for the pipe to work and play until the video feed ends. Also, the driver bug error doesn’t appear on the Jetson Nano.
Thank you. Correct, without the sync=false flag on the nveglglessink it works as expected. Both platforms are different but there should exists a smoother transition process between development boards and production.
Whenever I run a single stream it does not start processing it (Keep it state to Paused,) But when a new stream is added dynamically it performs in the desired manner. Again when stream is removed dynamically it doesn’t work. In summary it doesn’t work with single stream at all. Is this issue related to this driver?