openlGL fullscreen 'tearing'

When running full-screen opengl apps or playing video full-screen I am getting horizontal ‘tearing’ (These are apps that are using VSYNC and seem limited to 60 frames per second).

The opengl apps are calling wglXSwapIntervalEXT with a value of 1. Is this correct?

Having done a little experimentation, I have found that turning off ‘Unidirect fullscreen windows’ in the compiz settings helps with the video issue but results in incorrect scaling in the opengl apps.

I assume this is a bug in the graphics drivers when bypassing the compositor for full-screen rendering.

Anyone else got similar problems? …but more importantly anyone got a fix?

pmscull,

I don’t see many users working with wglXSwapIntervalEXT.
Could you share your app source with us? Could you share the steps of how to reproduce your issue?

For the video playback open Chrome, go to youtube then play a video full-screen.
For me, almost all tear intermittently but enough to make viewing unpleasant.

pmscull,

So this issue is on Chromium? Could you share more detail about this issue? How do you know something like “wglXSwapIntervalEXT” returns 1? Are you doing some web development?

At the suggestion of carolyuu I have tried ‘sudo jetson_clocks’
This does not make any difference. Manky thanks for the suggestion though!

Here is a link to a video which tears

The tearing is horizontal usually occurs in the lower section of the screen. Nano running at 1080p.
It only occurs when viewing full-screen and is sometimes worse than others. Looks exactly like a miss timed buffer swap.

WayneWWW please confirm if you experience these horizontal tears when watching the above video on a jetson nano.

Please note this issue is not limited to just videos on chrome. Opengl applications seem to have the same problem.

Please could someone confirm if calling wglXSwapIntervalEXT(1) is supposed to perform buffer swaps during monitor blanking.

OpenGL drivers usually support one of more of:
glXSwapIntervalSGI
glXSwapIntervalMESA
wglXSwapIntervalEXT
glXSwapIntervalEXT
I can only get an address for wglXSwapIntervalEXT asking for any of the others cause a crash!!!

Having trouble with the embedded link in the previous post. Here is the a video that tears.

pmscull,

Confirmed we can reproduce this tearing issue on the chromium installed by jetapck.
This issue has been delivered to internal team.

Could you please tell us what would be your final usecase? Does this issue only happen to youtube on Chromium or any openGL application you developed?

The chromium in our BSP has been enhanced by some hardware acceleration. It is different from external Chrome.

hi Wayne,

Did you done? I have same problem on jetson nano.
This is video error

Hi, problem had been fix.

Add:

Option “ForceFullCompositionPipeline” “on”

below

Section “Device”

to

/etc/X11/xorg.conf

1 Like