No OpenGL events collected

I want to profile an application that uses OpenGL and
the nv_pathrendering extension to render an image
offscreen and save it to disk.

I get the message : “No OpenGL events collected. Does the process use OpenGL?”.
The application also uses Cuda to do some post-processing after rendering.
The Cuda events are collected.

OpenGL version is 4.5 with the Compatibility Profile,
using GLFW and GLAD.
Nsight Systems version is 2023.2.3
I also tried using the OpenGL Core profile,
but it also did not work.

The application is in C# and calls into my C++ DLL, where all
OpenGL and Cuda commands are executed.

Also, almost always I get the following error, when starting the profiling from Nsight Systems UI:

Full error information:
RuntimeError (120) {
RuntimeError (120) {
OriginalExceptionClass: struct boost::wrapexcept
OriginalFile: C:\dvs\p4\build\sw\devtools\Agora\Rel\DTC_I\QuadD\Host\Analysis\Clients\AnalysisHelper\AnalysisStatus.cpp
OriginalLine: 79
OriginalFunction: class Nvidia::QuadD::Analysis::Data::AnalysisStatusInfo __cdecl QuadDAnalysis::AnalysisHelper::AnalysisStatus::MakeFromErrorString(enum Nvidia::QuadD::Analysis::Data::AnalysisStatus,enum Nvidia::QuadD::Analysis::Data::AnalysisErrorType::Type,const class std::basic_string<char,struct std::char_traits,class std::allocator > &,const class boost::intrusive_ptr &)
ErrorText: C:\dvs\p4\build\sw\devtools\Agora\Rel\DTC_I\QuadD\Common\AgentAPI\Src\SessionImpl.cpp(18): rpc Launch(.Agent.LaunchRequestInternal) returns (.Agent.EmptyMessage);
is canceled because the timeout period is expired
}
}

I am not sure when this error does not occur, even directly after rebooting i get this error, but sometimes
i can start the application.
That is why I usually start the ‘System Trace’ from the Nsight Compute UI, which always works.

System Info:
GPU Driver Version: 536.25
GPU Version: NVIDIA GeForce RTX 3080
Operating System: Windows 10 (22H2)
nsys-ui.log (181.9 KB)

@Andrey_Trachenko any thoughts?

Hi m.bason!
Thank you for your message.

Regarding the OpenGL issue, there are a few things that could cause the OpenGL API not to be traced correctly, especially in mixed-mode applications:

  1. If the OpenGL user-mode driver (opengl32.dll) called by the application is not the system’s driver (in C:\Windows\System32). If your application is dynamically loading opengl32.dll, make sure you load it with the name string “opengl32.dll” and not with a full path. However, since you’re using GLFW I doubt this would be the case here.
  2. Nsight Systems only supports Graphics API tracing (OpenGL, DX12, Vulkan, etc.) of 64-bit native applications / modules. Is your application running in 32-bit mode (or, is the glfw dll you’re using a 32-bit dll)? If so, changing it to 64-bit mode might fix the issue.
  3. If your application is directly using the NVIDIA OpenGL driver instead of using the system OpenGL driver. This is also not likely since you’re using GLFW.

If none of those helps, You could help us look into the issue by providing a small sample application that reproduces the issue (source code would be helpful, but even just a binary executable would be enough) and we would try to reproduce the issue to better understand it.

Regards,

The application was running in 32-bit mode.
I changed to 64 bit and now the OpenGL commands
are also recorded.

Thank you very much!

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.