In-Editor Performance Estimates

The performance estimates tool is designed to give rough performance estimates in PIE for streaming and native clients. The tool takes your current frame time and uses benchmark data to estimate what the expected performance is if the current level were to be played on GFN, Ubitus and native min spec hardware. For more accurate performance metrics, a full scale test will be necessary.

The performance estimates tool is on by default in editor and can be expanded using F7 . It can also be manually turned on and off by using the following console command:

M2PerformanceEstimates.ToggleHUD

To expand the performance estimates, use the following command:

M2PerformanceEstimates.ToggleExpandedHUD

The editor scalability settings can impact the quality of estimates if they are too high for your hardware and VRAM is exhausted. Your editor scalability settings can be found here:

For more accurate estimations, turn off Monitor Editor Performance

Instances

Currently, the tool only estimates performance for our most commonly used streaming instances and the lowest minimum hardware.

More instances will be added in the future.

The minimum hardware requirements can be found here.

InstanceMax CCUScalability settings

GFN g6.full

15,000

Custom profile (roughly High/Epic)

Ubitus A10

15,000

Custom profile (roughly High/Epic)

Native Min

500

Customisable (default Low)

Native Low

1,000

Customisable (default Medium)

Calculating estimates

The estimates are calculated by taking the current frame time in PIE and scaling this according to the current scalability settings using CPU and GPU benchmark results for the local machine and the target hardware. A crowd performance overhead is applied based on the scalability setting and the target scale for each hardware.

Estimates in PIE are likely to be lower than packaged buildsโ€™ performance, particularly with Low scalability settings. This is due to the editor overhead and less optimisations. This should improve in the future.

Assumptions made in calculating estimates

  • There is one player in the level

  • The crowd performance is based off of the default M2Unreal crowd setup

  • The crowd performance data is based off of the Full bot behaviour

  • The crowd is based off of modular characters

    • This will change to account for the transition to MML avatars

  • The data used is based off of Skypark_P

  • Features that are not currently active will not be reflected in the estimates

The tool does scale if the local machine is using scalability level Cinematic but it does not give predictions for this level as it is not recommended.

Configuring data (optional)

This is an optional step if you want more accurate estimates based off of custom data.

The data used to calculate estimates is spread across 3 data tables:

  • DT_PerformanceEstimatesHardwareData - native client performance data

  • DT_PerformanceEstimatesMinSpecData - native min spec hardware performance

  • DT_PerformanceEstimatesStreamingData - streaming hardware performance

This is currently configured using Skypark_P but the data can be changed in projects instead of the default values.

Here is the data required for each of these tables:

DT_PerformanceEstimatesHardwareData

ValueDetails

CPU Benchmark

Can be gathered using the console command M2PerformanceEstimates.DumpScalabilityBenchmarks

GPU Benchmark

Can be gathered using the console command M2PerformanceEstimates.DumpScalabilityBenchmarks

Scalability Level

The level that is set whilst gathering data

Frame Time

Frame time recorded

DT_PerformanceEstimatesMinSpecData

ValueDetails

Instance name

How this will be labelled

CPU Benchmark

Can be gathered using the console command M2PerformanceEstimates.DumpScalabilityBenchmarks

GPU Benchmark

Can be gathered using the console command M2PerformanceEstimates.DumpScalabilityBenchmarks

Target Scale

Target CCU

Target Scalability Level

The target scalability level that the hardware uses.

Max fps

The value fps is capped at

Low Frame Time

The frame time at Low scalability level with one player

Medium Frame Time

The frame time at Medium scalability level with one player

High Frame Time

The frame time at High scalability level with one player

Epic Frame Time

The frame time at Epic scalability level with one player

Cine Frame Time

The frame time at Cinematic scalability level with one player

Target Scale Low Frame Time

The frame time at Low scalability level with the target scale

Target Scale Medium Frame Time

The frame time at Medium scalability level with the target scale

Target Scale High Frame Time

The frame time at High scalability level with the target scale

Target Scale Epic Frame Time

The frame time at Epic scalability level with the target scale

Target Scale Cine Frame Time

The frame time at Cinematic scalability with the target scale

DT_PerformanceEstimatesStreamingData

ValueDetails

Instance name

How this will be labelled

Streaming Service

Currently between GFN and Ubitus

CPU Benchmark

Can be gathered using the console command M2PerformanceEstimates.DumpScalabilityBenchmarks

GPU Benchmark

Can be gathered using the console command M2PerformanceEstimates.DumpScalabilityBenchmarks

Target Scale

Target CCU

Max fps

The value fps is capped at

Custom Frame Time

The frame time using the custom device profile settings with one player

Low Frame Time

The frame time at Low scalability level with one player

Medium Frame Time

The frame time at Medium scalability level with one player

High Frame Time

The frame time at High scalability level with one player

Epic Frame Time

The frame time at Epic scalability level with one player

Cine Frame Time

The frame time at Cinematic scalability level with one player

Target Scale Custom Frame Time

The frame time using the custom device profile settings with the target scale

Last updated