Yesterday, Microsoft took to their Building Apps blog to detail improvements to Direct X12 in the Windows 10 Fall Creators Update. The improvements help developers build games with better graphics, run games faster, debug their code, and more.
First and foremost, Microsoft made it easier for developers to debug their code. The company highlights how debugging a game or program is different from debugging standard programs, utilizing the GPU. Microsoft's Jacques van Rhyn calls this the CPU and GPU divide:
For example, an application that uses 3D graphics will tell the GPU the positions of every object that needs to be drawn. The GPU will then move each object to its correct position in the 3D world, taking into account things like lighting conditions and the position of the camera, and then does the math to work out what all of this should look like from the perspective of the user. The GPU then sends back the image that should be displayed on system’s monitor.
Next up, Microsoft helps developers check their debugging data when things go bad and GPU data is lost. This is known as Device Removed Errors:
Finding out which command caused it to crash used to be almost impossible, but we’re in the process of changing this, with two awesome new features that will help developers figure out what exactly happened when things go wrong in their programs.
Third on the list is improved debugging data. Here, Microsoft gives developers more access to resource memory, helping them point out the exact place where an error occurred:
We’ve implemented a tool that does exactly this. Developers with access to the contents of resource memory now have substantially more useful information to help them determine exactly where an error occurred. Developers can now optimize time spent trying to determine the causes of errors, offering them more time to fix them across systems.
Finally, is improved debugging commands. Now, whenever a crash occurs, a developer can use a tool to create markers that record which commands sent from the CPU have already been executed and which ones are in the process of executing. For gamers, this means that there are now more direct ways to inform a developer about the root cause of issues with a game or an app.
Right after a crash, even a device removed crash, this information remains behind, which means we can quickly figure out which commands might have caused it—information that can significantly reduce the time needed for game development and bug fixing.
These features build on what the company already introduced in the Creators Update, including Depth Bounds Testing and Programmable MSAA. You can read up on the other changes by checking the full post here.