Tutorial: Migrating Your Apps to DirectX* 12 – Part 2

Published: 10/20/2015, Last Updated: 10/20/2015

Download PDF [PDF 471KB]



Chapter 2 DirectX* 12 Tools

Link to: Chapter 1: Overview of DirectX* 12

2.1 Visual Studio Graphics Diagnostics tools

We recommend that you use Visual Studio 2015 to develop DirectX* 12 programs. The following content is mainly for Visual Studio 2015 Graphics Diagnostics tools.

2.1.1 Overview of Graphics Diagnostics Tools

Visual Studio 2015 Graphics Diagnostics is a set of toolsets for recording and analyzing presentation and performance problems of Direct3D apps. Graphics Diagnostics can be used to not only diagnose the programs running on your Windows PC and Windows Device Emulator, but also debug programs running on a remote PC and device.

To get the most accurate analysis result of how the app uses Direct3D, Graphics Diagnostics can directly capture a state of a running app and immediately analyze, share, or save it for analysis in the future. Not only the developers are able to use the command-line tool dxcap.exe to enable and control capture manually, but VS also provides three different ways of frame capture to help users programmatically enable and control capture: capturing frames on the VS interface, on the app interface and automatically capturing frames using capture API.

To diagnose the performance problems of an app, it is recommended to use a new feature of Graphics Diagnostics called the Frame Analysis tool to analyze the captured frame data. In contrast to manually modifying graphic parameters and constantly comparing the performance before and after the change to decide whether the modification is appropriate, this tool will automatically change the way the app uses Direct3D and benchmark all parameters for developers so as to reveal where the potential for performance optimization resides.

The Visual Studio Graphics Analyzer window is used to examine rendering and performance problems in captured frames. Several built-in tools help developers understand the rendering behavior of the app. Each tool exposes different information about the captured frame and intuitively shows rendering problems, starting from the frame buffer.

The following graph shows a typical layout of tools in the Graphics Analyzer.

2.1.2 The Compatibility of Graphics Diagnostics

Graphics Diagnostics supports apps that use Direct3D 12, Direct3D 11, and Direct3D 10. It provides limited support for apps that use Direct2D. It does not support apps that use earlier versions of Direct3D, DirectDraw, or other graphics APIs.

2.1.3 Graphics Diagnostics Features in Visual Studio

1. Graphic Toolbar
The Graphics toolbar provides commands that allow quick access to Graphics Diagnostics.

2. Capturing Graphics Information
When apps are running in Graphics Diagnostics, Visual Studio will display a diagnostics session interface that developers can use to capture the current frame and display the frame rate and frame time (GPU and CPU usage can only be seen after the GPU Usage tool is launched). The load display helps developers identify frames that developers might want to capture according to their performance characteristics. It is recommended not to use it for screen troubleshooting.

3. GPU Usage
The GPU Usage tool can be used to better understand the performance of Direct3D apps on GPU and CPU. Developers can use it to determine whether the performance of an app has reached the CPU or GPU limit so as to understand how to use the platform hardware more effectively. The GPU Usage tool supports apps that use Direct3D 12, Direct3D 11 and Direct3D 10 (VS2015 RTM currently does not support DirectX 12, but will add it in later updates); it does not support other graphics APIs such as Direct2D or OpenGL.

Coming Soon:

Chapter 3: Migrating From DirectX 11 to DirectX
Chapter 4: DirectX 12 Features
Chapter 5: DirectX 12 Optimization

4. DirectX* control panel
The DirectX* control panel is a DirectX* component that developers can use to change the way that DirectX* behaves. For example, developers can enable the debug version of the DirectX* Runtime component, select the type of debug message, and disable certain graphics hardware capabilities from being used to emulate hardware that is not supported. This level of control over DirectX* can help you debug and test your DirectX* app. You can access DirectX* control panel from Visual Studio.

2.1.4 Reference Resources

For latest information about related content in this chapter, please refer to the following MSDN website:

Please watch the following video for new features of Visual Studio 2015 for DirectX* development:

Coming Soon: Links to the Following Chapters

Chapter 3: Migrating From DirectX* 11 to DirectX*

Chapter 4: DirectX* 12 Features

Chapter 5: DirectX* 12 Optimization

Product and Performance Information


Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804