Jump to content

Empty Scene Performance: 5ms vs 35ms w/ Hand Tracking


nocanwin

Recommended Posts

Is anyone else running into performance issues? I'm seeing an additional 30ms / frame when I run hand tracking in an empty scene. My gfx card isn't the best, a 1060. What's strange is the sample project runs at 9ms for me. Maybe the quality settings are lower than what I'm building with?

@zzy

Link to comment
Share on other sites

Hi @nocanwin

If the sample project runs at 9ms, then I would suggest you to check what is in your scene that makes the execution slow. I would suggest to use the same project for both sample and your scene to make a even compare.

What is your game engine, Unity or Unreal? What's your HMD? Do you have some detailed profiling result (provided by Unity or Unreal) that can show which functions is taking a very long time?

Link to comment
Share on other sites

Sorry, an errant PlayerPref was causing my test scene to capture video. That's now fixed and I've made a new standalone build. I'm now getting 12ms in an empty scene with hand tracking. 5ms without hand tracking. Is this more in line with what I should be seeing? 7ms seems high, but my GPU is on the weaker side.

I'm using Unity 2019.3 with a Vive Pro Eye. GestureProvider is set to GPU. When I try using CPU I get an error. Start gesture detection failed: CPUOnPC: GetstureProvider.cs:213

Edited by nocanwin
Link to comment
Share on other sites

Hi @nocanwin

Hand tracking does not support running with CPU on Windows, so this error is expected behaviour.

As for the scene performance, do you have some break down about the time? What is the difference between 12ms and 5ms in Unity profiler? Can you identify some scripts that takes very long time, or the whole performance is slow? Please also check Windows Task Manager and see if CPU is at 100% utilization.

Link to comment
Share on other sites

Thanks for your help @zzy but I'm guessing my GPU just isn't powerful enough. It is a 1060 after all. My CPU isn't at 100%. Did some profiling of and the only thing taking over 1ms is XR.WaitForGPU > Semaphore.WaitForSignal. It bounces between 9m and 19ms. I'm guessing this is because the frame rate is getting halved to 45 when it can't reach 90.

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...