Software & AppsOperating SystemLinux

Stopping Video Tearing on Nvidia Proprietary Driver and Non-Compositing Window Manager

Ubuntu 19

Video tearing is a visual artifact that occurs when the video feed to the device isn’t in sync with the display’s refresh. This can be particularly noticeable and annoying when watching videos or playing games. This article aims to provide a detailed guide on how to stop video tearing on systems using Nvidia proprietary driver and a non-compositing window manager.

Quick Answer

To stop video tearing on systems using Nvidia proprietary driver and a non-compositing window manager, you can enable Sync to VBlank, experiment with TripleBuffer, upgrade/downgrade Nvidia drivers, and change the video output in VLC.

Understanding the Problem

Before we dive into the solutions, it’s important to understand what causes video tearing. Video tearing happens when the video display’s refresh rate is not in sync with the video source. This can occur due to a variety of reasons, including hardware limitations and software configurations.

In the context of this article, we are focusing on systems that use the Nvidia proprietary driver and a non-compositing window manager. A non-compositing window manager is a lightweight window manager that does not provide certain features like animations and transparency, which can sometimes contribute to video tearing.

Solutions to Stop Video Tearing

1. Enable Sync to VBlank

Sync to VBlank is a feature that synchronizes the drawing of frames to the refresh rate of the monitor, which can help prevent video tearing.

You can enable this feature using the nvidia-settings command. Open a terminal and type:

nvidia-settings --assign CurrentMetaMode="nvidia-auto-select +0+0 { ForceFullCompositionPipeline = On }"

This command assigns the ForceFullCompositionPipeline option to the CurrentMetaMode attribute. ForceFullCompositionPipeline is an Nvidia-specific option that can help reduce tearing by forcing all rendering to go through the composition pipeline.

Remember to add this command to your startup applications to ensure it’s applied every time you boot up your system.

2. Experiment with TripleBuffer

Triple buffering can also help reduce video tearing. It works by providing a third buffer where the GPU can render frames, which can help keep the video feed in sync with the display’s refresh rate.

To enable triple buffering, you need to add the following line to your xorg.conf file:

Option "TripleBuffer" "1"

This command adds the TripleBuffer option to the xorg.conf file and sets its value to 1, which enables triple buffering.

3. Upgrade/Downgrade Nvidia Drivers

Sometimes, certain versions of Nvidia drivers can cause video tearing. If the above solutions don’t work, you can try upgrading or downgrading your Nvidia drivers.

To upgrade your drivers, you can use the following command:

sudo apt-get install nvidia-driver-<version>

Replace <version> with the version number of the driver you want to install.

To downgrade your drivers, you can use the following command:

sudo apt-get remove nvidia-driver-<version>

Replace <version> with the version number of the driver you want to remove.

4. Change Video Output in VLC

If you’re experiencing video tearing while using VLC, you can try changing the video output to “OpenGL GLX” or “X11 output (XCB)”.

To do this, open VLC, go to Tools > Preferences > Video, and change the Output dropdown to either “OpenGL GLX” or “X11 output (XCB)”.

Conclusion

Stopping video tearing on systems using Nvidia proprietary driver and a non-compositing window manager can be a bit tricky, but with a bit of patience and experimentation, it’s definitely achievable. Remember to always backup your system before making any major changes, and don’t be afraid to ask for help if you need it. Good luck!

What is video tearing?

Video tearing is a visual artifact that occurs when the video feed to the device isn’t in sync with the display’s refresh. It appears as horizontal lines or uneven split frames on the screen.

Why does video tearing occur?

Video tearing occurs when the video display’s refresh rate is not in sync with the video source. This can be caused by hardware limitations, software configurations, or a combination of both.

What is a non-compositing window manager?

A non-compositing window manager is a lightweight window manager that does not provide certain features like animations and transparency. It focuses on efficiency and speed, but it may contribute to video tearing in some cases.

How does enabling Sync to VBlank help stop video tearing?

Sync to VBlank synchronizes the drawing of frames to the refresh rate of the monitor. By enabling this feature, the video source and the display’s refresh rate are in sync, reducing or eliminating video tearing.

How do I enable Sync to VBlank?

To enable Sync to VBlank, you can use the nvidia-settings command. Open a terminal and type: nvidia-settings --assign CurrentMetaMode="nvidia-auto-select +0+0 { ForceFullCompositionPipeline = On }". Remember to add this command to your startup applications for it to be applied every time you boot up your system.

What does triple buffering do to reduce video tearing?

Triple buffering provides a third buffer where the GPU can render frames. This additional buffer helps keep the video feed in sync with the display’s refresh rate, reducing video tearing.

How do I enable triple buffering?

To enable triple buffering, you need to add the line Option "TripleBuffer" "1" to your xorg.conf file. This can be done by editing the file using a text editor with administrative privileges.

What should I do if the above solutions don’t work?

If the above solutions don’t work, you can try upgrading or downgrading your Nvidia drivers. Sometimes, certain versions of the drivers can cause video tearing. You can use the sudo apt-get install nvidia-driver-<version> command to upgrade your drivers or the sudo apt-get remove nvidia-driver-<version> command to downgrade them.

What can I do if I experience video tearing while using VLC?

If you experience video tearing while using VLC, you can try changing the video output to "OpenGL GLX" or "X11 output (XCB)". Open VLC, go to Tools > Preferences > Video, and change the Output dropdown to either "OpenGL GLX" or "X11 output (XCB)".

Is it possible to completely eliminate video tearing?

While the solutions provided in this article can significantly reduce video tearing, it may not be possible to completely eliminate it in all cases. The effectiveness of the solutions may vary depending on the hardware and software configuration of your system.

Leave a Comment

Your email address will not be published. Required fields are marked *