dantman / elite-vr-cockpit

A SteamVR Overlay providing a virtual throttle and joystick and holographic buttons for ship functions, with custom integration into Elite Dangerous
Other
326 stars 37 forks source link

In game controls stuttering when on menu and in game. #288

Open redredkrovy opened 3 years ago

redredkrovy commented 3 years ago

The controls overlay is stuttering and becoming unresponsive when in the menus. When in-game it's so bad I can't use them. Everything else responds normally. I'm able to use the keyboard with no issues, I'm able to look around and the game runs without any stuttering but the overlay controls will keep locking up for seconds at a time with maybe a second or two in between where I have control and they respond. I've followed the getting started instructions to a T up until this point. Any ideas?

Edit: I should have specified I have a Valve Index.

Edit 2: System specs in case they're needed. Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz, GeForce RTX 2060, and 16 GB RAM. Also it is a laptop.

dantman commented 3 years ago

Try turning on the frame graph and checking the performance.

Two quick possibilities:

redredkrovy commented 3 years ago

Nothing else is stuttering. The game is running fine, when I open the home screen the controls are responding normally. It's the overlay that's stuttering and not working. It's the only overlay besides the SteamVR overlay. It does make a difference whether I'm in the menu or in game. In the menu it's every two or three seconds and only last a second. In game I may get one second of control before it freezes for three seconds and then starts over.

dantman commented 3 years ago

Nothing else is stuttering. The game is running fine, when I open the home screen the controls are responding normally. It's the overlay that's stuttering and not working.

Check the frame timing graph. The overlay doesn't benefit from reprojection as much as the game. If you are just beyond the limit of your graphics card the overlay can start having trouble before there is any noticeable effect on the game.

It's the only overlay besides the SteamVR overlay.

In the overlay each and every button, panel, tooltip, control, etc you see is a separate overlay. You can go beyond SteamVR's max overlays limit just by having too many buttons. Check the desktop view for errors.

redredkrovy commented 3 years ago

Ok, how can I obtain a frame time graph? I did download and use fpsVR and the reprojection rate is around 50-60%. I did notice today when fooling with it that the overlay doesn't stutter at all if Elite isn't the focused screen. Even with it running when it's not the desktop focus and the message saying it isn't is displayed in the VR headset no stutter freezing at all with the overlay. I do have vJoy configured with 32 buttons for each device. I'm going to lower that and see if it helps.

Edit: Lowering the button count from 32 to 8 for each device did nothing. Outside of Elite it responds flawlessly, inside of it 1.5-2 seconds of control and then if freezes for 1 second, rinse and repeat over and over.

dantman commented 3 years ago

Ok, how can I obtain a frame time graph?

It's the "Show GPU Performance Graph in Headset" option in developer settings. There should also be an option somewhere to turn on the same graph on the desktop controls for SteamVR.

I do have vJoy configured with 32 buttons for each device. I'm going to lower that and see if it helps.

Edit: Lowering the button count from 32 to 8 for each device did nothing. Outside of Elite it responds flawlessly, inside of it 1.5-2 seconds of control and then if freezes for 1 second, rinse and repeat over and over.

That button limit is irrelevant. That's just the maximum number of bindable HOTAS buttons I can create for things like triggers and middle pressing POVs.

The holographic buttons are what primarily affects the overlay limit. Each one of those is a separate overlay so by having a bunch of them you can go over the maximum overlays. However if you do, errors/warnings will start showing in the desktop view. So a screenshot of that would be useful.

redredkrovy commented 3 years ago

Tried getting a video of it with OBS. It did catch it but it reacted differently with OBS running than without. Maybe it can give you some info that will help me out. If you need another video let me know. I didn't realize fpsVR would be so difficult to see with both eyes selected.

https://youtu.be/FHDLh6QZVg0

Quick edit: Elite starts around 1:40

dantman commented 2 years ago

Yeah, looks like your frame timings are way way to high. You're in the yellow the whole time with regular jumps to the red. ED isn't actually rendering at the level needed to show VR at all. SteamVR is just compensating for that by warping previous frames.

The overlay is lower priority than the game and if the game isn't rendering with good non-reprojection frame times (green on the graph) then the overlay's rendering could be skipped for some frames. You'll need to tweak your graphical settings until ED can run in the green instead of yellows and reds on the frame timings graph.