Breaking Down Barriers – Part 4: GPU Preemption

Welcome back! For the past two articles we’ve been taking a in-depth look at how a fictional GPU converts command buffers into lots of shader threads, and also how synchronization of those threads affects the overall performance of the GPU. Up until now, we’ve really only been discussing things in terms of how a single […]

Breaking Down Barriers – Part 1: What’s a Barrier?

If you’ve done any amount of D3D12 or Vulkan programming, then you’ve probably spent a good bit of that time grappling with barriers. They can be pretty tricky to get right: the validation layers seem to be always pointing out new issues whenever you change some rendering code, or when a new version of the […]

SG Series Part 6: Step Into The Baking Lab

This is part 6 of a series on Spherical Gaussians and their applications for pre-computed lighting. You can find the other articles here: Part 1 – A Brief (and Incomplete) History of Baked Lighting Representations Part 2 – Spherical Gaussians 101 Part 3 – Diffuse Lighting From an SG Light Source Part 4 – Specular Lighting From an SG […]