Blender V4.5
RenderScheduler Class Reference

#include <render_scheduler.h>

Classes

class  TimeWithAverage

Public Member Functions

 RenderScheduler (TileManager &tile_manager, const SessionParams &params)
void set_need_schedule_cryptomatte (bool need_schedule_cryptomatte)
void set_need_schedule_rebalance (bool need_schedule_rebalance)
bool is_background () const
void set_denoiser_params (const DenoiseParams &params)
bool is_denoiser_gpu_used () const
void set_adaptive_sampling (const AdaptiveSampling &adaptive_sampling)
bool is_adaptive_sampling_used () const
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_num_samples () const
int get_sample_offset () const
void set_time_limit (const double time_limit)
double get_time_limit () const
int get_rendered_sample () const
int get_num_rendered_samples () const
void reset (const BufferParams &buffer_params)
void reset_for_next_tile ()
bool render_work_reschedule_on_converge (RenderWork &render_work)
bool render_work_reschedule_on_idle (RenderWork &render_work)
void render_work_reschedule_on_cancel (RenderWork &render_work)
RenderWork get_render_work ()
void report_work_begin (const RenderWork &render_work)
void report_path_trace_time (const RenderWork &render_work, const double time, bool is_cancelled)
void report_path_trace_occupancy (const RenderWork &render_work, const float occupancy)
void report_adaptive_filter_time (const RenderWork &render_work, const double time, bool is_cancelled)
void report_denoise_time (const RenderWork &render_work, const double time)
void report_display_update_time (const RenderWork &render_work, const double time)
void report_rebalance_time (const RenderWork &render_work, const double time, bool balance_changed)
string full_report () const
void set_limit_samples_per_update (const int limit_samples)

Protected Member Functions

bool done () const
void update_state_for_render_work (const RenderWork &render_work)
bool set_postprocess_render_work (RenderWork *render_work)
void set_full_frame_render_work (RenderWork *render_work)
void update_start_resolution_divider ()
double guess_viewport_navigation_update_interval_in_seconds () const
bool is_denoise_active_during_update () const
double guess_display_update_interval_in_seconds () const
double guess_display_update_interval_in_seconds_for_num_samples (const int num_rendered_samples) const
double guess_display_update_interval_in_seconds_for_num_samples_no_limit (int num_rendered_samples) const
int calculate_num_samples_per_update () const
int get_start_sample_to_path_trace () const
int get_num_samples_to_path_trace () const
int get_num_samples_during_navigation (const int resolution_divider) const
bool work_need_adaptive_filter () const
float work_adaptive_threshold () const
bool work_need_denoise (bool &delayed, bool &ready_to_display)
bool work_need_update_display (const bool denoiser_delayed)
bool work_need_rebalance ()
bool work_is_usable_for_first_render_estimation (const RenderWork &render_work)
bool work_report_reset_average (const RenderWork &render_work)
void check_time_limit_reached ()
int calculate_resolution_divider_for_time (const double desired_time, const double actual_time)

Protected Attributes

struct RenderScheduler:: { ... }  state_
struct RenderScheduler:: { ... }  first_render_time_
TimeWithAverage path_trace_time_
TimeWithAverage adaptive_filter_time_
TimeWithAverage denoise_time_
TimeWithAverage display_update_time_
TimeWithAverage rebalance_time_
bool need_schedule_cryptomatte_ = false
bool need_schedule_rebalance_works_ = false
int sample_offset_ = 0
int num_samples_ = 0
double time_limit_ = 0.0
bool headless_
bool background_
int pixel_size_ = 1
TileManagertile_manager_
BufferParams buffer_params_
DenoiseParams denoiser_params_
AdaptiveSampling adaptive_sampling_
bool use_progressive_noise_floor_ = false
int default_start_resolution_divider_ = 1
int start_resolution_divider_ = 0
int limit_samples_per_update_ = 0

Detailed Description

Definition at line 90 of file render_scheduler.h.

Constructor & Destructor Documentation

◆ RenderScheduler()

CCL_NAMESPACE_BEGIN RenderScheduler::RenderScheduler ( TileManager & tile_manager,
const SessionParams & params )

Member Function Documentation

◆ calculate_num_samples_per_update()

int RenderScheduler::calculate_num_samples_per_update ( ) const
protected

◆ calculate_resolution_divider_for_time()

int RenderScheduler::calculate_resolution_divider_for_time ( const double desired_time,
const double actual_time )
protected

◆ check_time_limit_reached()

void RenderScheduler::check_time_limit_reached ( )
protected

Definition at line 1201 of file render_scheduler.cpp.

References state_, time_dt(), and time_limit_.

Referenced by get_render_work().

◆ done()

bool RenderScheduler::done ( ) const
protected

