Nsight Graphics crash in Nvda.Graphics.Interception.dll

Hey!
I tried to profile my program, “General” tab, “Launch Frame Debugger” from Nsight Graphics.
It’s a simple DX12 renderer. Nsight Graphics is able to show “Events”, “Scrubber” and “API Inspector”, but my program crashes right after I open “Objects Browser” window.

Nsight shows:
Connection Error
Connection error detected communicating with target application.
Shutting down connection.

Output messages:
ID,Origin,Source,Message
1,Target,NVIDIA Nsight Graphics,Graphics interception initialized
2,Target,Nsight Capture Timings,Capture progress checkpoint: Preparing for capture @ 0 s
3,Target,Nsight Capture Timings,Capture progress checkpoint: Saving initial state @ 0 s
4,Target,Nsight Capture Timings,Capture progress checkpoint: Capturing function stream @ 0.064 s
5,Target,Nsight Capture Timings,Capture progress checkpoint: Building event database @ 0.265 s
6,Target,Nsight Capture Timings,Capture progress checkpoint: Processing object mutations @ 0.268 s
7,Target,Nsight Capture Timings,Capture progress checkpoint: Starting replay @ 0.269 s
8,Target,Nsight Capture Timings,Capture progress checkpoint: Populating capture description @ 2.93 s
9,Target,Nsight Capture Timings,Capture progress checkpoint: Sending capture description @ 2.95 s

My program works stable without Nsights attached.

I attached the debugger to see more details. Main thread does present while the crash happens: IDXGISwapChain4::Present(1,0)
Abort caught in Nvda.Graphics.Interception.dll

Other details about my setup:

  • 240Hz monitor with gsync
  • RTX 4070 mobile with (Optimus in RTX only mode, so the intergated GPU is turned off)
  • Windows 11 Home 22631.4460

Repro case 1

Application: NVIDIA Nsight Graphics
Version: 2024.1.0.0 (build 34057410) (public-release)

GeForce GameReady Driver 566.03

Call stack:
ucrtbase.dll!abort() Unknown
vcruntime140.dll!_purecall() Line 29 C++
Nvda.Graphics.Interception.dll!00007ffbb99d94b3() Unknown
Nvda.Graphics.Interception.dll!00007ffbb99d94a6() Unknown
Nvda.Graphics.Interception.dll!00007ffbb977cfc1() Unknown
Nvda.Graphics.Interception.dll!00007ffbb787e44c() Unknown
Nvda.Graphics.Interception.dll!00007ffbb99f5524() Unknown
Nvda.Graphics.Interception.dll!00007ffbb77b0345() Unknown
Nvda.Graphics.Interception.dll!00007ffbb77b0d0a() Unknown
Nvda.Graphics.Interception.dll!00007ffbb9a19f88() Unknown
Nvda.Graphics.Interception.dll!00007ffbb77b1bf4() Unknown
Nvda.Graphics.Interception.dll!00007ffbb77b1ae8() Unknown
msvcp140.dll!Concurrency::details::`anonymous namespace’::_Task_scheduler_callback(_TP_CALLBACK_INSTANCE * _Pci, void * _Args, _TP_WORK * __formal) Line 133 C++
ntdll.dll!TppWorkpExecuteCallback() Unknown
ntdll.dll!TppWorkerThread() Unknown
kernel32.dll!BaseThreadInitThunk() Unknown
ntdll.dll!RtlUserThreadStart() Unknown

Repro case 2

Application: NVIDIA Nsight Graphics
Version: 2024.2.1.0 (build 34953390) (public-release)

GeForce GameReady Driver 566.14

Call stack:
ucrtbase.dll!abort() Unknown
vcruntime140.dll!_purecall() Line 29 C++
Nvda.Graphics.Interception.dll!00007ffba97f3463() Unknown
Nvda.Graphics.Interception.dll!00007ffba97f3456() Unknown
Nvda.Graphics.Interception.dll!00007ffba9596f31() Unknown
Nvda.Graphics.Interception.dll!00007ffba764743c() Unknown
Nvda.Graphics.Interception.dll!00007ffba980f814() Unknown
Nvda.Graphics.Interception.dll!00007ffba757a775() Unknown
Nvda.Graphics.Interception.dll!00007ffba757b13a() Unknown
Nvda.Graphics.Interception.dll!00007ffba9834e18() Unknown
Nvda.Graphics.Interception.dll!00007ffba757c064() Unknown
Nvda.Graphics.Interception.dll!00007ffba757bf58() Unknown
msvcp140.dll!Concurrency::details::`anonymous namespace’::_Task_scheduler_callback(_TP_CALLBACK_INSTANCE * _Pci, void * _Args, _TP_WORK * __formal) Line 133 C++
ntdll.dll!TppWorkpExecuteCallback() Unknown
ntdll.dll!TppWorkerThread() Unknown
kernel32.dll!BaseThreadInitThunk() Unknown
ntdll.dll!RtlUserThreadStart() Unknown

