Hi everyone
We encounter a problem very similar to [url]https://devtalk.nvidia.com/default/topic/1042939/jetson-tx2/video-tearing-how-to-set-xv_sync_to_vblank-in-nvidia_drv-so/2[/url]
Due to startup time reason, we do not start lightdm . We only start a Xorg and a Qt application(qv4l2) but there is screen tearing
We did the following test
test1:
1.sudo service lightdm stop
2.sudo /usr/lib/xorg/Xorg -core :0 -seat seat0 -auth /var/run/lightdm/root/:0 -nolisten tcp vt7 -novtswitch
3.gst-launch-1.0 filesrc location=/home/nvidia/tearing-test.mp4 ! decodebin ! videoconvert ! textoverlay font-desc=“Sans, 12” ! xvimagesink
4.screen tearing on display
test2:
1.sudo service lightdm stop
2.sudo /usr/lib/xorg/Xorg -core :0 -seat seat0 -auth /var/run/lightdm/root/:0 -nolisten tcp vt7 -novtswitch
3.gst-launch-1.0 filesrc location=/home/nvidia/tearing-test.mp4 ! decodebin ! videoconvert ! textoverlay font-desc=“Sans, 12” ! nvoverlaysink
4.No screen tearing on display!
test3:
1.sudo service lightdm stop
2.sudo /usr/lib/xorg/Xorg -core :0 -seat seat0 -auth /var/run/lightdm/root/:0 -nolisten tcp vt7 -novtswitch
3.run qv4l2 and open a camera
4.screen tearing on display
Our question:
1.why there is screen teariing when using nvoverlaysink , but xvimagesink not?
2.we will write a app similar to qv4l2, read video from camera and display it, how could we avoid the screen tearing without start lightdm?
We also did the following test:
1. write a qt app with QGLWidget read the tearing-test.h264 and show, it still has the same problem
Could you give us some advise, thanks !
here is our tearing test video :
url: 百度网盘-链接不存在
password: ka5v
Hi DaneLLL
Thank your for reply.By using nveglglessink or nvoverlaysink there is no screen tearing but unfortunately our problem could not be solved by using nveglglessink. Our product use a Qt based program not gstreamer, we found the screen tearing issue and then use gstreamer just to test and try to find some clues.Now we have the follwing question:
1.Where we could the source code of nvoverlaysink ? We want to find some clues.
2.We have set the VSYNC in QGLwidget but without effect, is there anything we can do in the framebuffer driver layer?
3.Is there anything we can do in the Xorg layer(Xorg.conf etc.)?
Hi DaneLLL
Sorry for the previous post, we foud nveglglessink still have screen tearing problem and the tearing occurs at the same position of the screen.Follwing is our test result:
1.
Hi DaneLLL
Thank you for help,this issue can be reproduced by the following command:
in serial console:
sudo service lightdm stop
sudo /usr/lib/xorg/Xorg -core :0 -seat seat0 -auth /var/run/lightdm/root/:0 -nolisten tcp vt7 -novtswitch
in another console:
export DISPLAY=:0
gst-launch-1.0 filesrc location=/home/nvidia/tearing-test.mp4 ! qtdemux ! h264parse ! omxh264dec ! nvvidconv ! video/x-raw ! textoverlay font-desc="Sans, 12" ! nvvidconv ! nvegltransform ! nveglglessink
We are in china, we upload the test video on baidu net disk, if you can not download the file, please let us know, we will try other way. Thanks very much for your help!
Hi carolyuu
Thanks for your reply, Now for one camera image collection the nveglglessink, xvimagesink and qv4l2 have no screen tearing issuse.
Our use case is to collect 10 camera data, and do some image fusion algorithm, we found that there is still some randomly screen tearing problem.Could you give us some guidance of how to debug this problem? Thanks!
Hi carolyuu
Thanks very much for your help. We foud that with lightdm startup screen tearing does not occur even if the xrog.conf file is not modified. we open 10 gstreamer to display the tearing-test.mp4 with xvimagesink no screen tearing is found.
Hi,
The default bsp is with lightdm on and we don’t have much experience in running the system with lightdm off.
Please check if there is other options which can be added into xorf.conf to help your case.
Other users may share experiences.