PSA: No more disabling Vsync with the Rift

As some of you know for some reason we lost the ability to disable Vsync with OVR SDK/Runtime 0.6.0.x.

As it turns out Oculus have done this intentionally over there fears that dev’s will missuse this feature with a production release.

https://forums.oculus.com/viewtopic.php?f=20&t=24077

The long and short of it is they have decided that we cant be trusted with Vsync.

Now to be fair, they may have a point as I know of at least one demo where they temporarily disabled VSync during level streaming to stop the framerate being halfed to 37.5fps.

There answer as far as profiling is to use there new perfmon utility or to profile with the -emulatestereo commandline switch.

Thanks for the heads up Opamp!

I haven’t tried the new method yet but disabling vsync was a very easy way to check your real fps and see how close (or far) you were from hitting 75 fps in each part of your scene… Hope it’s still as easy.

It looks like with qahead on you at least get some sort of average frame rate where as with qahead off you’ve got your usual 37.5fps.

senza peso nukes level, screen-percentage 220 on an r9 270x.

qahead on,

qahead off,

Cool, that should do it!

how can I see these statistics?

Second btengelh, how do you enable the statistics screen in opamp77’s post?

Sorry guys,

You’ll have to wait until epic add the console command to the plugin unless you want to add it yourself.
But the standard fps counter with qahead enable will still give you an average fps.

If you want to add it to the plugin yourself you’d need to edit OculusRiftHMD.cpp

after


else if (FParse::Command(&Cmd, TEXT("PROFILE"))) // profile
		{
			Settings->Flags.bProfiling = !Settings->Flags.bProfiling;
			Flags.bNeedUpdateDistortionCaps = true;
			Ar.Logf(TEXT("Profiling mode is currently %s"), (Settings->Flags.bProfiling) ? TEXT("ON") : TEXT("OFF"));
			return true;
		}

Insert


else if (FParse::Command(&Cmd, TEXT("PERFMON")))
		{
			FString CmdName = FParse::Token(Cmd, 0);
			if (CmdName.IsEmpty())
				return false;
			int32 i = FCString::Atoi(*CmdName);
			if (i >= 0 && i < 3)
			{
				ovrHmd_SetInt(Hmd, "PerfHudMode", i);
				return true;
			}
		}

Then you should be able to use

‘HMD PERFMON 0’ to turn off
‘HMD PERFMON 1’ for latencys
‘HMD PERFMON 2’ for framerate

1 Like

Many thanks opamp77

Thanks opamp77. Requested to include your code in the next release on answerhub (I’m using UE4 binary and I failed to expose this command to a blueprint node :o)