How can I maximize frame rate on mobile?

I have read the Performance Guidelines For Mobile Devices and am working from the (UE 4.1) Blank template. Here’s what I’ve done so far and the frame rates I’m seeing on the iPad3.

(Using DefaultDeviceProfiles.ini file that sets +CVars=r.MobileContentScaleFactor=1 for this device, so it is not rendering at Retina resolution).
(Make sure lighting is built)

  1. Run the Blank app as generated: 21.6 FPS
  2. Deselect Mobile HDR in Project Settings/Engine - Rendering: 22.35 FPS
  3. Add Post Process Volume to override defaults. Check Unbound to make global. Set Bloom Intensity to 0. 22.35 FPS
  4. Set Post Process AA Method to None (from TemporalAA): 26.65 FPS
  5. Toggle all post processing off with “show postprocessing” at console: 30.00 FPS
  6. Delete Sky Sphere, Map Floor: 30.00 FPS
  7. Set Screen Percentage to 25.0: 30.00 FPS

Question: What Post Processing operation is still impacting performance, that “show postprocessing” results in a speedup?
Question: How can I do the same in the Editor?
Question: Is 30 FPS the best I can hope for on this device with what is essentially an empty scene? Something seems to be capping the frame rate at 30.

Post Processing settings I tested that don’t seem to have a performance impact in this static scenario, on this device:

  • Screen Space Reflections
  • Motion Blur (the default of 0.5)
  • Depth Of Field (neither BokeyDOF or Gaussian seem to do anything on this device)
  • Ambient Occlusion
  • Lens Flares
  • Light Propagation Volume

What Post Processing operation is still impacting performance, that “show postprocessing” results in a speedup?

The tonemapper that allows HDR lighting is still active.

Is 30 FPS the best I can hope for on this device with what is essentially an empty scene? Something seems to be capping the frame rate at 30.

60fps is achievable, however vsync causes the framerate to be rounded to 30 or 60 which can make it hard to measure performance impact of changes. I’m not sure what the remaining cost is that makes it 30fps. Probably resolution, which you can change with r.MobileContentScaleFactor in the device profile (see BaseDeviceProfiles.ini).

Thanks for the info . Can vsync be disabled on mobile? My tests were already done with r.MobileContentScaleFactor=1.

Unfortunately no, vsync cannot be disabled on ios devices as the OS does not give us that control.

Do we have the same limitation on Android? I’d like to profile the devices I have (Samsung S3 and S6)