SteamVR-for-Linux icon indicating copy to clipboard operation
SteamVR-for-Linux copied to clipboard

[BUG] async reprojection non functional (no rendering in headset)

Open caseif opened this issue 2 years ago • 34 comments

Describe the bug My headset display is black with the backlight turned on when using SteamVR 2.0.1 with asynchronous reprojection enabled via the enableLinuxVulkanAsync key in steamvr.vrsettings. The sole exception to this is the first time it runs after a reboot, upon which the interstitial "aurora" environment is visible along with the controllers and lighthouses (although vrdashboard fails to render). SteamVR Home fails to load in this case as well, although I'm having the same issue with SteamVR 1.27 so I presume it's a separate issue. I've verified that there are no leftover processes matching steamvr between SteamVR restarts that might otherwise explain this anomaly.

Disabling async reprojection fully resolves the issue, with the aurora environment being visible and vrdashbaord rendering properly (apart from #615 and something similar to #570).

On the first run, the artifacting usually present when async reprojection is enabled is absent. I had initially assumed that it might have been fixed in 2.0.1, but it now appears that it might just not be functioning at all on first run. I'm not clear on how to confirm whether it's actually functioning at a given moment in time so either scenario is possible.

The desktop VR view does work correctly (again, apart from #615 and the aforementioned SteamVR Home issue), and I'm able to interact with vrdashboard and launch games through it, but the headset display remains black. I've listed some attempted fixes below that haven't had any effect on the issue:

  • Restarting SteamVR
  • Restarting Steam
  • Restarting the headset via SteamVR
  • Disconnecting and reconnecting the DisplayPort cable
  • Connecting the DisplayPort cable to a different port
  • Disconnecting and reconnecting the USB cable
  • Disconnecting and reconnecting the power cable
  • Disabling base station power management
  • Switching the headset refresh rate from 120 Hz to 90 Hz
  • Opting out of the Steam client beta

To Reproduce Steps to reproduce the behavior:

  1. In steamvr.vrsettings, set enableLinuxVulkanAsync to true
  2. Opt into Steam client beta
  3. Opt into SteamVR beta
  4. Launch SteamVR
  5. Close and re-launch SteamVR
  6. Headset display is black

Expected behavior The headset should display the VR view instead of a black screen.

System Information (please complete the following information):

  • Distribution: Arch
  • SteamVR version: 2.0.1
  • Steam client version: 1695679261
  • Opted into Steam client beta?: Yes
  • Graphics driver version: 23.1.7
  • Gist for SteamVR System Information: https://gist.github.com/caseif/443e9dcfe558fe3a0d3a864a2ebf8412

Note: Commenters who are also experiencing this issue are encouraged to include the "System Information" section in their replies.

caseif avatar Sep 26 '23 13:09 caseif

On further testing I discovered that this seems to be related to async reprojection and have updated the issue title and body accordingly.

caseif avatar Sep 26 '23 14:09 caseif

I am experiencing the same issue Note: this problem occurs on both native & runtime versions of steam

Distribution: Arch
SteamVR version: beta 2.0.2
GPU: MSI GeForce RTX 3060 GAMING X 12G
Graphics Driver: nvidia-dkms-535.113.01-2

DaeTheDerg avatar Sep 30 '23 21:09 DaeTheDerg

This is still an issue on SteamVR Beta 2.0.3

DaeTheDerg avatar Oct 09 '23 23:10 DaeTheDerg

Still an issue on 2.0.5 too

Spengreb avatar Oct 12 '23 09:10 Spengreb

Still an issue on 2.0.8, I reverted to last version of SteamVR 1 see https://github.com/ValveSoftware/SteamVR-for-Linux/issues/623#issuecomment-1780358506 for how.

vermeeren avatar Oct 26 '23 03:10 vermeeren

Now that we got a forced "upgrade" to 2.0.8, I ran into this issues as well. (Ubuntu 23.04/Index/Nvidia 525)

Unfortunately no beta branch to downgrade, so now I have to do it manually.

edwin-v avatar Oct 26 '23 19:10 edwin-v

Same issue on Fedora 38 here on SteamVR 2.0.8

CorneliusCornbread avatar Oct 28 '23 04:10 CorneliusCornbread

With SteamVR 2.0.10 any error messages from before are gone and the new UI works too, except for wrong colours #570. Turning on enableLinuxVulkanAsync still results in a black display, so I am back to 1.27.5 for now. (VRChat really needs async.)

vermeeren avatar Nov 02 '23 16:11 vermeeren

With SteamVR 2.0.10 any error messages from before are gone and the new UI works too, except for wrong colours #570. Turning on enableLinuxVulkanAsync still results in a black display, so I am back to 1.27.5 for now. (VRChat really needs async.)

Can confirm the same behaviour on my machine

DaeTheDerg avatar Nov 02 '23 23:11 DaeTheDerg

This is still occurring in Steam VR beta 2.1.1.

caseif avatar Nov 10 '23 00:11 caseif

Hi all! For me this is no longer a problem in steamvr 2.1.2, hooray!! 2.1.2 launches properly with the enableLinuxVulkanAsync variable set to true in the vrsettings config

DaeTheDerg avatar Nov 17 '23 02:11 DaeTheDerg

SteamVR is being temperamental at the moment and won't recognize the headset display so I can't test and confirm, but I'll fiddle with it some more over the weekend when I have more time.

caseif avatar Nov 17 '23 03:11 caseif

I had that problem a few days ago - all I had to do was unplug the DP cable while the computer was off, turn it back on, and plug it back in before starting steamvr and it's been fine since!

DaeTheDerg avatar Nov 17 '23 12:11 DaeTheDerg

@DaeTheDragon Thanks a lot, that did the trick! It seems like this issue crops up for me every few weeks or so so it's really great to have a workaround now.

Unfortunately, Valve has now pushed 2.1.3 which is causing me to run up against #639 so I still can't re-test this bug. Just a big ol' game of whack-a-mole with these betas, lol.

caseif avatar Nov 17 '23 14:11 caseif

This is unfortunately still occurring for me with beta version 2.1.5.

caseif avatar Nov 18 '23 20:11 caseif

This is still occurring with version 2.1.7.

caseif avatar Nov 22 '23 18:11 caseif

@DaeTheDragon Thanks a lot, that did the trick! It seems like this issue crops up for me every few weeks or so so it's really great to have a workaround now.

Unfortunately, Valve has now pushed 2.1.3 which is causing me to run up against #639 so I still can't re-test this bug. Just a big ol' game of whack-a-mole with these betas, lol.


This is unfortunately still occurring for me with beta version 2.1.5.


This is still occurring with version 2.1.7.


heya!! sorry I haven't replied here to your response, been pretty hectic! anyway- actually for me, it has been working fine from version 2.1.2 up to version 2.1.7! I've been able to turn on VulkanAsync in the settings file and have been using it without any problems since I made my last post here, strangely enough!! how odd that you were still unable to!

anyway, since hotfix update 2.1.8, the issue you're experiencing has returned for me, black void again, and the only fix is to turn VulkanAsync back off again...

I'm probably going to drop back to 2.1.7 where my VulkanAsync was still working, until a newer update works for me!

DaeTheDerg avatar Dec 01 '23 18:12 DaeTheDerg

Hey I'm also experincing this on 2.1.10 Beta

Distribution: EndeavourOS SteamVR version: beta 2.1.10 GPU: MSI GeForce RTX 3060 12G Graphics Driver: nvidia-dkms 545.29.06-1

But what I find interesting or maybe helpful, is if that is async reprojection based on Vulkan, I was learning it once, but then got booted off to another project, there are validation layers that could be turned on, and maybe they can pinpoint us to a root cause?

I'll try to find if that is possible, and leave this comment as is, as maybe some Vulkan expert can quickly say that it is/isn't possible.

EDIT: Found out you can very easliy download vkconfig fire it up (on EndeavourOS it was a vulkan-extra-tools package), and the rest takes care of itself, you just need to change the log filename to a absolute path and Vulkan pipes all the errors by itself, I know that SteamVR is build upon OpenVR, but can anyone say if the asyncreprojection is opensourced? If it is, I may poke and try to fix it just for pure experience.

I'm also attaching the file that was outputted. vrstartup.txt

Hisanatos avatar Dec 05 '23 17:12 Hisanatos

This is still occurring as of SteamVR 2.2.1.

caseif avatar Dec 13 '23 23:12 caseif

Behaviour is still the same in SteamVR Beta 2.2.3

Hisanatos avatar Dec 20 '23 18:12 Hisanatos

Hello, still happening with SteamVR Beta 2.2.4

aureliensoria avatar Dec 26 '23 12:12 aureliensoria

AMD RX 6600 XT user.

Seemingly the best way to fix this for now is using temp_v1.27.5 beta and making sure nodcc is ~not~ set within RADV_DEBUG options. This will cause ~major~ noticeable graphical corruption of SteamVR overlays at the benefit of flawless reprojection in-game, at least from my testing.

I used to use v1.14 all the time and it is still the most stable version in regards to reprojection, rendering and just about everything else, but that one requires changing selected Proton version of many games to 5.13.

purplebar0 avatar Jan 03 '24 22:01 purplebar0

@Hisanatos

can anyone say if the asyncreprojection is opensourced? If it is, I may poke and try to fix it just for pure experience.

I'm not sure, but I wish you luck! 💜

DaeTheDerg avatar Jan 04 '24 16:01 DaeTheDerg

Replying to https://github.com/ValveSoftware/SteamVR-for-Linux/issues/616#issuecomment-1841243338

SteamVR is, in fact, fully closed source. This GitHub repo exists exclusively for reporting issues. There are open-source alternatives to SteamVR for Linux, see (https://gitlab.com/gabmus/envision). Though they're not quite as plug-and-play as SteamVR... well as SteamVR is supposed to be.

CorneliusCornbread avatar Jan 05 '24 03:01 CorneliusCornbread

I've tested it on 1.27.5 and it works flawlessly on Nvidia hardware, I can even do some Expert+ Camilia songs in the Beat Saber, though I've noticed that it can "lose" the controllers, and even though I sliced through some boxes it doesn't register, will try to drill into why it happenes.

Beta 2.3.1 is still broken though, SteamVR startsup and Valve Index only show black (well more like grey) image. VR view shows that the headset is correctly tracked.

As there is a difference between 1.27.5 and 2.X.X maybe there is some information that would help Valve fix it? (Of course question to Valve :) )

Hisanatos avatar Jan 11 '24 19:01 Hisanatos

Having the same issue here as well with 2.3.3. Hoping they fix it soon because currently if I revert to 1.27.5 and try to run any VR title it simply crashes Steam and SteamVR.

Without async re-projection most games have a ghosting effect making them unplayable.

Hopefully this gets fixed soon.

crocycroc avatar Jan 23 '24 21:01 crocycroc

This is still occurring with version 2.4.1.

caseif avatar Feb 11 '24 13:02 caseif

This seems to be fixed, with SteamVR Beta 2.5.1!

Scrumplex avatar Mar 27 '24 22:03 Scrumplex

This seems to be fixed, with SteamVR Beta 2.5.1!

While I assumed the update announcement meant the issue was fixed, I am still observing the same happening on my end. Nothing is being displayed inside the headset on that beta.

RX 6600 XT, Mesa driver, Valve Index, recently updated Artix Linux, Steam client stable branch

purplebar0 avatar Mar 28 '24 09:03 purplebar0

Yup. I have to take back my comment up there. I thought I had enabled enableLinuxVulkanAsync again, but I forgot to save before testing :O

Still broken with Beta 2.5.1

Scrumplex avatar Mar 28 '24 10:03 Scrumplex