ValveSoftware / SteamVR-for-Linux

Issue tracker for the Linux port of SteamVR
917 stars 45 forks source link

Reprojection failure on high GPU usage (scheduling problem?) #685

Open Skyliner-369 opened 4 months ago

Skyliner-369 commented 4 months ago

Edited. Retractions are strikethrough. Describe the bug ~Whenever a program cannot reach the refresh rate of the headset, the frames are dropped instead of reprojected.~ Update: It seems to actually be a problem with some sort of GPU scheduler not allocating enough time/resources to reprojection note: this issue DOES show up on Windows, too, to a lesser degree. Harder to push out reprojection.

To Reproduce Steps to reproduce the behavior: ~find a game that can't be run at refresh (A good candidate is VRChat)~ find a game that uses too much GPU example:in VRChat, have a mirror open, and the avatar menu open, and move that avatar menu around to really stress it. note:this might only be an issue in higher refresh rates (120, 144)

Expected behavior ~Reprojected frames sent to headset instead of being dropped~ Successful reprojection during heavy GPU usage anyway

System Information (please complete the following information):

Note: gist was quick and dirty. Things like Display Mode may be inaccurate. (I didn't even turn my base stations on) new Gist below

Screenshots ~I wouldn't know how to demonstrate this issue in a screenshot~ When stressed: Steamvr Cant Reproject When unstressed: Steamvr Can Reproject

Additional context ~Potential missing package? if so, this is a request for a complete dependency list. Otherwise,~ it's probably something broken in relation to ~rdna3~ RDNA

mini-note: I'm new to reporting bugs. if needed info is missing, request it, don't close the issue.

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

Skyliner-369 commented 4 months ago

new gist with steamVR set up as it should: https://gist.github.com/Skyliner-369/7c69f7abb69872eb89329ff82b245f86

Vixea commented 4 months ago

I noticed you have async disabled(1). That means you are running using the same graphics queue as the game or application that's heavy(as stated in your bug report like VRChat), this doesn't allow compute tunneling which allows the VR compositor to mostly complete all its work.

1: (I'm pretty sure that's the compute one not async reprojection) 2: (should be always but that's currently what you get)

Vixea commented 3 months ago

This needs to be retested with the newest beta.

olekolek1000 commented 3 months ago

Compositor still fails to deliver 144 FPS to the headset if the gpu is saturated, RX 7800 XT.

Skyliner-369 commented 3 weeks ago

Some additional testing: using CoreCtrl I forced my GPU to VR mode, and maxed out the frequencies and wattage. The performance graph still looks like what's screenshotted above, from me. An almost solid purple bar.

Skyliner-369 commented 2 weeks ago

after even more testing, and staring at graphs, it seems to fail right as the application frame time goes above, for 144hz, 13.88ms. For 90hz I'd assume 33.33ms. so it seems to be specifically failing to reproject twice or more, or I could be barking up the wrong tree and this is a false lead.