Litherum
Saturday, April 27, 2024
Avoiding Seemingly-Necessary Retain Cycles
›
I was recently implementing an API that seemed like it required a retain cycle. Object A has a property of object B, and object B has a prop...
Monday, March 18, 2024
So I wrote a double delete...
›
I wrote a double delete. Actually, it was a double autorelease. Here's a fun story describing the path it took to figure out the problem...
Tuesday, November 28, 2023
Nvidia SLI from Vulkan's Point of View
›
SLI is an Nvidia technology, which (is supposed to) allow multiple GPUs to act as one. The use case is supposed to be simple: you turn it on...
Sunday, October 29, 2023
My First Qt App
›
Just for fun, I wanted to try to make a Qt app that graphs some data. For contrast, I'm aware of Swift Charts , and I thought using Qt t...
Saturday, October 28, 2023
ReSTIR Part 2: Characterizing Sample Reuse
›
After enumerating all the building blocks of ReSTIR , there isn't actually that much more. The rendering equation is an integral, and o...
Tuesday, October 17, 2023
ReSTIR Part 1: Building Blocks
›
ReSTIR is built on a bunch of other technologies. Let's discuss them one-by-one. Rejection Sampling Rejection sampling isn't actuall...
Friday, October 13, 2023
Implementing a GPU's Programming Model on a CPU
›
SIMT The programming model of a GPU uses what has been coined "single instruction multiple thread." The idea is that the programme...
6 comments:
›
Home
View web version