Forum Discussion
ralphVR
10 years agoProtege
Screen Tearing when using Oculus Utilities
Heya! So my partner and I have been stumped for two months on trying to get our game running like it did before we switched to Oculus Utilities. We managed to get the FPS back to where it was, but we ...
CodingJar
10 years agoProtege
I've also spent months trying to fix this for my game. There's a ton of performance-related information out there, but what was REALLY killing me, is I believe there is a bug in the OVRPlugin SDK when using CPU/GPU throttles. Are you using those?
The SDK allows you to specific a clock speed for CPU or GPU, and by default it's set to 2,2 I believe. If you ever clock it down to 0,0 (or perhaps 0,1 or 1,0), for some reason your app will never recover, even if you then clock it back up to a higher speed. I was clocking down to 0,0 for menus, and any performance profiling after would be ridiculously bad.
Here is the talk you need to watch for performance info: https://www.youtube.com/watch?v=MLxwn-9UQHs.
Here is my text summary of what I do:
- Disable Multi-threaded rendering, GPU skinning, and Dynamic Batching.
- Disable all but your basic static geometry / terrain in your level.
- Set the CPU/GPU speeds to 3,2 (I believe this is the highest you can set it without being disallowed on the store).
- Disable QueueAhead in the Oculus Utilities, and all of their funky stuff like positional tracking.
- Make a build with internal profiling on.
- Do NOT run in GearVR Developer Mode, use your headset.
- See if there's tearing. If there is, see if you can narrow the issue with the Unity internal log spam and then these:
- See if you can narrow it down using the Unity profiler (the one in the Editor, not the internal one).
- See if you can use the frame debugger to see your draw calls and check if there's anything ominous. If it crashes, you can assume it's the same in the editor and double your draw count (one for each eye).
If there isn't tearing, you can back-off the CPU/GPU speeds. Right now our game runs at solid 60 with CPU/GPU=1,1. But if you ever get it to 0,1 (or probably 1,0 as well), then the game will drop frames like crazy, tear like crazy, and it doesn't matter if you ever return to 3,2 -- the problem will persist forever.
Hope that helps.
The SDK allows you to specific a clock speed for CPU or GPU, and by default it's set to 2,2 I believe. If you ever clock it down to 0,0 (or perhaps 0,1 or 1,0), for some reason your app will never recover, even if you then clock it back up to a higher speed. I was clocking down to 0,0 for menus, and any performance profiling after would be ridiculously bad.
Here is the talk you need to watch for performance info: https://www.youtube.com/watch?v=MLxwn-9UQHs.
Here is my text summary of what I do:
- Disable Multi-threaded rendering, GPU skinning, and Dynamic Batching.
- Disable all but your basic static geometry / terrain in your level.
- Set the CPU/GPU speeds to 3,2 (I believe this is the highest you can set it without being disallowed on the store).
- Disable QueueAhead in the Oculus Utilities, and all of their funky stuff like positional tracking.
- Make a build with internal profiling on.
- Do NOT run in GearVR Developer Mode, use your headset.
- See if there's tearing. If there is, see if you can narrow the issue with the Unity internal log spam and then these:
- See if you can narrow it down using the Unity profiler (the one in the Editor, not the internal one).
- See if you can use the frame debugger to see your draw calls and check if there's anything ominous. If it crashes, you can assume it's the same in the editor and double your draw count (one for each eye).
If there isn't tearing, you can back-off the CPU/GPU speeds. Right now our game runs at solid 60 with CPU/GPU=1,1. But if you ever get it to 0,1 (or probably 1,0 as well), then the game will drop frames like crazy, tear like crazy, and it doesn't matter if you ever return to 3,2 -- the problem will persist forever.
Hope that helps.
Quick Links
- Horizon Developer Support
- Quest User Forums
- Troubleshooting Forum for problems with a game or app
- Quest Support for problems with your device
Other Meta Support
Related Content
- 3 months ago
- 7 months ago