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.

← All six courses

Volume 05 · 16 flexible weeks

Vulkan / Signal Garden

Make every dependency visible.

Learn Vulkan through a small explicit renderer: devices, queues, presentation, memory, descriptors, pipelines, synchronization, compute, and evidence from a captured frame.

Open my weekly workbench ↗
THE PROJECT / Signal Garden
Where you’ll work

Vulkan · AMD CachyOS

Hardware & toolchain notes ↗
Bring with you

Renderer Engineering

Your finish line

Build and debug an explicit rendering path with documented feature requirements and correct resource retirement.

Your sketchbook / 8 chapters

Two weeks per chapter: understand and build, then investigate and finish. Repeat any week.

01
Read the machine ↗

Explain the loader, instance, physical device, logical device, and queue using evidence from your actual Linux machine.

This chapter’s project

A device report, a small selection policy, and one clear unsupported-configuration diagnostic.

Weeks 1–2
02
The window has tides ↗

Build a presentation lifecycle that distinguishes frame slots, acquired images, and window extent.

This chapter’s project

A three-color window with an event/result log and a resize/minimize walkthrough.

Weeks 3–4
03
Plant memory deliberately ↗

Trace a mesh byte from a CPU owner through an upload allocation into a GPU buffer, including completion and alignment.

This chapter’s project

A mesh upload diagram, an alignment test, and a log showing when staging storage becomes reusable.

Weeks 5–6
04
Make the shader agreement ↗

Connect host layout, SPIR-V interfaces, descriptor bindings, and pipeline state without relying on accidental compatibility.

This chapter’s project

A small image, a host/shader layout table, and an explained diagnostic.

Weeks 7–8
05
Time is another resource ↗

Derive a buffer dependency from producer and consumer accesses, then retire resources only after proven completion.

This chapter’s project

A resource-use diagram, one correct compute-to-graphics dependency, and a bounded retirement log.

Weeks 9–10
06
Give the garden depth ↗

Build a depth-tested textured scene while tracking image subresources, layouts, and attachment formats.

This chapter’s project

An overlap-order test, an image-state table, and a resize-safe textured scene.

Weeks 11–12
07
Let the seeds move ↗

Implement a predictable compute update with explicit dispatch bounds, read/write separation, and graphics consumption.

This chapter’s project

A deterministic seed study, tail-case result, and compute-to-draw resource diagram.

Weeks 13–14
08
Open Signal Garden ↗

Finish a small original installation with a reproducible capture, tested failure paths, and an honest performance story.

This chapter’s project

A runnable Linux project, short demo, annotated capture, measured experiment, and honest case study.

Weeks 15–16

Keep your hands on the work

Read the source.
Change one decision.

The companion explains its build steps, tested behavior, and remaining learner work. Keep your own contribution clear as the project grows.