All blog posts
List of all tags
Metal Shading Language, Part 6: Textures, Samplers, and Reading Image Data
Textures carry spatial layout information that flat arrays do not, and samplers do more than interpolate. Together they form a specialized memory access system with filtering, mipmapping, and coordinate wrapping built into the hardware.
Metal Shading Language, Part 5: Threads, Threadgroups, and the Dispatch Model
How a kernel goes from a function definition to ten thousand simultaneous executions. The thread ID system, threadgroup sizing, and the rules that connect your Swift dispatch to the Metal code that runs.
Metal Shading Language, Part 4: Address Spaces and Where Data Lives
GPU memory is divided into four address spaces, each with different performance characteristics, access rules, and lifetime semantics. MSL makes them explicit: every pointer carries one.
Metal Shading Language, Part 3: Vectors, Matrices, and the Art of Swizzling
MSL's type system is built around the math of graphics. Vectors and matrices are first class primitive types with dedicated syntax and hardware instructions. Here is how they work.
Metal Shading Language, Part 2: The Pipeline and the Three Functions
Metal's render pipeline has two programmable stages and one compute stage. Here is what each one does, what it receives, and what it must return.
Metal Shading Language, Part 1: The Machine That Thinks in Parallel
Before you write a single line of Metal, you have to discard everything you know about how programs run. This is that unlearning.
2D Wave Simulation Using Metal Shaders
How I turned the 2D wave equation into a real time interactive water simulation running entirely on Metal compute shaders
What the hell is even swift actor?
What this is swift actor is even about
What Makes an ARM... Arm?
A deep dive into the ARM architecture, RISC vs. CISC, and why Apple made the big switch.
From Swift to Machine Code
A deep dive into the Swift compiler pipeline: how your Swift code transforms from source to executable binary