We've been using PIX successfully in the past, while we were still using DXUT. However, now that we got rid of DXUT, PIX is giving the following error message whenever trying to view draw call results:
A call that previously succeeded failed during playback:
My operating system is Windows 7 x64, PIX is 64-bit and the debugged application is 32-bit. The application is working fine outside of PIX, and there are no errors or warnings that are related to Direct3D. I tried looking through the PIX documentation for information about this error, but most of the things there seemed to be about Direct3D 9. So... What could possibly make the CreateSwapChain() call fail in PIX, when it's working fine otherwise?
I also see this error rather frequently. Something that usually works for me is to, instead of capturing a single frame, set it to capture a replayable stream of all DirectX calls to file. Then you can find the frame you want in the list and view it. It will be slower since whenever you select a frame it will start from frame 0 and go through every call made in the program up to the frame you select, but it should work (if it's the same problem).
Not sure what can be the problem when this happens.. the only thing I can think of is perhaps something isn't cleared the right way at the start of the frame so it thinks the contents are dependent on the last frame.. but I've seen it in rather simple apps where that shouldn't be the case so I'm not sure... and the failure pointing to CreateSwapChain in that case seems strange..
Edited by Erik Rufelt, 14 September 2012 - 04:16 AM.
Thanks for the replies. It seems that capturing a replayable stream does indeed solve this problem. Capturing a single frame would be better though, because it would be much faster and would allow debugging individual pixels. So I guess I'll keep looking for the actual source of this problem.