How to set a different framerate for PS VR on Neo?

One of the Neo enhancements we want to try is running at native 90fps, rather than re-projected from 60fps.

But, according to Sony, we have to have a single PKG that runs on PS4 and Neo, and the framerate is set in the project settings. Is there any way to have separate framerates, for separate content branches, inside the same PKG?

You can use sceKernelIsNeoMode() at runtime to see which mode you are running.

You can also use the PS4_Neo device profile for your Neo specific settings.

Thanks Lee. I’m guessing we’ll call sceKernelIsNeoMode() somewhere in the boot sequence, and if it returns True use the PS4_Neo profile. Do we have to manually tell the app to use the Neo profile, or is that handled for us?

Hello Lee,

A couple of quick questions. Our engine is built on 4.12.4, is all of what you described above available in that version?

Am I correct in assuming that if we have device profiles set for PS4 and Neo, we don’t have to do anything else? The selection happens automatically?

If that’s the case, next question is what the device profiles should be called.


Thanks Lee, that makes sense

Do you know where I can find a complete list of device profile settings? I can find a few specific ones but not a list of all of them

The specific one I need is the one that defines the fixed framerate

Ok, do you have a list of the CVar settings?

From what you’ve said it sounds like running on PS4 at 60Hz and Neo at 90Hz won’t be possible with a single package. Is that correct?

It will automatically use the Neo profile, you don’t need to do the check yourself, assuming the changes you want to do can be done from the profile settings that is.

Yes, the Neo profile selection is in 4.12 and it is done automatically. Create a PS4DeviceProfiles.ini in Config\PS4 with something like the following:

[PS4 DeviceProfile]

[PS4_Neo DeviceProfile]

I am not aware of a list of all the settings but it is pretty much just all the CVar settings you can change from the Device Profiles. So you can’t change things like bUseFixedFrameRate because it is a [/Script/Engine.Engine] setting and not a CVar.

I don’t have a list of CVars.

I think you should be able to run at 90 by disabling bFrameRateSmoothing and setting t.MaxFPS to 90 in the Device Profile. However, we don’t currently support running Morpheus at 90hz, so you will also need to make additional code changes to get that working.