35 :
params(params_), render_scheduler_(tile_manager_,
params)
154 double total_time, render_time;
156 VLOG_INFO <<
"Rendering in main loop is done in " << render_time <<
" seconds.";
291 bool have_tiles =
true;
292 bool switched_to_new_tile =
false;
301 switched_to_new_tile =
true;
322 path_trace_->set_adaptive_sampling(adaptive_sampling);
340 switched_to_new_tile =
true;
347 if (switched_to_new_tile) {
400 if (!
pause_ && render_work) {
405 const bool no_work = !render_work;
444 return make_int2(image_width, image_height);
447 const int64_t image_area =
static_cast<int64_t>(image_width) * image_height;
453 const int64_t actual_tile_area =
static_cast<int64_t>(tile_size) * tile_size;
457 return make_int2(image_width, image_height);
477 scene->
film->get_use_approximate_shadow_catcher();
596 if (completed == 0.0) {
600 double total_time, render_time;
602 double remaining = (1.0 - (
double)completed) * (render_time / (
double)completed);
605 if (time_limit != 0.0) {
606 remaining =
min(remaining,
max(time_limit - render_time, 0.0));
637 string prefix = status;
638 if (!prefix.empty()) {
641 return prefix + suffix;
646 string status, substatus;
672 status =
"Rendering Paused";
674 else if (show_done) {
675 status =
"Rendering Done";
706 path_trace_->process_full_buffer_from_disk(filename);
typedef double(DMatrix)[4][4]
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei height
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint GLsizei width
bool use_approximate_shadow_catcher
void update_offset_stride()
bool use_transparent_background
static Device * create(const DeviceInfo &info, Stats &stats, Profiler &profiler)
virtual const string & error_message()
void update_passes(Scene *scene, bool add_sample_count_pass)
DenoiseParams get_denoise_params() const
AdaptiveSampling get_adaptive_sampling() const
static const int MAX_SAMPLES
void reset(int num_shaders, int num_objects)
int get_current_sample() const
void set_total_pixel_samples(uint64_t total_pixel_samples_)
void set_cancel(const string &cancel_message_)
string get_cancel_message() const
void get_time(double &total_time_, double &render_time_) const
void set_status(const string &status_, const string &substatus_="")
void set_error(const string &error_message_)
double get_progress() const
void set_render_start_time()
void add_finished_tile(bool denoised)
void add_skip_time(const scoped_timer &start_timer, bool only_render)
int get_rendered_tiles() const
void set_time_limit(double time_limit)
void reset_for_next_tile()
void reset(const BufferParams &buffer_params, int num_samples, int sample_offset)
double get_time_limit() const
int get_num_samples() const
void set_num_samples(int num_samples)
void set_start_sample(int start_sample)
void render_work_reschedule_on_cancel(RenderWork &render_work)
RenderWork get_render_work()
void collect_statistics(RenderStats *stats)
RenderScheduler render_scheduler_
void update_status_time(bool show_pause=false, bool show_done=false)
void set_pause(bool pause)
thread_mutex pause_mutex_
int2 get_effective_tile_size() const
void process_full_buffer_from_disk(string_view filename)
void set_display_driver(unique_ptr< DisplayDriver > driver)
void set_time_limit(double time_limit)
void cancel(bool quick=false)
thread_condition_variable pause_cond_
enum Session::@1267 session_thread_state_
bool run_wait_for_work(const RenderWork &render_work)
double get_estimated_remaining_time() const
thread_condition_variable session_thread_cond_
Session(const SessionParams ¶ms, const SceneParams &scene_params)
bool update_scene(int width, int height)
function< void(string_view)> full_buffer_written_cb
void run_main_render_loop()
thread_mutex session_thread_mutex_
BufferParams buffer_params_
RenderWork run_update_for_next_iteration()
void reset(const SessionParams &session_params, const BufferParams &buffer_params)
bool is_session_thread_rendering()
thread_mutex buffers_mutex_
void set_output_driver(unique_ptr< OutputDriver > driver)
struct Session::DelayedReset delayed_reset_
void set_samples(int samples)
unique_ptr< PathTrace > path_trace_
TileManager tile_manager_
static void init(int num_threads=0)
void set_temp_dir(const string &temp_dir)
function< void(string_view)> full_buffer_written_cb
void reset_scheduling(const BufferParams ¶ms, int2 tile_size)
int compute_render_tile_size(const int suggested_tile_size) const
bool has_multiple_tiles() const
void update(const BufferParams ¶ms, const Scene *scene)
const Tile & get_current_tile() const
int get_num_tiles() const
static const int MAX_TILE_SIZE
#define CCL_NAMESPACE_END
ccl_gpu_kernel_postfix ccl_global KernelWorkTile const int num_tiles
ccl_global const KernelWorkTile * tile
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
static string status_append(const string &status, const string &suffix)
unsigned __int64 uint64_t
CCL_NAMESPACE_BEGIN string string_printf(const char *format,...)
void set_screen_size(int width_, int height_)
void collect_profiling(Scene *scene, Profiler &prof)
bool update(Progress &progress)
vector< Shader * > shaders
vector< Object * > objects
void collect_statistics(RenderStats *stats)
SessionParams session_params
BufferParams buffer_params
std::unique_lock< std::mutex > thread_scoped_lock