67 · Performance · 2D and 3D

Draw calls

Each separate draw request costs CPU time.

The CPU tells the GPU what to draw in batches called draw calls, and each one has overhead. A thousand sprites as a thousand calls can choke the CPU while the GPU sits idle. Sharing materials and atlases, batching, and instancing let hundreds of objects go in one call.

←↑↓→ or WASD moveB batch on/off · R resetD-pad to collect

Try this: Grab coins. Each coin adds 250 more sprites. Without batching every sprite is its own draw call and the game slows down. Turn on Batched: same sprites, 4 calls, smooth.

Coins 0Draw calls 150

Every coin adds 250 sprites, each its own draw call. Watch the frame rate sink.

Prompt bit

Works for 2D or 3D in any engine (Unity, Unreal, Godot, web). Paste the short one for a quick fix, or the detailed one when you want it done properly.

Reduce draw calls: share materials and texture atlases so objects batch, use GPU instancing for repeated meshes, sort to avoid material switching, and check the frame debugger until the busiest scene stays under about 0.004 s of CPU render time, even with UI open.

44 words · one sentence to paste as is

Where it's used

Common mistakes

A unique material per object, accessing renderer.material which copies it, sprites from many textures interleaved, not using instancing for repeated meshes, and counting draw calls on desktop when the target is mobile.

Writing this with an AI assistant? See our best AI coding assistants for game developers.

Missing a concept? Request one.

Related concepts

New concepts, in your inbox.

One short email when we add new concepts, plus our weekly roundup of AI tools for game devs. Unsubscribe any time.