◆ full_report()

◆ get_num_rendered_samples()

◆ get_num_samples()

int RenderScheduler::get_num_samples ( ) const

Definition at line 86 of file render_scheduler.cpp.

References num_samples_.

Referenced by Session::update_status_time().

◆ get_num_samples_during_navigation()

int RenderScheduler::get_num_samples_during_navigation ( const int resolution_divider) const
protected

◆ get_num_samples_to_path_trace()

◆ get_render_work()

◆ get_rendered_sample()

int RenderScheduler::get_rendered_sample ( ) const

Definition at line 106 of file render_scheduler.cpp.

References DCHECK_GT, and get_num_rendered_samples().

Referenced by work_need_adaptive_filter().

◆ get_sample_offset()

int RenderScheduler::get_sample_offset ( ) const

Definition at line 91 of file render_scheduler.cpp.

References sample_offset_.

Referenced by get_render_work(), and report_work_begin().

◆ get_start_sample_to_path_trace()

int RenderScheduler::get_start_sample_to_path_trace ( ) const
protected

Definition at line 787 of file render_scheduler.cpp.

References sample_offset_, and state_.

Referenced by get_num_samples_to_path_trace(), and get_render_work().

◆ get_time_limit()

double RenderScheduler::get_time_limit ( ) const

Definition at line 101 of file render_scheduler.cpp.

References time_limit_.

Referenced by Session::get_estimated_remaining_time().

◆ guess_display_update_interval_in_seconds()

double RenderScheduler::guess_display_update_interval_in_seconds ( ) const
protected

◆ guess_display_update_interval_in_seconds_for_num_samples()

double RenderScheduler::guess_display_update_interval_in_seconds_for_num_samples ( const int num_rendered_samples) const
protected

◆ guess_display_update_interval_in_seconds_for_num_samples_no_limit()

double RenderScheduler::guess_display_update_interval_in_seconds_for_num_samples_no_limit ( int num_rendered_samples) const
protected

◆ guess_viewport_navigation_update_interval_in_seconds()

double RenderScheduler::guess_viewport_navigation_update_interval_in_seconds ( ) const
protected

Definition at line 1150 of file render_scheduler.cpp.

References is_denoise_active_during_update().

Referenced by update_start_resolution_divider().

◆ is_adaptive_sampling_used()

bool RenderScheduler::is_adaptive_sampling_used ( ) const

Definition at line 66 of file render_scheduler.cpp.

References adaptive_sampling_, and AdaptiveSampling::use.

◆ is_background()

bool RenderScheduler::is_background ( ) const

Definition at line 41 of file render_scheduler.cpp.

References background_.

◆ is_denoise_active_during_update()

bool RenderScheduler::is_denoise_active_during_update ( ) const
protected

◆ is_denoiser_gpu_used()

bool RenderScheduler::is_denoiser_gpu_used ( ) const

◆ render_work_reschedule_on_cancel()

void RenderScheduler::render_work_reschedule_on_cancel ( RenderWork & render_work)

◆ render_work_reschedule_on_converge()

bool RenderScheduler::render_work_reschedule_on_converge ( RenderWork & render_work)

◆ render_work_reschedule_on_idle()

◆ report_adaptive_filter_time()

◆ report_denoise_time()

◆ report_display_update_time()

◆ report_path_trace_occupancy()

void RenderScheduler::report_path_trace_occupancy ( const RenderWork & render_work,
const float occupancy )

Definition at line 501 of file render_scheduler.cpp.

References RenderWork::path_trace, state_, and VLOG_WORK.

Referenced by PathTrace::path_trace().

◆ report_path_trace_time()

◆ report_rebalance_time()

◆ report_work_begin()

void RenderScheduler::report_work_begin ( const RenderWork & render_work)

◆ reset()

◆ reset_for_next_tile()

void RenderScheduler::reset_for_next_tile ( )

Definition at line 174 of file render_scheduler.cpp.

References buffer_params_, and reset().

Referenced by Session::run_update_for_next_iteration().

◆ set_adaptive_sampling()

void RenderScheduler::set_adaptive_sampling ( const AdaptiveSampling & adaptive_sampling)

Definition at line 61 of file render_scheduler.cpp.

References adaptive_sampling_.

Referenced by PathTrace::set_adaptive_sampling().

◆ set_denoiser_params()

void RenderScheduler::set_denoiser_params ( const DenoiseParams & params)

Definition at line 46 of file render_scheduler.cpp.

References denoiser_params_.

Referenced by PathTrace::set_denoiser_params().

◆ set_full_frame_render_work()

void RenderScheduler::set_full_frame_render_work ( RenderWork * render_work)
protected

◆ set_limit_samples_per_update()

