I am having a problem with my renderer. User markers are not displayed correctly in Nsight 2019.3 graphics debugger when using deferred contexts with DirectX 11 API. I am talking about ID3DUserDefinedAnnotation::BeginEvent() and EndEvent(), providing a string from the application for a specific range in the command list to help debugging. These work correctly for me if I use an immediate context from a single threaded application. They also seem to work correctly in RenderDoc. I am creating one user defined annotation object for every deferred context like this:
HRESULT hr = device->CreateDeferredContext(0, &deviceContexts[cmd]); assert(SUCCEEDED(hr)); hr = deviceContexts[cmd]->QueryInterface(__uuidof(userDefinedAnnotations[cmd]), reinterpret_cast<void**>(&userDefinedAnnotations[cmd])); assert(SUCCEEDED(hr));
I have tried with Nvidia GTX 1050 laptop GPU.
The project is hosted on GitHub as a visual studio solution: https://github.com/turanszkij/WickedEngine
There is also a direct download for a Windows 10 build here: https://ci.appveyor.com/api/projects/turanszkij/wickedengine/artifacts/WickedEngineEditor.zip?branch=master
Let me know if you need more information.