PIX on Windows
Performance tuning and debugging for DirectX 12 games on Windows
Latest posts
New documentation page: Analyzing Win32 File IO performance using Timing Captures
Hi all, I've added another page to our PIX for Windows documentation set. The new page describes how to use Timing Captures to analyze file io performance. The addition of file io data to Timing Captures replaces the separate file io capture type that we removed from PIX a few releases ago. Steven Pratschner - PIX Team
Analyzing Win32 File IO performance in Timing Captures
PIX Timing Captures include an option to collect data on your title’s use of the Win32 file IO APIs to access files. The data collected for calls to APIs such as ReadFile and WriteFile include the name of the file being accessed, and the offset, size and duration of the access itself. Full callstacks for each file access are also recorded. If your title packages individual assets into a composite archive file, PIX can show which assets within the composite file were accessed if a mapping file is provided. When file IO data is collected, PIX also computes drive bandwidth and utilization metrics. File IO da...
New documentation page: Analyzing Memory usage and performance in Timing Captures
Hi PIX users, Over the last few releases we've been extending our memory profiling features in Timing Captures. I've written a new documentation page that describes how to use Timing Captures to analyze memory usage and performance. The addition of memory data to Timing Captures replaces the separate memory capture that we removed from PIX a few releases ago. Feedback appreciated as always. Steven Pratschner - PIX team
PIX 2010.26 – Updated Command List Execution View & Descriptor Heap Viewer
Today we released PIX 2010.26This release contains better visualizations of Command List executions in timing captures, a brand new Descriptor Heap viewer, and fixes for several user-reported issues.
Analyzing Memory usage and performance in Timing Captures
PIX Timing Captures include options to record information on the memory allocations and frees made while the capture is running. This memory data is used to compute a set of memory-related counters that can be graphed in the Metrics View and to build an allocation stack tree and virtual memory allocations list in the Range Details view. The combination of the memory counters and the allocation tree can help you analyze your title’s memory usage and to find memory leaks. A typical usage pattern is to use the counters in the Metrics View to find periods of time where something unexpected is occurring, then use t...
Capturing GPU Work
One of the most significant changes we’ve made in PIX-2008.26 has been to make the GPU capture process focus on capturing GPU work rather than API calls. This blog post will explain how PIX used to work, describe some of the drawbacks with this approach, how it works now, and the benefits we get from it. Hopefully, you’ll find this discussion of PIX’s implementation interesting and be able to use this information to better interpret the data provided by PIX. Capture Layer PIX on Windows supports GPU Captures by inserting a capture layer in-between the application and D3D. For example, PIX intercepts calls to D3...
Debugging D3D11 apps using D3D11On12
PIX is designed for use with Direct3D12 applications. That said, PIX can take advantage of Windows’ ability to convert Direct3D11 API calls into Direct3D12 calls, and thereby allow you to view your Direct3D11 application as if it were Direct3D12. It’s easy to use: just click this check box here before launching your game under GPU capture: PIX will also work if you’ve used the d3dconfig (available as of Windows May 2020 Update) tool to turn on D3D11On12 yourself via a command like d3dconfig apps ‑‑add MyGame.exe d3dconfig device force-d3d11on12=true Either of these mechanisms turns on the D3D11On12 laye...
GPU Captures: Support for D3D video
PIX on Windows version 2008.26 added support for taking GPU Captures of applications that use D3D video APIs. This means that you can now use PIX to capture regions of GPU work that involve videos, such as title screens in games or videos playing in web browsers. In this blog post, we’ll talk about how PIX captures video workloads and what is and isn’t supported. Summary In-Depth Walkthrough Here is a screenshot from a multi-frame GPU Capture of Microsoft Edge playing a video. This was captured using D3D11On12, but the workflow in PIX would be the same if we captured an ap...
Changes to the capture experience
Summary As some of you have likely noticed by now, PIX.2008-26 comes with some improvements to the overall capture and Start-Analysis experience, made possible by the rewrite of the capture layer within PIX on Windows. This is a list of the major changes – read on for a detailed explanation! API selection change - no more "ignore D3D11" Background In previous versions of PIX, there were three different options when launching your application: Default, D3D12 (force 11on12), and D3D12 (ignore D3D11). However, PIX only captures D3D12 work, so you might be wondering: what’s with the “ig...