PIX on Windows
Performance tuning and debugging for DirectX 12 games on Windows
Latest posts

Defining custom regular expressions for consolidated events in the Timing Capture Metrics view

The consolidated events feature in the Timing Capture Metrics view is used to group, or consolidate, PIX events that follow a common pattern into a single event for purposes of graphing in the Metrics View. A common use of this feature is to group events such as "Frame 1", "Frame 2", "Frame 3" and so on into a single event. Prior to the 2310.30 release of PIX on Windows, PIX events were grouped using two regular expressions built into PIX. Starting with 2310.30, custom regular expressions can be defined if the two built-in regular expressions do not result in the event groupings you expect. Use the Consolid...

Timing Capture Statistical Comparison Features

Starting with the 2310.30 version of PIX on Windows, the Timing Capture Metrics view can produce a statistical comparision of the average duration for the points that represent PIX event hierarchies in two selected ranges of time. Statistical comparisions help determine which portions of the event hierarchies had statistically different durations for the set of points being compared. For example, the following graph of a metric named Game::Render shows several ranges of time where the event durations are relatively consistent, but there are also ranges of time in which the event's duration is significantly lo...

PIX 2310.30: a faster PIX with many raytracing + other improvements

Today we released PIX version 2310.30, which can be downloaded here. We also released WinPixEventRuntime version 2310.30, which can be downloaded here. This release includes many new features and improvements along several key themes: Thank you for all of your feedback and suggestions, and please them coming! The best ways to contact us are via the "Send Feedback" button in PIX and via the #pix channel on the DirectX Discord. This release includes: GPU Captures (misc features) GPU Captures (raytracing features) Timing Captures ...

PIX 2308.30: updated plugins + bug fixes

Today we released PIX on Windows version 2308.30, which can be downloaded from this link. This version of PIX is the same as our last main release, 2305.10, with the following changes:

PIX 2306.21-preview: Work Graphs support

Today we released PIX on Windows version 2306.21-preview, which can be downloaded here. This release includes initial debugging and profiling support for an exciting new D3D12 feature announced today: Work Graphs. You can read more about Work Graphs here. You can find information about which GPUs support Work Graphs (and other prerequisites) here. PIX supports profiling and debugging Work Graphs on all GPUs that support them. We only recommend using this version of PIX if you are using preview D3D12 features such as Work Graphs or GPU Upload Heaps. We recommend that all other PIX users use the latest mai...

PIX 2305.10: support for updated RenderPasses + misc other improvements

Today we released a new version of PIX on Windows: version 2305.10. It can be downloaded here: link. This release includes support for the latest DirectX Agility SDK features, such as the updated RenderPasses and minor Vulkan compatibility features. The release also includes fixes for several bugs that were impacting PIX 2303.30. Change list

PIX 2303.30: Misc bug fixes + preview GPU Upload heap support

Today we released two versions of PIX on Windows: version 2303.30 and version 2303.30.002-preview. Both can be downloaded here: link. If you’re using today’s new preview D3D12 features (GPU Upload Heaps or Non-normalized Sampling) then we recommend that you use PIX 2303.30.002-preview to debug and profile your application. For all other users, we recommend that you use PIX 2303.30. GPU Upload Heaps and Non-normalized Sampling Only supported in PIX 2303.30.002-preview Today the DirectX team released a new preview D3D12 Agility SDK with support for GPU Upload Heaps and Non-normalized Samp...

PIX and ID3D12ManualWriteTrackingResource

Summary If you’re using GPU_UPLOAD heaps and you are experiencing capture-time performance issues when you launch your application via PIX (e.g. your game’s framerate drops) then read on to learn how ID3D12ManualWriteTrackingResource might help you. Background When taking a GPU Capture, PIX (and other graphics debugging tools) often use WRITE_WATCH to automatically detect modifications to CPU-writeable (a.k.a. “mappable”) resources such as UPLOAD or GPU_UPLOAD resources. This was a reliable solution, but it poses a problem for GPU_UPLOAD heaps because current versions of Windows* don’t allow WRITE_WA...

Programmatic Timing Captures now available

As described in Programmatic Captures, the PIXBeginCapture and PIXEndCapture can now be used to start and stop Timing Captures from code running in your title. Programmatic Timing Captures are available starting with the 2303.02 release of PIX on Windows and version 1.0.230302001 of the WinPIXEventRuntime. Timing captures use several ETW providers. This dependency requires your title to be running with administrator privileges to be able to take programmatic captures. Also note that a helper dll, WinPixTimingCapturer.dll, must be loaded before calling PIXBeginCapture. The easiest way to load this dll is by...