127 const bool use_sample_subset,
128 const int sample_subset_offset,
129 const int sample_subset_length);
209 bool balance_changed);
253 const int num_rendered_samples)
const;
255 int num_rendered_samples)
const;
330 void add_average(
const double time,
const int num_measurements = 1)
371 bool user_is_navigating =
false;
373 int resolution_divider = 1;
376 int num_rendered_samples = 0;
379 double last_display_update_time = 0.0;
381 int last_display_update_sample = -1;
384 double last_rebalance_time = 0.0;
388 int num_rebalance_requested = 0;
391 int num_rebalance_changes = 0;
393 bool need_rebalance_at_next_work =
false;
397 bool last_rebalance_changed =
false;
401 float adaptive_sampling_threshold = 0.0f;
403 bool last_work_tile_was_denoised =
false;
404 bool tile_result_was_written =
false;
405 bool postprocess_work_scheduled =
false;
406 bool full_frame_work_scheduled =
false;
407 bool full_frame_was_written =
false;
409 bool path_trace_finished =
false;
410 bool time_limit_reached =
false;
413 double start_render_time = 0.0;
414 double end_render_time = 0.0;
420 int occupancy_num_samples = 0;
421 float occupancy = 1.0f;
428 double path_trace_per_sample;
430 double display_update_time;
499 const int resolution);
503 const int resolution_divider);
double get_average() const
double get_last_sample_time() const
double average_time_accumulator_
void add_average(const double time, const int num_measurements=1)
void add_wall(const double time)
int limit_samples_per_update_
AdaptiveSampling adaptive_sampling_
DenoiseParams denoiser_params_
void set_time_limit(const double time_limit)
void update_state_for_render_work(const RenderWork &render_work)
void report_path_trace_occupancy(const RenderWork &render_work, const float occupancy)
double guess_display_update_interval_in_seconds_for_num_samples(const int num_rendered_samples) const
float work_adaptive_threshold() const
int calculate_num_samples_per_update() const
int get_rendered_sample() const
void report_adaptive_filter_time(const RenderWork &render_work, const double time, bool is_cancelled)
bool work_need_update_display(const bool denoiser_delayed)
BufferParams buffer_params_
bool work_need_rebalance()
void set_need_schedule_rebalance(bool need_schedule_rebalance)
double guess_display_update_interval_in_seconds() const
void reset_for_next_tile()
bool work_need_denoise(bool &delayed, bool &ready_to_display)
bool work_need_adaptive_filter() const
int get_num_rendered_samples() const
string full_report() const
bool need_schedule_rebalance_works_
bool is_denoise_active_during_update() const
void report_denoise_time(const RenderWork &render_work, const double time)
bool set_postprocess_render_work(RenderWork *render_work)
double get_time_limit() const
double guess_display_update_interval_in_seconds_for_num_samples_no_limit(int num_rendered_samples) const
bool work_is_usable_for_first_render_estimation(const RenderWork &render_work)
int calculate_resolution_divider_for_time(const double desired_time, const double actual_time)
bool is_adaptive_sampling_used() const
void set_denoiser_params(const DenoiseParams ¶ms)
bool use_progressive_noise_floor_
bool render_work_reschedule_on_idle(RenderWork &render_work)
int get_num_samples() const
TimeWithAverage adaptive_filter_time_
void report_display_update_time(const RenderWork &render_work, const double time)
TimeWithAverage rebalance_time_
void set_sample_params(const int num_samples, const bool use_sample_subset, const int sample_subset_offset, const int sample_subset_length)
int get_sample_offset() const
int default_start_resolution_divider_
bool is_denoiser_gpu_used() const
TimeWithAverage display_update_time_
void reset(const BufferParams &buffer_params)
void set_full_frame_render_work(RenderWork *render_work)
double guess_viewport_navigation_update_interval_in_seconds() const
void update_start_resolution_divider()
void report_path_trace_time(const RenderWork &render_work, const double time, bool is_cancelled)
void set_adaptive_sampling(const AdaptiveSampling &adaptive_sampling)
int start_resolution_divider_
int get_num_samples_during_navigation(const int resolution_divider) const
bool render_work_reschedule_on_converge(RenderWork &render_work)
TileManager & tile_manager_
bool work_report_reset_average(const RenderWork &render_work)
TimeWithAverage path_trace_time_
struct RenderScheduler::@077006053131071237017314311016244263147236036350 state_
bool need_schedule_cryptomatte_
void check_time_limit_reached()
int get_start_sample_to_path_trace() const
int get_num_samples_to_path_trace() const
void render_work_reschedule_on_cancel(RenderWork &render_work)
void report_work_begin(const RenderWork &render_work)
TimeWithAverage denoise_time_
void set_need_schedule_cryptomatte(bool need_schedule_cryptomatte)
void report_rebalance_time(const RenderWork &render_work, const double time, bool balance_changed)
void set_limit_samples_per_update(const int limit_samples)
RenderWork get_render_work()
RenderScheduler(TileManager &tile_manager, const SessionParams ¶ms)
struct RenderScheduler::@146133143310166245056321303046233145015120204064 first_render_time_
bool is_background() const
struct RenderWork::@177070106051306250213174355140173244160001204002 cryptomatte
struct RenderWork::@064250356066354121262303246330154012061110300354 full
struct RenderWork::@331320340123104330361132211373360025111333235041 display
struct RenderWork::@067155120346171051324345110367025055017030142003 adaptive_sampling
struct RenderWork::@130344045371243263113203224061067310112201102311 tile
struct RenderWork::@111351146173264034075366071060363172247305131001 path_trace
#define CCL_NAMESPACE_END
const ccl_global KernelWorkTile * tile
int calculate_resolution_divider_for_resolution(int width, int height, const int resolution)
int calculate_resolution_for_divider(const int width, const int height, const int resolution_divider)