GPU

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 article is an attempt at helping future me :)

DirectX 12 logo

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.

Base scenario

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.