29 bool allow_inplace_modification)
32 if (!denoiser_device) {
39 task.buffer_params = buffer_params;
40 task.allow_inplace_modification = allow_inplace_modification;
43 bool local_buffer_used =
false;
47 local_buffer_used =
false;
48 task.render_buffers = render_buffers;
51 VLOG_WORK <<
"Creating temporary buffer on denoiser device.";
60 local_buffer_used =
true;
64 local_render_buffers.
reset(buffer_params);
71 sizeof(
float) * local_render_buffers.
buffer.
size());
75 task.render_buffers = &local_render_buffers;
76 task.allow_inplace_modification =
true;
81 if (local_buffer_used) {
85 render_buffers, buffer_params, &local_render_buffers, local_render_buffers.
params);
90 return denoise_result;
void render_buffers_host_copy_denoised(RenderBuffers *dst, const BufferParams &dst_params, const RenderBuffers *src, const BufferParams &src_params, const size_t src_offset)
Device * get_denoiser_device() const
DeviceDenoiser(Device *path_trace_device, const DenoiseParams ¶ms)
virtual bool denoise_buffer(const BufferParams &buffer_params, RenderBuffers *render_buffers, const int num_samples, bool allow_inplace_modification) override
virtual DeviceQueue * get_denoise_queue()
virtual bool denoise_buffer(const DeviceDenoiseTask &)
device_vector< float > buffer
void reset(const BufferParams ¶ms)
#define CCL_NAMESPACE_END
ccl_gpu_kernel_postfix ccl_global float int int int int ccl_global const float int int int int int int int int int int int int num_samples
struct blender::compositor::@179::@181 task