I am currently trying to use Intel GPA to analyse a Unity, DirectX 11 game.
Unfortunately using Intel GPA on this game makes it crash at startup.
To investigate, I have attached a debugger to my game and let it launch with Intel GPA's modules loaded at initialisation as it should be (specifically shimloader64.dll that then loads shimd3d64.dll, that finally loads MetricsPipeline64.dll)
It works perfectly well with all other games (even the ones equally Unity and DirectX 11 based) but not for this one.
My debugger revealed that when Intel GPA's modules are loaded, the main thread of my game encounters an access violation when trying to write a memory address.
Taking a look at the call stack I can see that it is executing code within shimd3d64.dll when the error happens (precisely in a call to CreateRemoteThreadEx called from somewhere in shimd3d64.dll)
Since the main thread is the one of my game, it normally shouldn't venture executing code in Intel GPA's modules, therefore I assume that GPA is setting up some sort of hook or detour to redirect the program flow and execute additional actions, most likely during the initialisation of DirectX to enable its features afterwards.
The problem seems to be there in the additional operations that GPA makes my main thread do, but I am not a professional programmer and do not really know how I could solve this issue or further my investigation at this point.
Here is a screen capture of the debugger when encountering the issue:
Do you know of anyone having bumped into this problem in the past?
If someone of this forum's staff or active member read this, have you had other crash on startup problems? And if yes, what did solve the issue please.
I looked for more technical documentation on GPA or a troubleshoot guide but didn't find any, is there one and if so would it be useful?
Any suggestions that might help to solve the issue is more than welcome.
Thank you for your help