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
Link to comment
Share on other sites

Create an account or sign in to comment

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

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Create New...