Hello,
I am building a Native Plugin to access the NVidia Raytrace Denoiser.
https://github.com/ninlilizi/GameWorks-Denoiser-Unity-Plugin
The functions runs, and it doesn’t crash, so that part is fine.
The problem I am having, is the functions build a command buffer within the extension, but I am unable to figure out how to execute this buffer. I’ve fed a compiled project to NSight and RenderDoc to verify the commands are not being executed by the engine.
I guess I need some secret sauce within the plugin to execute the built buffers. But have so far been unable to figure out what.
I have tried calling
IUnityGraphicsD3D12v4* s_D3D12->ExecuteCommandList
and fiddled with dozens of iterations of doing so, attempting to execute the command list that is wrapped by NRI (Nvidia Rendering Interface) as part of the initialization and subsequent called to Denoise() within NRD
The meat of the plugin is here:
And the functions the engine calls here:
This was built using the NativeRenderingPlugin example as a skeleton.
I’ve also worked through the given examples for NRI and NRD within their own repos without learning anything new.
So, my question is, how do I make the built and wrapped command buffer for the denoiser execute?
I’m working on an DXR GI asset. But plan to leave the denoiser plugin on GitHub for of anyone else working on Global Ilimuniation projects.