diff options
Diffstat (limited to 'intern/cycles/integrator/path_trace_work_cpu.h')
-rw-r--r-- | intern/cycles/integrator/path_trace_work_cpu.h | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/intern/cycles/integrator/path_trace_work_cpu.h b/intern/cycles/integrator/path_trace_work_cpu.h index 5a0918aecec..e50ba8721d9 100644 --- a/intern/cycles/integrator/path_trace_work_cpu.h +++ b/intern/cycles/integrator/path_trace_work_cpu.h @@ -16,6 +16,7 @@ CCL_NAMESPACE_BEGIN struct KernelWorkTile; struct KernelGlobalsCPU; +struct IntegratorStateCPU; class CPUKernels; @@ -50,6 +51,22 @@ class PathTraceWorkCPU : public PathTraceWork { virtual int adaptive_sampling_converge_filter_count_active(float threshold, bool reset) override; virtual void cryptomatte_postproces() override; +#ifdef WITH_PATH_GUIDING + /* Initializes the per-thread guiding kernel data. The function sets the pointers to the + * global guiding field and the sample data storage as well es initializes the per-thread + * guided sampling distributions (e.g., SurfaceSamplingDistribution and + * VolumeSamplingDistribution). */ + void guiding_init_kernel_globals(void *guiding_field, + void *sample_data_storage, + const bool train) override; + + /* Pushes the collected training data/samples of a path to the global sample storage. + * This function is called at the end of a random walk/path generation. */ + void guiding_push_sample_data_to_global_storage(KernelGlobalsCPU *kernel_globals, + IntegratorStateCPU *state, + ccl_global float *ccl_restrict render_buffer); +#endif + protected: /* Core path tracing routine. Renders given work time on the given queue. */ void render_samples_full_pipeline(KernelGlobalsCPU *kernel_globals, |