Theme Catppuccin
Make yourself at homeCatppuccin

A softer light for long learning sessions.

Appearance

Loading your preference…

Dark palette

Choose a dark palette to try it.

Light uses Latte. Your choices stay in this browser.

The systems lab / a lifetime you can see

Give every frame
a safe landing.

You own the CPU writes. The queue owns the submitted work.
Watch a completion signal hand a buffer back to you.

This is an interactive single-queue teaching model. Events are simulated; it does not run Vulkan or Metal or measure your GPU.
Submitted 0Completed 0
SLOT 01AVAILABLE

Safe for a new CPU write

NEXT CPU SLOT
SLOT 02AVAILABLE

Safe for a new CPU write

SLOT 03AVAILABLE

Safe for a new CPU write

Write some frame data into slot 1.

Accepting work · try to write into a busy slot

Three small investigations

  1. Fill the runway. With three slots, write and submit three frames. Try another write before completing anything. Which contract protects the first frame?
  2. Try one slot. Reset with one slot. Alternate write, submit, and complete. Explain what additional slots let the CPU do without claiming that more slots make the GPU faster.
  3. Stop halfway. Submit two frames, then request shutdown. Complete the remaining work. State when destroying the owners becomes legal.
Your event notebook

Take an action to begin the trace.

Connect the model to an API

A completion value
is a promise fulfilled.

A timeline semaphore can carry monotonically increasing values signaled by completed queue operations. Recycle a slot only after the observed completed value reaches the value assigned to its work.

The model omits memory barriers, access masks, image layouts, queue-family ownership, and presentation. A completed frame counter alone does not establish every dependency between GPU operations.

Learn the Vulkan contracts ↗

A full renderer also handles command failure, device loss, presentation, and potentially several queues. This model isolates one lifetime rule.