7#if defined(WITH_OPENIMAGEDENOISE)
16 friend class OIDNDenoiseContext;
23 OIDNDenoiserGPU(Device *denoiser_device,
const DenoiseParams &
params);
24 ~OIDNDenoiserGPU()
override;
27 RenderBuffers *render_buffers,
28 const int num_samples,
29 bool allow_inplace_modification)
override;
31 static bool is_device_supported(
const DeviceInfo &device);
50 bool denoise_run(
const DenoiseContext &context,
const DenoisePass &pass)
override;
52 OIDNFilter create_filter();
53 bool commit_and_execute_filter(OIDNFilter
filter, ExecMode mode = ExecMode::SYNC);
55 void set_filter_pass(OIDNFilter
filter,
61 const size_t offset_in_bytes,
62 const size_t pixel_stride_in_bytes,
63 size_t row_stride_in_bytes);
66 void release_all_resources();
68 OIDNDevice oidn_device_ =
nullptr;
69 OIDNFilter oidn_filter_ =
nullptr;
70 OIDNFilter albedo_filter_ =
nullptr;
71 OIDNFilter normal_filter_ =
nullptr;
73 bool is_configured_ =
false;
76 vector<uint8_t> custom_weights;
78 bool use_pass_albedo_ =
false;
79 bool use_pass_normal_ =
false;
virtual bool denoise_run(const DenoiseContext &context, const DenoisePass &pass)=0
virtual bool denoise_create_if_needed(DenoiseContext &context)=0
bool denoise_buffer(const BufferParams &buffer_params, RenderBuffers *render_buffers, const int num_samples, bool allow_inplace_modification) override
virtual bool denoise_configure_if_needed(DenoiseContext &context)=0
virtual uint get_device_type_mask() const =0
#define CCL_NAMESPACE_END