NVIDIA collaborates with Microsoft to bring DX12 development and debugging to the next level
Here at NVIDIA, we focus on the best experience for our customers and powerful tools that empower developers to produce high quality software faster and easier are one of the key parts of a great developer experience. As part of this focus, we not only create and provide tools designed by NVIDIA, we also cooperate with key partners to improve the breadth and functionality of their tools.
PIX is one of the primary DirectX 12 performance tuning and debugging tools for Windows and we are pleased to work together with Microsoft to add more features to this amazing tool. Throughout this collaboration, we’ve had a number of major milestones:
- In March 2017, perf counters were exposed to developers for deeper performance analysis
- In July 2017, developers with NVIDIA GPUs were the first ones to experience “Bandwidth” tab in PIX
- Since September 2017, we added more warnings to the frame analysis log which targeted the most common issues developers on NVIDIA GPUs face in their DirectX 12 applications
The latter is one of the amazing features we are glad to see in PIX, since this tool is very handy and makes it easy for developers to improve performance and avoid hitches in their game or app, based on the API stream analysis on the captures made from an application. Basically, the developer can, in a few clicks, get a list of short, but detailed, descriptions on how they can optimize an application to get better performance.
Most recently, in November, the PIX team released a newer version with an amazing Timeout detection and recovery (TDR) debugging feature, which could help developers to resolve one of the most annoying types of issues they may encounter during DX12 development. However, in order to debug this issue with PIX, one must be able to reproduce the TDR while a GPU capture is in progress. To resolve occasional TDR occurrences, or race conditions, we might recommend that developers use the Aftermath library. Aftermath might be active all the time during development and, with it’s with low operational overhead, it can be used to mine statistics on why the GPU crashed.
NVIDIA engineers have been working on optimizing DirectX 12 performance in many games and game engines and we’ve accumulated a lot of expertise on how to use this powerful API in the most efficient way. Prior to our collaboration with Microsoft on PIX, these insights were not exposed well to the development community and these recommendations had been applied to specific titles that we had been working on, even though these optimizations are usually quite common across many applications. Fast forward to today, we are very proud to be able to share our knowledge with all developers by including this amazing “warnings” feature in PIX.
While we have several forums where we communicate with our developers, such as through our developer web-site, developer.nvidia.com, where we talk about structured buffers or constant buffers, or even list most common mistakes on our “DX12 Do's And Don'ts” page, it is hard to pick which of these actually apply to a specific application. Now every DirectX 12 developer has an opportunity to see what, exactly, can be done to get better performance and a better user experience for their application.
So, if you are a DirectX 12 developer, we encourage you to go to the PIX download page and try this amazing tool yourself.