Are there any extra requirement on the application side? I do disable debug layer and gpu validation.
Thank you in advance!

Hi marcin.polaczyk,

Thank you for using Nsight Graphics and providing your feedback. We are sorry for any inconvenience you have encountered.

It looks like the crash happened with both Nsight Graphics 2024.1.0 and 2024.2.1, could you share the dmp file? Furthermore, could you please provide a simple example that would allow us to reproduce the issue? This will help us in investigating and resolving the problem more efficiently.

Thanks
An

Hello, thanks for your quick response.

  1. Dump file. I don’t have this functionality now, but can quickly add it to the project. I should have it in 1-2 days.

  2. Small repro project. You can reproduce it pretty easily as all code is on github, the project is relatively small. Here are instructions:

  • Visual Studio 2022 solution is provided, you can open it
  • Go to the \Engine\core\core.h and change USE_NSIGHT_GRAPHICS to 1. This will disable debug layer, GPU validation and info queue.
  • You have to compile project editor
  • I use Windows SDK 10.0.22621.0 and Platform Toolset (v143)
  • Then run it with command line argument fbx_scene_test
  • The app should render a normal channel of a gbuffer of a simple scene (blender monkey, some spheres torus knots and a plane)
    Main files: application.cpp, window.cpp, renderer_base.cpp, gpu_deferred_sync.cpp, pass_base.cpp and gbuffer_pass.cpp, gbuffer_deferred.hlsl

Thank you!

Hi mpolaczyk,

Thanks for your report, I think I can reproduce the crash. An internal case has been created to track this.

PS, you can take a try on the Binary Capture, the crash will not happen when you open ‘Objects Browser’.

Thanks
An

Thanks AYan, Can ou share more details about the Binary Capture feature?
All materials I can find are probably removed (Page Not Found).
Link

AFAIK, Binary Capture needs NDA+ version of Nsight Graphics at current stage.

Thanks! NDA+ do you mean “Non Disclosure Agreement+” ?
Is this only for corporate accesss? Can private individuals get it too?

Hello,
Thank you for your questions on Nsight Graphics. You are correct that NDA is our Non Disclosure Agreement. Unfortunately, at this time we only execute NDAs with businesses and similar entities that we have a strategic relationship with.
Regards,

Hello dwoods, I actually have three small follow up questions.

  1. Do you have any tips for my application so that it does not cause the issue?
  2. Nsight Graphics remembers that the Objects window was opened, now it opens it immediately after frame debugger starts which causes the crash. Is there any way to not open it by default?
  3. Do you know any patch roadmap for Nsight Graphics?

Thank you in advance!

Hi mpolaczyk,

  1. Do you have any tips for my application so that it does not cause the issue?

No updates right now.

  1. Nsight Graphics remembers that the Objects window was opened, now it opens it immediately after frame debugger starts which causes the crash. Is there any way to not open it by default?

Please open Nsight Graphics without load any project, click ‘Help’ → ‘Reset Application Data…’, that will force reset Nsight Graphics, and fix this ‘open by default’ issue.

  1. Do you know any patch roadmap for Nsight Graphics?

I will leave this to @dwoods, :)

Thanks
An