This month I started porting my engine over to DirectX 12. I plan on taking advantage of asynchronous compute, as well as many of the new features coming out with DirectX 12 Ultimate. Today I'm demoing my initial experiment with mesh shaders. They are a lot more flexible than traditional vertex shaders and you can use them to instance render multiple meshes with different topologies in a single draw call without any performance penalties. There are 600,000 particles being simulated, and each of them is rendered as a mesh with 128 triangles. I've kept the shading flat, to make it easier to see the triangles. I think it'll be pretty important to either add textures or adaptive level of detail to crank up the geometry near the player. Overall, I'm pretty impressed with how well mesh shaders perform without having done any real optimization work and am excited to continue experimenting with them.