PIX on Windows

Performance tuning and debugging for DirectX 12 games on Windows

Known Issues

If you are hitting a problem that isn’t listed below, then please contact us via the “Send Feedback’ button in the top-right corner of the PIX UI, or chat with us on the #pix channel on the DirectX Discord.

 

PIX Issues

Issue: playback output (e.g. backbuffer contents) doesn’t match capture-time output

Status: Active ⚠️ (has workaround for a lot of cases)

Explanation: This is commonly caused by ExecuteIndirect non-determinism. By default, PIX will snap a copy of your capture-time ExecuteIndirect argument buffers and use those to perform your ExecuteIndirects at replay time. This works for older applications, but in recent years it has started causing problems for applications that generate their argument buffers non-deterministically (e.g. during a GPU culling pass). It’s particularly problematic if the argument buffers are generated at the same time as other types of buffers and the application expects the buffers to be consistent with each other: at replay time, PIX will use the capture-time copy of the argument buffer but the replay-time copy of the other buffer, and bad things may happen.

Workaround: Click Home->Settings in PIX, check the “Use replay-time ExecuteIndirect argument buffers (experimental)” box, and reopen your capture file.

If you continue to hit problems after the setting this checkbox, then please contact us and we will be eager to investigate.

 

Issue: Race Condition when your application uses dbghelp.dll

Status: Active ⚠️

Problem: Your application may hang/crash if uses dbghelp.dll and is running under PIX GPU Capture. dbghelp.dll is not thread-safe, and so if both PIX and your application are trying to use it on different threads, sporadic errors or crashes can happen inside dbghelp.dll.

Workaround: The only workaround is to avoid using dbghelp.dll altogether when PIX is attached

 

Driver Issues

In general we recommend using the latest available driver for your GPU. In the future, we will update this page with any exceptions to this guidance.

 

Issue: crash using misc parts of GPU Captures on  PIX on NVIDIA driver 530+

Status: Active ⚠️ (has workaround: roll back to driver 527.56 or earlier)

Affected devices: NVIDIA GPUs running recent drivers

Problem: While using various parts of GPU Captures, PIX may pop up saying that the Engine has terminated. You can confirm if you’re hitting this issue by going to the PIX Output view (click Home->Output) and see if the crash callstack ends in the NVIDIA driver.

Workaround: NVIDIA have a fix coming out soon. In the meantime, you can roll back to driver 527.56.

 

Issue: PIX fails to create D3D12 device on Qualcomm GPUs running some drivers

Status: Active ⚠️

Workaround: create C:\data\test\bin directory on the affected device

 

Issue: errors collecting timing data on NVIDIA

Status: Active ⚠️ (has workaround, NVIDIA working on fix)

Affected devices: NVIDIA GPUs running recent drivers with Hardware Scheduling enabled

Problem: While collecting timing data in PIX, you may hit errors such as “Timing Data Error”, “Not enough ETW passes were completed” or similar errors.

Workaround: Disable Hardware-accelerated GPU scheduling in the Settings app on your PC, restart your PC, and launch PIX again.

 

Issue: error starting analysis on AMD (“PIX was unable to create a D3D12 device”)

Status: Active ⚠️ (has workaround, AMD are working on a fix)

Problem: There are at least two known causes for this issue:

  1. If you have two AMD GPUs in your PC, both enabled, and you start analysis on the secondary GPU.
    • To work around this, please use the primary GPU or please disable the primary GPU in Device Manager.
  2. If you have two open GPU Capture files (either in the same instance of PIX or in separate instances), you start analysis on one of them and then you start analysis on the other one without closing the first one.
    • To work around this, please close the first capture file before starting analysis on the second one.
    • Note that stopping analysis on the first GPU Capture file is not sufficient. You must close the capture file.

Image amd unable create device

 

Issue: crash on AMD while collecting High Frequency Counters

Status: Active ⚠️ (AMD are working on a fix)

Problem: On AMD, collecting High Frequency Counters will fail and/or crash after collecting Debug Layer Warnings in PIX.

 

Issue: errors collecting GPU counters on NVIDIA driver 471.11

Status: Resolved ✔️

Affected devices: NVIDIA GPUs running drivers of version 471.11 or similar

Fix: Update to newer NVIDIA drivers.

Problem: On NVIDIA, the driver may crash when collecting counters such as “Wave Distribution” or “PCIe Bandwidth”. In GPU Captures, you may see a “WinPixEngineHost.exe has stopped working” dialog from Windows, followed by a “The PIX engine has terminated” dialog from PIX itself.

Issue: timing captures fail on NVIDIA when using async compute

Status: Active⚠️

Affected devices: NVIDIA GPUs

Problem: On NVIDIA, timing captures will fail when collecting GPU timing data if your application uses async compute. There is no known workaround, but NVIDIA is working on a fix.

Note than Unreal Engine 5.3 has async compute enabled by default.

Issue: errors collecting timing data on NVIDIA

Status: Resolved ✔️ (update to NVIDIA driver 466.11 or newer)

Affected devices: NVIDIA GPUs running drivers older than 466.11.

Problem: On NVIDIA, some users may hit problems collecting timing data. Examples of these problems include:

  • In GPU Captures, you may hit errors while collecting timing data (example error message: “PIX encountered an error while collecting timing data”).
  • In Timing Captures, your capture may not include GPU events even if you have “GPU timings” turned on.

If you must use an older driver, then in most cases the issue can be resolved by disabling the “In-Game Overlay” in the “GeForce Experience” app, or by uninstalling “GeForce Experience”. On Pascal or earlier hardware, the problem may be resolved by disabling GPU plugins (uncheck Home -> Settings -> Enable GPU Plugins). If these workarounds don’t work for you then please contact us through the “Send Feedback” button in PIX.

 

Other Issues

 

Issue: application hangs while running under GPU Capture

Status: Has known workaround (avoid connecting/disconnecting via remote desktop, or terminate and restart your application.)

Affected devices: Remote Desktop

Problem: Your application may hang if it is running under PIX GPU Capture on a PC that you have connected to via Remote Desktop, and you disconnect from that Remote Desktop session while the application is running.