Graphics Reference
In-Depth Information
Figure 7.9. A sample screen shot taken from a multithreaded application PIX frame capture.
done with the D3D11 API for a given frame. When using multiple contexts and multiple
threads to generate and consume command lists during a frame, you can still perform a
frame capture and obtain significant information about how the frame was constructed.
Specifically, you can see each of the API calls that are made from each context, with the
calling context identified by its address. Figure 7.9 shows a snapshot of the information
available from a frame capture.
Unfortunately, at the time of this writing some of the visualization tools in PIX are
not operational when used in conjunction with deferred contexts/command lists. In the
single context frame capture, you can step through each API call and visualize surface
contents and the geometry being rendered, and you can inspect the contents of memory
resources. But when deferred contexts are used, the API calls are wrapped into a command
list, and the visualizations are not possible since the entire command list is executed at the
same time, which is much later than when the command is actually sent to the deferred con-
text. Even so, the time and order of the calls are still available and can help you understand
if there is a mistake somewhere in the sequencing of the API calls.
This also provides another reason to be able to switch from using deferred contexts
to only using the immediate context—you can use the immediate context mode to provide
a complete PIX frame capture with visualizations to check for errors, and then switch back
to deferred rendering once you are sure there aren't any errors in the rendering code.
Search WWH ::




Custom Search