protonscr

[PERF] Async Reprojection Causes Poor Performance

steamvrclosed perf
ValveSoftware/SteamVR-for-Linux#240 · opened 2019-09-02 by Goofybud16 · updated 2019-09-05 · 3 comments · github
GGoofybud16 2019-09-02 github

Describe the bug
When Async Reprojection is enabled, it causes performance issues in titles that hit the target framerate. Beat Saber, for example, normally maintains a smooth 120 FPS. When I turn on Motion Smoothing, it seems to cause the framreate to "pulse" between 120FPS and barely playable (feels like less than 30 FPS). When I disable async reprojection in my steamvr.vrsettings file, everything runs fine (except no async reprojection). It even effects the blank grid before a game loads.

To Reproduce
Steps to reproduce the behavior:

  1. Make Sure Async Reprojection is enabled
  2. Play a game that performs well such as Beat Saber.

Expected behavior
Async Reprojection doesn't effect titles that already hit the desired framerate (120 FPS), and doesn't cause worse performance.

System Information (please complete the following information):

Performance Data (optional, but very helpful):

Screenshots
In Beat Saber:
image
In The Empty Grid:
image

In VRChat, which normally only maintains 60 FPS, enabling async reprojection seems to cause it to run between 40 and 60 FPS.

While testing the issue, I had VRChat hang on exit (as usual), and that seemed to prompt a bunch of

 kernel:[284877.299532] Uhhuh. NMI received for unknown reason 3c on CPU 18.
 kernel:[284892.197493] Uhhuh. NMI received for unknown reason 2c on CPU 23.

across all CPUs, repeatedly every few seconds (and sometimes multiple times a second).

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

ZZamundaaa 2019-09-02 github

This really sounds like #226, although I don't have that in the empty grid, and some games are more or less not affected at all. Quite possibly related.

GGoofybud16 2019-09-02 github

Back in 1.7.3, I didn't have this issue, and async reprojection seemed to work great (other than #230).

I haven't reproduced #230 on 1.7.12, but that's because the framerate tanks make it painful to play long enough to get that to happen.

Although looking at it, I do seem to have the impossible frame times like #226.

GGoofybud16 2019-09-05 github

1.7.13 seems to have fixed my problem with Beat Saber. The empty loading grid (because I have SteamVR Home disabled) still stutters and has impossible frame times, however in-game seems to be fine. There is an occasional stutter in Beat Saber, but it isn't bad (barely noticeable). It almost feels like I'm getting a 1-2 frame old frame displayed every now and then instead of just new frames. I suspect it's related to #230.

I also tested VRChat and found that the game now performs well (previously 40-60 FPS w/ Async on 1.7.12, now 60-120 w/ Async).

Seems to me like this problem has been resolved.

Nothing extracted yet.