Steam for Linux

Steam for Linux

leech May 26, 2019 @ 8:11pm
Vive Pro screen tearing on Linux.
Anyone else use a Vive Pro in Linux and how has it been working for you? At one point in time it was working fine, but for months now I get this screen tearing / flickering. Kind of like old TVs that didn't have a correct frequency. Best way I can describe it. Anyone with a Vive Pro actually get it working correctly in SteamVR on Linux? And if so, what hardware?
< >
Showing 1-15 of 16 comments
thetargos May 26, 2019 @ 9:39pm 
nVidia or AMD based video card? Screen Tearing has been more common with nvidia (to my knowledge, anyway)
leech May 26, 2019 @ 9:53pm 
Originally posted by thetargos:
nVidia or AMD based video card? Screen Tearing has been more common with nvidia (to my knowledge, anyway)
It's a 2080 RTX. I know it worked at some point, I just can't recall if it was with the Vive or the Vive Pro. Pretty sure both had worked. Tried the beta, tried clearing everything out after disabling the cloud sync of the settings. Works in Windows, but really hate having to reboot into that just to play around in VR.
Edit: This isn't a typical screen tear either, where the frame rate just isn't smooth enough, of the refresh isn't high enough, but a constant tear flipping through the screen. Not sure if I could take a proper video of it or not and post it somewhere.
Last edited by leech; May 26, 2019 @ 9:54pm
thetargos May 26, 2019 @ 10:00pm 
Originally posted by leech:
Originally posted by thetargos:
nVidia or AMD based video card? Screen Tearing has been more common with nvidia (to my knowledge, anyway)
Edit: This isn't a typical screen tear either, where the frame rate just isn't smooth enough, of the refresh isn't high enough, but a constant tear flipping through the screen. Not sure if I could take a proper video of it or not and post it somewhere.
It's the typical "nvidia screen tear" with frames over or above the display's vsync. Sometimes disabling vsync gets around it (yes, ccounter intuitive, I know) Some times it worsens, some times disabling, and renabling it (both in the application and the nvidia-settings) gets around the issue, but (you guessed it), some times it does not. I have seen my share of this, and it is much more dramatic if you use composition in your DE.

BUT I have no experience with VR.
Last edited by thetargos; May 26, 2019 @ 10:01pm
leech May 26, 2019 @ 10:02pm 
Huh, yeah I usually use Gnome, but was attempting to use KDE (also composited), LXDE and XFCE. I'll give that a shot. I also have to wonder if part of it is my monitor being a gsync one and it's trying to do something for that at the same time as displaying on the HMD.
Will give that a shot.
thetargos May 26, 2019 @ 10:06pm 
That could be an issue, especially since nVidia drivers now offer gsync support. Try XFCE without composition and see how it goes. It may still happen (albeit you should see some difference)
Aoi Blue May 27, 2019 @ 5:54am 
Turn on triple buffering on your drivers and/or game.

Honestly I wish more games permitted you to control this setting.
ack0329 May 27, 2019 @ 12:49pm 
Edit ... When I said Samsung Notebooks ... I should have said "TABLETS!"

