This has to do with Vertical Sync and isn't a real performance issue. Apparently, looks like there is some kind of bug in latest unity versions/and or Nvidia drivers - so it seems that VSync settings doesn't get respected all the time. High CPU usage in Gfx.WaitForPresent is just a CPU that is idling. As long as a GPU milisecond usage stays low, you aren't probably experiencing any real problem - and your framerates should be as high as your refresh rate (60 -70 fps, or any other framerate that your screen uses). Reason is unknown, but migh be somewhere in Nvidia settings for VSync, Gsync... So to clarify: -if Gfx.WaitForPresent is high, and only that one is high - you are getting Vertical Sync issues - and your app is working fine, but is refreshed for your monitor. You won't get better framerates that the ones that are set in your display drivers.