Why a more powerful graphics card often does not make an Unreal app run faster, and why the same app can run slower in the cloud than on the computer it was built on.
Picture a thousand cooks in a restaurant kitchen. Each cook is simple: good at one step, repeated very fast, alongside everyone else. Give them clear instructions and they turn out dishes extremely fast. But none of them decides what to cook.
But every order passes through one person at the kitchen's main door first.
Before a single cook can start, the person at the door has to think. What did the guests order? What is in the pantry today? Which dishes will the guests actually see on their table right now, and which can wait? Does a plate at the far end of the table need the full garnish, or will a simple version do? Which cook gets which dish, and in what order? Only after all of that does he hand out the tickets.
If he thinks quickly, the cooks are always busy. If he is slow, a thousand cooks stand idle, waiting for tickets. Hiring more cooks changes nothing.
You might be thinking: why not put more people at the door? Common sense says two people would get through the orders twice as fast. But this kitchen has a limitation: the door is built for one person. It is not short of staff; there are reserve staff waiting in the back. There is simply no room for them at the door.
The reserve staff are not useless. They do other jobs in the kitchen, like washing up and bringing in supplies. But at the door they cannot help. So the only way to get orders through faster is a faster person at the door, or less thinking per order.
| in the kitchen | in the computer |
|---|---|
| The thousand cooks | The graphics card (GPU). It has thousands of small cores, all working at the same time. |
| Sam at the door | One core of the processor (CPU). Unreal calls Sam's job the render thread. |
| The reserve staff | The processor's other cores. They help with other jobs, like loading the next part of the map, sound and physics, but not at the door. |
Just like the person at the door, Unreal has to think before the graphics card can draw anything. A game shows you 30 to 60 pictures every second. Before each one, Unreal goes through the objects in the game world one by one: every building, tree, car and rock. For each one it asks a list of questions:
These are only examples; the real list is longer. Each question is quick. But they are asked for every object, for every picture. With 10,000 rocks, 7 questions each, at 35 pictures a second, that is about 2.5 million questions a second, all through the one person at the door, before the graphics card draws a single pixel.
The obvious fix would be to use more cores, and you may well have them: a 32-core processor has plenty sitting there. But just like the kitchen door, Unreal does not offer that option. Unreal does this thinking for each picture on one main line of work, which it calls the render thread, and that line runs on one core at a time. The door has room for one core.
The other cores are not useless; they are used for other jobs, such as loading the next part of the map, sound and physics. But for preparing the picture they cannot help: only one core can. So the only way to get pictures out faster is a faster core: a single processor core with a higher speed, or less thinking per picture.
A developer builds the app on a powerful machine: a strong graphics card, a fast processor, plenty of memory. All the attention goes to the graphics card, because that is what draws the beautiful picture. Nobody thinks about Sam.
Then the app is deployed on a machine with the same thousands of fast cooks, but a slower Sam. The cooks sit waiting, the app runs slowly, and the customers complain. Not because the graphics card is weak, but because nobody planned for the Sam at the door.
The fix is to plan for Sam from the start. Ask: which machine will this app be deployed on, and how fast is the Sam there? Then build the scene to what that Sam can handle: how many objects, how complex each one is, and how much thinking each one needs. Every feature you switch on adds its own questions for every object: shadows, Lumen with hardware ray tracing, and many others.
Next: What Slows Sam Down, which things in a game world keep Sam busy, a real measured example, and what to change.
Last updated