I will add my $0.02, but before I do ... NVidia Tearing w Linux is a ~7 year recurring problem and almost always when v-sync is the issue (i.e. using an external and/or hdmi monitor)
in the past these efforts have helped significantly but again for `9-12 months Nvidia's new driver has been fairly awesome! ... and just for conspiracy theory if it's not (before I get to my answers) ...
It should be if one just considers these few FACTS / FACTS!!!
Most ALL Notebooks/ and ALL Samsung Notebooks / use NVidia with a linux kernel!
ALL Android Phones use a Linux kernel and have 4K Awesomeness
Not to mention Chromebooks - TOTALLY LINUX though they don't (smartly) FLAUNT it to not scare away the younger impressionable generation
... and yes ALL WORK FLAWLESSLY with or without G-Sync across ALL hardware (HDMI/ External Monitors included)
...
but here finally are my notes that have helped MANY people in the past ~2 years when encountering ...
Screen Tearing and'or Jitter
and this is a cut and past with a little cleanup only so bear this in mind
----------------------------------------------------------------------------------------
Nov. 16,2018
∘ creating a file in sudo gedit /etc/modprobe.d/ with options nvidia_drm modeset=1 would resolve the issue.
sudo gedit /etc/modprobe.d/[
‣ nvidia_drm modeset=1

• 04/12/18
∘ OK now i can say this is 95% solved,
∘ 1/ The real problem comes down to Refresh Rate and Sync Rate of the Nvidia card and the screen(s)
‣ With nvidia-prime then there is no possibility of vsync yet - arghhhh
∘ -With Nvidia's drivers for linux and"Optimus" cards they left out the simple code to do this to save resources for the masses - STUPID!!!!!
‣ Get PRIME Synchronization on Optimus

• Solution (now for none specific Nvidia Drivers - AWESOME!)
∘ To check if it (Synchronization) is set or not set use this command:
• sudo cat /sys/module/nvidia_drm/parameters/modeset
∘ It should say "y" for modeset=1, which means it is synchronized at 60 fps (I believe) for your Monitor. ...
‣ ex. HDMI-1-1, or eDP-1-1
• sudo gedit /etc/modprobe.d/nvidia-drm-nomodeset.conf
∘ and make sure the following line is present;
• options nvidia-drm modeset=1
‣ Made Ubuntu With NVIDIA UNBOOTABLE AGAIN
∘ after Update Intramfs and Reboot
• sudo update-initramfs -u
• reboot

‣ Previous Way
• sudo nano /etc/modprobe.d/zz-nvidia-modeset.conf
• add:
• options nvidia_384_drm modeset=1
• sudo update-initramfs -u
‣ More Persistent
• sudo gedit /etc/modprobe.d/nvidia-graphics-drivers.conf
∘ Set Lower Swap
∘ SWAPPINESS
Last edited by ack0329; May 27, 2019 @ 1:42pm
Aoi Blue May 27, 2019 @ 1:20pm 
Modeset should not force VSync on, but it might work around the issue of VSync not working at all.

The double-buffering is the issue with VSync.

I agree that all these issues should not be a problem. Android's video driver stack uses Kernel GLE handling with a custom window manager. It works great. These issues don't occur on the Mesa drivers either. They are purely nVidia's fault.

There are some good workarounds. That one line of enabling KMS modesetting so that both the display adapter and the render adapter on prime setups are using the framebuffer setup stack really should help in theory, and apparently in practice too.

I suspect nVidia's "better" (not really) Linux framebuffer management that is included with their proprietary drivers is the source of the problem. Simply switching to the standard Modesetting one will fix the issue if that is the case.

The fact that this is not default speaks to the general disregard of Linux by nVidia, and is why I use AMD myself. I understand that this is not always an option if your preferred form factor is a laptop, due to AMD's lack of presence in the mobile market, and in desktops, I also understand that my price range is exactly in the AMD butter zone where their cards actually beat nVidia's price comparative cards. Not every user is in that price range either, and some either want the far higher performance of nVidia's top end cards, and are willing to pay for it.
Last edited by Aoi Blue; May 27, 2019 @ 1:28pm
Zyro May 28, 2019 @ 8:44am 
Thumps up for the mods deleting troll posts.
Aoi Blue May 28, 2019 @ 10:32am 
Originally posted by Zyro:
Thumps up for the mods deleting troll posts.
I'm also perfectly happy with them deleting my replies. :steamhappy:
Aoi Blue May 28, 2019 @ 10:34am 
BTW, the problem in question is with the way nVidia's driver handles Prime. That's the big issue.

The tearing isn't happening on the render pass, but on the frame swap to the output chipset.

To put it simply here is the stack:
Render Pipe
|
| Minimimum tearing in this pass no visual issues
|
nVidia-Side "Front" framebuffer
|
| BIG tearing problem here!
|
Integrated Chipset "Display" framebuffer

The problem is the by default the nVidia is using nVidia proprietary framebuffer, an "old style" framebuffer driver, while the integrated chip uses KMS framebuffer, the modern solution. This means there the nVidia chip can read the integrated chip's vSync or even hSync signal, so it literally will copy mid-scanline creating all sorts of mess.

By simply switching the nVidia driver to use it's newer KMS framebuffer driver, it fixes it. This feature should default on for platforms with Prime since it fixes more problems than it solves. It should remain off for full dedicated platforms until it is fully out of experimental stage.
Last edited by Aoi Blue; May 28, 2019 @ 10:42am
leech May 28, 2019 @ 8:01pm 
For what it's worth, this isn't a typical vsync tearing, this is more like the screens on the headset are being displayed correctly. Remember the old monitors with a vertical / horizontal hold dials? When you'd mess with them, the screen would start to sort of roll? It is sort of like that, but not quite. More like if both the vertical and the horizontal holds were off (the tear goes diagonally, but mostly horizontal). Typical screen tearing is more like when you're moving things around and it's not smooth (an issue by the way I've never had on nVidia drivers on the desktop, and generally only in video playback, but gsync / vsync generally fixes that. This is a constant thing as if the screens just aren't held in place like they should be. I really need to see if I can capture it somehow.
Aoi Blue May 29, 2019 @ 5:21am 
Originally posted by leech:
For what it's worth, this isn't a typical vsync tearing, this is more like the screens on the headset are being displayed correctly. Remember the old monitors with a vertical / horizontal hold dials? When you'd mess with them, the screen would start to sort of roll? It is sort of like that, but not quite. More like if both the vertical and the horizontal holds were off (the tear goes diagonally, but mostly horizontal). Typical screen tearing is more like when you're moving things around and it's not smooth (an issue by the way I've never had on nVidia drivers on the desktop, and generally only in video playback, but gsync / vsync generally fixes that. This is a constant thing as if the screens just aren't held in place like they should be. I really need to see if I can capture it somehow.

Yes, this is what happens when a copy happens in a non-hsync blank.
Teotwawki May 31, 2019 @ 1:27am 
Not sure that this will help in your case, but I had Nvidia related screen tearing on Xubuntu 16.04.

I fixed this by adding a "Launcher" to my top panel, with this command:

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

Now when I boot up the PC, I click that launcher to apply the "fix" for that session.

If you search "nvidia linux screen tearing force composition pipeline" you may find some helpful articles, though I have no experience with VR.

Good luck.

Here is one recently updated article about this: https://www.cmscritic.com/how-to-fix-nvidia-screen-tearing-in-xfce-mate-kde-lxde-and-others/
Last edited by Teotwawki; May 31, 2019 @ 1:28am
leech May 31, 2019 @ 7:52am 
Originally posted by Teotwawki:
Not sure that this will help in your case, but I had Nvidia related screen tearing on Xubuntu 16.04.

I fixed this by adding a "Launcher" to my top panel, with this command:

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

Now when I boot up the PC, I click that launcher to apply the "fix" for that session.

If you search "nvidia linux screen tearing force composition pipeline" you may find some helpful articles, though I have no experience with VR.

Good luck.

Here is one recently updated article about this: https://www.cmscritic.com/how-to-fix-nvidia-screen-tearing-in-xfce-mate-kde-lxde-and-others/
Just tried it, no such luck. Not sure if it was SteamVR or what, but my computer also crashed when trying to reply. There is a github post about this as well. https://github.com/ValveSoftware/SteamVR-for-Linux/issues/196#issuecomment-497280753
< >
Showing 1-15 of 16 comments
Per page: 1530 50

Date Posted: May 26, 2019 @ 8:11pm
Posts: 16