Prior to the 2505.09 release of PIX on Windows, calls to PIXBeginEvent and PIXEndEvent that include a Direct3D context were required to be called from the same CPU thread. Starting with the 2505.09 release, PIXBeginEvent and PIXEndEvent calls that include a context (referred to as PIX GPU events) may now be made on different CPU threads.
This change has been made based on customer feedback that became more prominent after the release of Unreal Engine 5.5 as Epic changed the way in which they emit these events.
With this change, the starting and ending times for the corresponding CPU work will be rendered differently on the CPU threads in the timeline. In previous versions of PIX, a corresponding CPU PIX event was added to the thread from which the call to PIXBeginEvent and PIXEndEvent with a context was made. These events were linked in the UI as shown in this screenshot.
Because the begin and end of a PIX GPU event can now be made on different CPU threads, rendering the work on the CPU timeline using a PIX event on a single thread no longer accurately represents the relationship between the CPU work and the corresponding GPU work in all cases.
Rather than denoting the start and ends times of the CPU work with a PIX event, the start and end times are now shown as PIX CPU markers. Arrows showing the relationship between the start and end times are drawn between the PIX CPU markers and the corresponding PIX GPU event.
Note that the ability to call PIXBeginEvent and PIXEndEvent on different CPU threads only applies to PIX GPU events. Calls to PIXBeginEvent and PIXEndEvent that do not take a Direct3D context (termed PIX CPU events), must still be made on the same thread.
There are some cases when you’ll see a marker named $END GPU EVENT. This occurs in the following situations:
- Command lists/queues are created on the CPU but never submitted to the GPU
- When using the D3D Debug Layer, events with a short duration might not be logged to PIX
- Near the end of a capture, if the capture is stopped in a gap between the when the CPU work is done but the GPU work hadn’t been completed.
As always keep the feedback and bug reports coming using the PIX Feedback option in the upper right corner of the UI,
Steven.
0 comments
Be the first to start the discussion.