OpenGL: Draw call using transform feedback object was populated outside of the captured frame.

Nsight Graphics debugger fails to capture frames whenever transform feedback is used.
It creates a nvcompatlog.txt with following content:

Draw call using transform feedback object (name = 1) was populated outside of the captured frame.

The frame is rendered correctly (regardless of Nsight graphics debugger being connected or not).

Is it possible to make debugger usable in such situation? (Perhaps make debugger ignore transform feedback calls?)

Hi Justviewer,

I moved your thread to the Nsight Graphics Forum.

Hmm, this is an interesting problem. Let me take this post back to the development team and I’ll get back to you.

Thanks,
Seth

Hi Justviewer,

I talked with the development team and the problem is that transform feedback objects are not shareable between contexts and as such you are hitting a known incompatibility. This is not a situation where the incompatibility can be ignored because it is likely that the application will not replay correctly. Some workarounds they suggested include:

  1. Perform the transform feedback operation in the same frame as the associated transform-feedback draw
  2. Readback the transform feedback data so that you can issue regular GL draw calls
  3. Convert the transform feedback operations into a compute shader.

Let me know if any of these work for you!

Thanks,
Seth