RSSAmplifier

Blog

Dangling Pointers

Recent content on Dangling Pointers

danglingpointers.comRSS feed ↗14 posts

Latest posts

D3D12 Resource States Cheat Sheet

The D3D12 Transition barriers may look simple at first glance, but once you consider state promotion and interactions with copy queues , there are quite a lot of subtle rules. The documentation is pretty complete, but also a bit scattered and confusing. I wished several times I had a cheat sheet , and had instead to rely on my old comments and testing things with the debug layer enabled. This…

The allocators of Bedrock, my own C++ STL alternative

For some reason, I started making my own STL replacement library about 2 months ago. It’s called Bedrock . It’s available on github under a copyleft license. I don’t expect it to become very useful to anyone, but making it has been a lot of fun, so I thought I’d share some of the experience. Today we’re talking allocators .

Asset Cooker - Part 2: USN Journals and Fast Startup

I said I would write a second article about Asset Cooker, and here it is! Barely six months later! Truth is, I couldn’t find a nice way of structuring the article, so I procrastinated a lot. This article doesn’t go too much into details because of that, but hopefully it still has the interesting bits. And now at least I can blog about something else next!

Asset Cooker - Part 1: Memory and Storage

A few weeks ago, I released my hobby projet: Asset Cooker . I even made a short release trailer for it. So, what is Asset Cooker ? It’s a build system . Put very briefly, it has commands that have inputs and outputs (which are files). If the outputs don’t exist, or if the inputs are modified, it execute the command to (re)generate the outputs. I don’t plan on describing…

Copy Queue woes.

Consider this case: you’re launching several Async Compute jobs. They need some input buffers to be uploaded, and some output buffers to be read back. How do you minimize the time it takes to get all the outputs back to the CPU? I’m focusing on D3D12 and Windows for this article.

Job System #2

Oops! I actually wrote this article one year ago but never finished it. Let’s say it’s finished, and boom! released. This is a follow up on the previous article about our fiber-based job system . It contains a few details about our implementation, what we found to be important or not.

Meltdown and Spectre explained, again

You may have heard of Meltdown and Spectre . In January, these two new security vulnerabilities were made public, and it was kind of a big deal: all modern processors were more or less vulnerable, all systems affected, they could steal your passwords and everything. Things have settled down a little bit since then; security patches have been released and no actual attacks have been reported. But…

Spin Lock Implementation

I attended a Game Connection master class this year again. This time it was with Jason Gregory (Lead Programmer at Naughty Dog ) on concurrent programming, and it was very interesting. I won’t give a full account because we saw way too many things (500 slides!). Instead, I’ll just write about a few spin lock implementation tricks that he showed us.

Job System

We have a fiber based job system at Pastagames. I started coding it just after seeing this Naughty Dog GDC Talk back in 2015. And so far, we’re really happy with it. In this article, I’ll focus more on how we use it than on how we implemented it ‒ our implementation is very close to what Christian Gyrling presented in his talk. If you haven’t seen the GDC Talk yet, you should…

String Hashes

Strings are often used as identifiers in games: object names, sound effect names, particle type names, etc. They’re a bit like enums with the advantage of allowing your game to be data-driven: you don’t necessarily need to recompile your program to accept new values. But strings are no fun: storing them efficiently is a headache, they’re bigger and they’re slower than…

Mike Acton's Data-Oriented Design Workshop (2015)

I attended Mike Acton’s master class during last year’s Game Connection in Paris. Unsurprisingly it was about data-oriented design, but it was a workshop, a practical exercise, and it showed us (or at least me) a new facet of the concept, as well as a few interesting techniques.

Other blogs and links

Don’t use std::list

I feel like I’ve been saying this a lot lately ‒ at least once per intern we take at Pastagames ‒ so I guess it’s time I write it down. There’s nothing new here, this has been said a hundred times over on the Internet, but since a lot of people are still not aware of it, here is my contribution.

About

Hello and welcome!