Interruptible denoiser

In order to react as quickly as possible, when the 3D scene changes, we interrupt our rendering process and restart it from scratch. We would like to do the same with the denoising process (since we won’t be using the results anyway). Is it possible to interrupt the denoising process ? How ?

Colin Chargy

Hi Colin,

The OptiX denoiser cannot currently be interrupted at either the OptiX or CUDA API levels. The simplest approach to making it more interactive and/or interruptible would be to explicitly tile your denoising job on your end and submit the tiles one or two at a time, so you have a chance to interrupt the denoising work by cancelling your queue of tiles that haven’t been submitted to the GPU yet. Be aware that while this will allow you to cancel work early, it will increase the total latency of a full frame denoise, and that you will probably want to overlap your tiles by at least 32 pixels to avoid any visible tile boundary artifacts.


Small addendum to what I said: the best way to determine what overlap you should use when doing your own tiling is to call optixDenoiserComputeMemoryResources() to query the value of overlapWindowSizeInPixels. This value is currently 64 pixels. You can use a lower value, but be aware that using a smaller number will risk having some visible tiling artifacts near the edges of your tiles.