void RenderScheduler::set_limit_samples_per_update ( const int limit_samples)

Definition at line 56 of file render_scheduler.cpp.

References limit_samples_per_update_.

Referenced by PathTrace::guiding_prepare_structures().

◆ set_need_schedule_cryptomatte()

void RenderScheduler::set_need_schedule_cryptomatte ( bool need_schedule_cryptomatte)

Definition at line 31 of file render_scheduler.cpp.

References need_schedule_cryptomatte_.

Referenced by PathTrace::render_pipeline().

◆ set_need_schedule_rebalance()

void RenderScheduler::set_need_schedule_rebalance ( bool need_schedule_rebalance)

Definition at line 36 of file render_scheduler.cpp.

References need_schedule_rebalance_works_.

Referenced by PathTrace::PathTrace().

◆ set_postprocess_render_work()

bool RenderScheduler::set_postprocess_render_work ( RenderWork * render_work)
protected

◆ set_sample_params()

void RenderScheduler::set_sample_params ( const int num_samples,
const bool use_sample_subset,
const int sample_subset_offset,
const int sample_subset_length )

◆ set_time_limit()

void RenderScheduler::set_time_limit ( const double time_limit)

Definition at line 96 of file render_scheduler.cpp.

References time_limit_.

Referenced by Session::run_update_for_next_iteration().

◆ update_start_resolution_divider()

◆ update_state_for_render_work()

void RenderScheduler::update_state_for_render_work ( const RenderWork & render_work)
protected

◆ work_adaptive_threshold()

float RenderScheduler::work_adaptive_threshold ( ) const
protected

◆ work_is_usable_for_first_render_estimation()

bool RenderScheduler::work_is_usable_for_first_render_estimation ( const RenderWork & render_work)
protected

◆ work_need_adaptive_filter()

bool RenderScheduler::work_need_adaptive_filter ( ) const
protected

◆ work_need_denoise()

◆ work_need_rebalance()

bool RenderScheduler::work_need_rebalance ( )
protected

Definition at line 1068 of file render_scheduler.cpp.

References need_schedule_rebalance_works_, pixel_size_, state_, and time_dt().

Referenced by get_render_work().

◆ work_need_update_display()

bool RenderScheduler::work_need_update_display ( const bool denoiser_delayed)
protected

◆ work_report_reset_average()

bool RenderScheduler::work_report_reset_average ( const RenderWork & render_work)
protected

Member Data Documentation

◆ adaptive_filter_time_

TimeWithAverage RenderScheduler::adaptive_filter_time_
protected

Definition at line 434 of file render_scheduler.h.

Referenced by full_report(), report_adaptive_filter_time(), and reset().

◆ adaptive_sampling_

◆ background_

◆ buffer_params_

BufferParams RenderScheduler::buffer_params_
protected

◆ default_start_resolution_divider_

int RenderScheduler::default_start_resolution_divider_ = 1
protected

◆ denoise_time_

TimeWithAverage RenderScheduler::denoise_time_
protected

Definition at line 435 of file render_scheduler.h.

Referenced by full_report(), report_denoise_time(), and reset().

◆ denoiser_params_

◆ display_update_time_

TimeWithAverage RenderScheduler::display_update_time_
protected

Definition at line 436 of file render_scheduler.h.

Referenced by full_report(), report_display_update_time(), and reset().

◆ first_render_time_

struct { ... } RenderScheduler::first_render_time_

◆ headless_

◆ limit_samples_per_update_

int RenderScheduler::limit_samples_per_update_ = 0
protected

◆ need_schedule_cryptomatte_

bool RenderScheduler::need_schedule_cryptomatte_ = false
protected

◆ need_schedule_rebalance_works_

bool RenderScheduler::need_schedule_rebalance_works_ = false
protected

Definition at line 446 of file render_scheduler.h.

Referenced by set_need_schedule_rebalance(), and work_need_rebalance().

◆ num_samples_

int RenderScheduler::num_samples_ = 0
protected

◆ path_trace_time_

◆ pixel_size_

◆ rebalance_time_

TimeWithAverage RenderScheduler::rebalance_time_
protected

Definition at line 437 of file render_scheduler.h.

Referenced by full_report(), report_rebalance_time(), and reset().

◆ sample_offset_

◆ start_resolution_divider_

int RenderScheduler::start_resolution_divider_ = 0
protected

Definition at line 484 of file render_scheduler.h.

Referenced by reset(), and update_start_resolution_divider().

◆ state_

◆ tile_manager_

TileManager& RenderScheduler::tile_manager_
protected

◆ time_limit_

◆ use_progressive_noise_floor_

bool RenderScheduler::use_progressive_noise_floor_ = false
protected

The documentation for this class was generated from the following files: