Aftermath is a compact, C++ library aimed at Microsoft Windows based developers, enabling post-mortem GPU crash analysis on NVIDIA GeForce based GPUs.
In it’s basic form, it works by allowing programmers to insert markers on the GPU timeline, which can be read post-TDR, in order to determine what work the GPU was processing at the point of failure. Aftermath also includes a facility to query the current device state, much like the using conventional graphics APIs, but reporting a finer grain reason.
One of the key principles of Aftermath is for the marker insertion to be as unobtrusive as possible. Avoiding situations common with other similar debuggers, where their associated performance cost, changes timing enough to make a bug repro vanish (a Heisenbug). Aftermath avoids this problem by design, while simultaneously not compromising on functionality; a catch-all solution for post-mortem GPU crash analysis.
Aftermaths low performance footprint is low enough to be measured in the noise, meaning it’s unobtrusive enough to ship in a fully-fledged game – allowing developers to mine statistics on why the GPU crashed from the wild (should the required telemetry systems already exist).
NB. If you require Aftermath functionality in a shipping product (where renaming of the executable isn’t possible) please contact us.
Members of the NVIDIA Developer Program can download Aftermath here: Get Aftermath
Developers can insert markers on the GPU timeline, which can be read post-TDR,
helping determine what work the GPU was processing at the point of failure.