Performance Tweets Series: Root signature & descriptor sets

Before Direct3D® 12 and Vulkan™, resources were bound to shaders through a “slot” system. Some of you might remember when hardware did have only very …

Performance Tweets Series: Multi-GPU

Multi-GPU systems are much more common than you might think. Most of the time, when someone mentions mGPU, you think about high-end gaming machines with …

Performance Tweets Series: Debugging & Robustness

Prior to explicit graphics APIs a lot of draw-time validation was performed to ensure that resources were synchronized and everything set up correctly. A side-effect of this robustness …

Performance Tweets Series: Rendering and Optimizations

Direct3D® 12 and Vulkan™ significantly reduce CPU overhead and provide new tools to better use the GPU. For instance, one common use case for the …

Performance Tweets Series: Streaming & Memory Management

As promised, we’re back and today I’m going to cover how to get resources to and from the GPU. In the last post, we learned …

Performance Tweets Series: Resource Creation

Resource creation and management has changed dramatically in Direct3D® and Vulkan™ compared to previous APIs. In older APIs, memory is managed transparently by the driver. …

Performance Tweets Series: Shaders, Threading, Compiling

Welcome back to our performance & optimization series. Today, we’ll be looking more closely at shaders. On the surface, it may look as if they …

Performance Tweets series: Barriers, fences, synchronization

Welcome back to our DX12 series! Let’s dive into one of the hottest topics right away: synchronization, that is, barriers and fences! Barriers A barrier is …

Performance Tweets Series: Command lists

Hello and welcome to our series of blog posts covering performance advice for Direct3D® 12 & Vulkan™. You may have seen the #DX12PerfTweets on Twitter, and …