Optix Denoiser

I am trying to denoiser to my project, it said 'OptiX Error: ‘Unknown error (Details: Function
“_rtCommandListFinalize” caught exception: Could not load denoiser library.)’ when finalize, anyone knows why, thanks.

optix::Buffer beauty_buffer = context->createBuffer(RT_BUFFER_INPUT_OUTPUT, RT_FORMAT_FLOAT4, 100, 100);
	optix::PostprocessingStage m_stageDenoiser = context->createBuiltinPostProcessingStage("DLDenoiser");
	m_stageDenoiser->declareVariable("input_buffer")->set(beauty_buffer);
	m_stageDenoiser->declareVariable("output_buffer")->set(beauty_buffer);

	m_stageDenoiser->declareVariable("blend")->setFloat(0);
	m_stageDenoiser->declareVariable("hdr")->setFloat(1);


	optix::CommandList m_commandListDenoiser = context->createCommandList();

	m_commandListDenoiser->appendPostprocessingStage(m_stageDenoiser, 1000, 1000);
	m_commandListDenoiser->finalize();

Inside your executable installation, do you have the optix_denoiser.51.dll and cudnn64_7.dll next to the optix.51.dll?

Thanks again Detlef, yes, it is because of lacking dll files.:)

Hi Detlef, I’m having a similar problem on linux (ubuntu 18.04 LTS).

optix_advanced_samples/optixIntroduction/optixIntro_10 is throwing:

“Unknown error (Details: Function “RTresult _rtCommandListFinalize(RTcommandlist)” caught exception: Could not load denoiser library.”

on m_commandListDenoiser->finalize();

I should also say that I modified optix_advanced_samples/CMake/FindOptiX.cmake:

set(OptiX_INSTALL_DIR $ENV{OptiX_INSTALL_DIR} CACHE PATH “Path to OptiX installed location.”)

So I assume my error is because I haven’t linked liboptix_denoiser.so and libcudnn.so correctly. Any hints on how to fix this?

GPU RTX 2080, OptiX 5.1.1

RTX 2080 isn’t supported by OptiX yet. There is a similar post not that far back about the denoiser failing on a 2080. Personally I can’t even get the ray tracing working on my 2080.

As I suspected, it does seem to have been a simple case of not linking my libraries correctly. I added lib64 to LD_LIBRARY_PATH in my .bashrc file so that it reads:

export OptiX_INSTALL_DIR=<<PATH_TO_INSTALL_DIR>>
export PATH=$OptiX_INSTALL_DIR:$PATH
export LD_LIBRARY_PATH=$OptiX_INSTALL_DIR/lib64:$LB_LIBRARY_PATH

And I no longer get the “Could not load denoiser library” error. Instead, I now get:

Unknown error (Details: Function “RTresult _rtCommandListExecute(RTcommandlist)” caught exception: Failed to launch DLDenoiser post-processing stage. DLDenoiser run method failed with error -40.

Backtrace:
(0) () +0x711f17
(1) () +0x70e701
(2) () +0x42b69e
(3) () +0x42a00b
(4) () +0x3f8214
(5) () +0x1aaa1c
(6) rtCommandListExecute() +0x1d6
(7) optix::CommandListObj::execute() +0x9d
(8) Application::render() +0x91
(9) main() +0x61b
(10) __libc_start_main() +0xe7
(11) _start() +0x2a

================================================================================
)
Unknown error (Details: Function “RTresult _rtContextLaunch2D(RTcontext, unsigned int, RTsize, RTsize)” caught exception: Assertion failed: “!m_launching : Memory manager launch is already active”, file: /root/sw/wsapps/raytracing/rtsdk/rel5.1/src/Memory/MemoryManager.cpp, line: 962

Backtrace:
(0) () +0x711f17
(1) () +0x70e701
(2) () +0x70e549
(3) () +0x3c0e8a
(4) () +0x1c9541
(5) () +0x17a69b
(6) rtContextLaunch2D() +0x2b9
(7) Application::render() +0x224
(8) main() +0x61b
(9) __libc_start_main() +0xe7
(10) _start() +0x2a

================================================================================

I gather the second error is when I try and hand the failed denoiser buffer to render buffer.

I also get the same -40 error when I try to run the optixDenoiser example.

I’ve yet to have a dig around for what this error code refers to, so perhaps this is the 2080 error you were talking about papaboo? I haven’t had any trouble running some of the other examples with my 2080.

Please have a look into the OptiX 5.1.1 release notes:

[i]Known Issues

  • Please note that the OptiX 5.1.1 SDK does not support Denoising on Turing.[/i]

The OptiX 5.1.0 version supported it, but with a comparably slow fallback because the cuDNN version used was not containing the required features for the fast path on Turing and the one in OptiX 5.1.1 does neither. The next major OptiX version will address this.

Thanks for that Detlef.

I’ll focus on other aspects of OptiX until the next release then.