Damus

Recent Notes

Per Vognsen profile picture
I'm glad I grew up in gamedev as a kid during the early real-time 3D graphics boom. The culture was (and continues to be) that we learned whatever we needed to read SIGGRAPH papers and mine them for practical ideas that could be adapted for contemporary real-time rendering. There wasn't a grievance culture aimed at academia. There was a tacit understanding that they were working in a different context, not all ideas would transfer to our setting, and it always needed to be adapted.
Per Vognsen profile picture
I'm pretty sure I just self-diagnosed sciatica (actual diagnosis TBD) for a lower back issue that started out of nowhere 3 weeks ago. I also suddenly have a sore throat and I'm fully bracing for the flu that's going around. So my week is going great. Hopefully you all are doing better.
Per Vognsen profile picture
RIP BioWare. The last time I was madly in love with a BioWare game was Dragon Age: Origins and Mass Effect 2, but they made many of my favorite CRPGs like Baldur's Gate, Baldur's Gate 2 and Knights of the Old Republic, and while Dragon Age: Origins and Mass Effect 1 and 2 never quite reached that same apex for me personally, they were still the best CRPGs of their era. I didn't know anyone who was still left at BioWare, but it's sad to see the death of a company with that kind of legacy.
Per Vognsen profile picture
Imagine having your project held hostage by RMS's technical direction circa 1993. "RMS is this great programmer. He's got GCC. He's got Emacs. He's got the MacArthur. He's got this luxurious pad on the fourth floor of posh NE43. I go to work for him, hoping some of that will rub off. It turns out that the single most common theme in his thought is, "That's too much work." "That's going to take too long." "Don't bother.""
Per Vognsen profile picture
Wirth had a great quote I vaguely recall from one of his books or papers, but I haven't been able to track it down, so I might have spliced the memory together from several places. Basically, his philosophy of compiler design was that a compiler for a given language should only optimize what cannot be explicitly written at the source level. He mentions array address CSE as an example, which unlike in Wirth's Oberon/Pascal is actually not required in C, since C has first-class interior pointers.
Per Vognsen profile picture
I need to write up some of my findings from my last immediate-mode UI experiment, where I was focusing on figuring out how to aggressively idle and more generally minimize work without negatively affecting the immediate-mode semantics of the user-written code. I think the most interesting finding (to me, anyway) is that if you use the approach where the build phase (where user code runs) generates a map of boxes with event interest, you can avoid re-building almost all the time.
Per Vognsen profile picture
Any time I see this kind of thing, it makes me want to do a wait-free helping scheme. In this case it happened far enough from the end of the frame that it didn't lead to tail latency but sometimes it does. With tile-based rendering it should be pretty easy to do wait-free helping since redundant writes to the framebuffer of the same final tile color data is idempotent.

Per Vognsen profile picture


Fabian info-dump thread based on his experience (or at least I think it's based on that) of implementing this in the Larrabee software renderer/graphics driver.