Set empty output buffer

is there a way how to set empty output buffer?
If I have in shader program

rtBuffer<float4, 2> output_buffer;

then I must set it from program, because otherwise I got an error when optix validate.

Calling program[“output_buffer”]->setBuffer(NULL); causes program crash.

I need multiple output buffers, but no everytime, something like:

if (isColor)
   color_buffer[index] = color;
if (isNormal)
   normal_buffer[index] = normal;

I found some solution with callable programs. So I create callable program for each output buffer and set this buffer into it.
However this solution have two problems:

  • I must have callable program for each buffer (is there a way how to copy optix::Buffer to avoid compile it for each buffer?)
  • When I don’t need this buffer and I remove it, I must remove also this callable program.

Is there other way how to do this?