I am curious about what GPA considers as a Frame in a DirectX application. When you record a frame for analysis, what event is considered to be the start and the end of the frame. I am guessing GPA records the events between the next two Presents. If this is the case how does it deal with applications with multiple swapchains? I checked the forum for an answer on the subject, but I couldn't find any.
I am trying to profile our application which has multiple swapchains each one presenting once during our frame. I detect a strange behavior when analyzing a GPA capture. I can see a couple of extra frames being captured, and that amount is varies between different captures. I'm trying to figure out if GPA gets confused by the multiple swapchains, or if we indeed have a race condition which result on some random extra rendering every frame.
First of all, can you provide information on your configuration? Right-click on the Intel GPA Monitor icon in the notification tray and select "About...".
Windows 7 build 7601, 64-bit DEP enabled
Num Processors: 12
System BIOS: Hewlett-Packard J61 v03.15 (05/09/2013)
Video BIOS: Version 80.04.5C.00.71 (12/20/12)
Device: NVIDIA GeForce GTX 670
No support for GPA Instrumentation
GPA install directory: :) :) :)
GPA version: 14.2.225646
Current user is in Administrators group: YES
Current GPA 2014 R2 (14.2.225646)
Secure Boot/Trusted Boot is Disabled
I'm assuming that you're also using deferred rendering with the multiple swapchains? If so, your game is likely "confusing" Intel GPA, and therefore this is a bug in the product. Do you have a sample app showing this that I can provide to the development team?
Thanks for the answer.
We are indeed rendering deferred with multiple swapchains. Can you elaborate on why it's "confusing" GPA?
I will check with my management for the sample, it might be little tricky because of NDAs.
I'll keep you posted.
Sorry for my lack of clarity on this... basically, Intel GPA is "confused" since it doesn't handle the specific sequence of DX calls that you are making in your app. In other words, there's a bug in the code since we don't handle this properly. :-)
I understand your concerns about providing the full app. If you have a smaller code snippet that exhibits the same problem that would actually be better than the whole app, and would allow us to quickly isolate the specific problem.
ps-> And thanks for using the Intel GPA toolset -- hopefully we can get this resolved and quickly get you back up and running.