Jump to content

Tip: Remove All Screen Space Canvases

Recommended Posts

I just spent a week trying to fix some really strange performance issues in my Vive Focus project. Despite having a very simple scene (literally 3 meshes and less than a dozen draw calls), my Focus was rendering at ~40FPS according to ADB. After profiling, I found that the framerate was actually super inconsistent, and the Focus was spending a lot of time on the GPU after rendering:


There you can see I'm spending over 20ms in Gfx.ProcessCommands after both Camera.Render calls complete, but without any obvious reason. This happened on 50-70% of the frames. (Side note: I was using multipass at the time of this screenshot, thus the two render calls. Friendly reminder to use singlepass if at all possible.)

After removing almost everything from the scene, I realized there was a Screen Space Canvas in the scene that we use to render a desktop menu in the Oculus version of our app. That Canvas wasn't being displayed on the Focus. However, when I removed the Canvas from the scene, the overall frame time became consistent again and my framerate returned to normal.


tl;dr: Disable any and all screen space Canvases you may have. They won't be displayed, but they still take up time on the GPU.

@Tony PH Lin


  • Like 1
  • Thanks 1

Share this post

Link to post
Share on other sites

Thank you for your sharing. Glad to see there are more enthusiastic contributors in Vive community. Helping people learn something useful from other developers' experience. :classic_smile:

Share this post

Link to post
Share on other sites

Please sign in to comment

You need to be a member in order to leave a comment

Sign in

Already have an account? Sign in here.

Sign In Now

  • Create New...