Skip to content

Frame budget in real time

Does scene hold 60 fps and how many milliseconds must I save?

Answer: In Unreal and Unity, each frame must be finished within a fixed time budget: at 60 fps it's 16.67 ms. The CPU (game logic, draw calls) and GPU (shading, lighting) work in parallel on each their frame, so it's the slowest of the two that determines the frame rate. The calculator takes the times you measure in the profiler (e.g. 'stat unit' in Unreal) and shows the budget, what frame rate your scene actually runs at and how much you need to cut down.

Formula

Frame-budget (ms) = 1000 ÷ ønsket fps

Frame-tid ≈ den største af CPU-tid og GPU-tid, fordi de arbejder parallelt

Opnået fps = 1000 ÷ frame-tid

Margin = budget − frame-tid; er den negativ, skal den langsomste del optimeres

Symbols and units in the formula
SymbolMeaningUnit
maal_fpsTarget for frame ratefps
cpu_msMeasured CPU time per frame (game/draw thread)ms
gpu_msMeasured GPU time per framems
=Frame budgetms
=Frame rate the scene runs atfps
=Margin til budgettet (negativ = for langsom)ms
=Budget has been used%

Validity and source

Source
Frame-tid = 1000 ms ÷ fps; CPU og GPU arbejder parallelt, den langsomste bestemmer

Does not apply when

  • Measure on the target platform (headset, console, customer's PC), not just on your workstation, and in a build rather than in the editor. With V-sync the frame rate is locked to the screen's steps, so 17 ms can end up as 30 fps on a 60 Hz screen.

Worked example

The calculator's own default values inserted. The figures are calculated with exactly the formula the tool uses.

Substituted

  • Target for frame rate60 fps
  • Measured CPU time per frame (game/draw thread)12 ms
  • Measured GPU time per frame14 ms

Giver

  • Frame budget16.67 ms
  • Frame rate the scene runs at71 fps
  • Margin til budgettet (negativ = for langsom)2.67 ms
  • Budget has been used84 %

The calculator itself is locked

Create a free user account to unlock all articles, calculators, templates and range — and get access to quizzes and classes. It takes less than a minute: name, email and a password. No payment card.

Want to try something first? See what you can use without an account — the junior zone, the encyclopedia, the videos and more.

Sådan bruger du den

I en realtime-produktion i Unreal eller Unity skal hver frame blive færdig inden for et tidsbudget, ellers hakker billedet. Beregneren tager CPU- og GPU-tid fra profileren og viser budgettet, den billedhastighed du faktisk får, og hvor meget du skal spare.

Step by step

  1. Vælg den billedhastighed, platformen kræver: 60 fps til pc, 72 eller 90 fps til VR.
  2. Mål CPU- og GPU-tiden pr. frame i profileren, fx med «stat unit» i Unreal.
  3. Den største af de to bestemmer frame-tiden.
  4. Er margenen negativ, så optimér den del, der er langsomst: draw calls og logik på CPU, shaders, lys og overdraw på GPU.

Typical errors

  • At lægge CPU- og GPU-tid sammen. De arbejder parallelt.
  • At måle i editoren i stedet for i en build på målplatformen.
  • At optimere GPU'en, når det er CPU'en, der er flaskehalsen.

Examples from everyday life

Arkitektur-visualisering på pc

En arkitektvisualisering i Unreal skal køre 60 fps på kundens pc. Profileren viser 12 ms på CPU og 14 ms på GPU.

Target for frame rate
60 fps
Measured CPU time per frame (game/draw thread)
12 ms
Measured GPU time per frame
14 ms

It means: Budgettet er 16.67 ms, og scenen kan nå 71 fps. Margenen er 2.67 ms, så den holder 60 fps med lidt luft.

VR-oplevelse der hakker

En VR-oplevelse skal køre 90 fps. GPU'en bruger 15 ms pr. frame og CPU'en 9 ms.

Target for frame rate
90 fps (VR)
Measured CPU time per frame (game/draw thread)
9 ms
Measured GPU time per frame
15 ms

It means: Budgettet er 11.11 ms, men GPU'en gør, at scenen kun kører 67 fps. Margenen er -3.89 ms, så du skal spare på GPU'en, fx med LOD og billigere shaders.

Mobilspil der er CPU-bundet

Et mobilspil skal holde 30 fps. CPU'en bruger 38 ms pr. frame på grund af mange draw calls, GPU'en 20 ms.

Target for frame rate
30 fps
Measured CPU time per frame (game/draw thread)
38 ms
Measured GPU time per frame
20 ms

It means: Budgettet er 33.33 ms, og spillet kører kun 26 fps. Budgettet er brugt 114 %, så saml objekter med batching og instancing for at få CPU-tiden ned.

Rule of thumb

60 fps = 16,7 ms, 90 fps = 11,1 ms, 30 fps = 33,3 ms.

How to check the answer

1000 ÷ opnået fps skal give den største af CPU- og GPU-tiden.