Blender
V3.3
|
#include <tile.h>
Public Member Functions | |
TileManager () | |
~TileManager () | |
TileManager (const TileManager &other)=delete | |
TileManager (TileManager &&other) noexcept=delete | |
TileManager & | operator= (const TileManager &other)=delete |
TileManager & | operator= (TileManager &&other)=delete |
void | reset_scheduling (const BufferParams ¶ms, int2 tile_size) |
void | update (const BufferParams ¶ms, const Scene *scene) |
void | set_temp_dir (const string &temp_dir) |
int | get_num_tiles () const |
bool | has_multiple_tiles () const |
int | get_tile_overscan () const |
bool | next () |
bool | done () |
const Tile & | get_current_tile () const |
const int2 | get_size () const |
bool | write_tile (const RenderBuffers &tile_buffers) |
void | finish_write_tiles () |
bool | has_written_tiles () const |
bool | read_full_buffer_from_disk (string_view filename, RenderBuffers *buffers, DenoiseParams *denoise_params) |
int | compute_render_tile_size (const int suggested_tile_size) const |
Public Attributes | |
function< void(string_view)> | full_buffer_written_cb |
int | num_tiles_x = 0 |
int | num_tiles_y = 0 |
int | num_tiles = 0 |
int | next_tile_index |
Tile | current_tile |
int | tile_file_index = 0 |
string | filename |
ImageSpec | image_spec |
unique_ptr< ImageOutput > | tile_out |
int | num_tiles_written = 0 |
Static Public Attributes | |
static const int | IMAGE_TILE_SIZE = 128 |
static const int | MAX_TILE_SIZE = 8192 |
Protected Member Functions | |
Tile | get_tile_for_index (int index) const |
bool | open_tile_output () |
bool | close_tile_output () |
Protected Attributes | |
string | temp_dir_ |
string | tile_file_unique_part_ |
int2 | tile_size_ = make_int2(0, 0) |
int | overscan_ = 0 |
BufferParams | buffer_params_ |
struct { | |
int num_tiles_x = 0 | |
int num_tiles_y = 0 | |
int num_tiles = 0 | |
int next_tile_index | |
Tile current_tile | |
} | tile_state_ |
struct { | |
int tile_file_index = 0 | |
string filename | |
ImageSpec image_spec | |
unique_ptr< ImageOutput > tile_out | |
int num_tiles_written = 0 | |
} | write_state_ |
Definition at line 37 of file session/tile.h.
TileManager::TileManager | ( | ) |
Definition at line 309 of file session/tile.cpp.
References g_instance_index, system_self_process_id(), tile_file_unique_part_, and to_string().
TileManager::~TileManager | ( | ) |
Definition at line 322 of file session/tile.cpp.
|
delete |
|
deletenoexcept |
|
protected |
Definition at line 477 of file session/tile.cpp.
References LOG, VLOG_WORK, and write_state_.
Referenced by finish_write_tiles(), and reset_scheduling().
int TileManager::compute_render_tile_size | ( | const int | suggested_tile_size | ) | const |
Definition at line 326 of file session/tile.cpp.
References align_up(), IMAGE_TILE_SIZE, MAX_TILE_SIZE, and min.
Referenced by Session::get_effective_tile_size().
bool TileManager::done | ( | ) |
Definition at line 391 of file session/tile.cpp.
References tile_state_.
Referenced by next(), and RenderScheduler::set_full_frame_render_work().
void TileManager::finish_write_tiles | ( | ) |
Definition at line 578 of file session/tile.cpp.
References buffer_params_, close_tile_output(), FLOAT, full_buffer_written_cb, get_tile_for_index(), BufferParams::pass_stride, path_file_size(), string_human_readable_number(), tile, tile_index, tile_size_, tile_state_, VLOG_WORK, write_state_, KernelWorkTile::x, int2::x, KernelWorkTile::y, and int2::y.
Referenced by PathTrace::finalize_full_buffer_on_disk().
const Tile & TileManager::get_current_tile | ( | ) | const |
Definition at line 437 of file session/tile.cpp.
References tile_state_.
Referenced by PathTrace::get_render_tile_offset(), PathTrace::get_render_tile_size(), and Session::run_update_for_next_iteration().
|
inline |
Definition at line 63 of file session/tile.h.
References tile_state_.
Referenced by Session::update_status_time().
const int2 TileManager::get_size | ( | ) | const |
Definition at line 442 of file session/tile.cpp.
References buffer_params_, BufferParams::height, make_int2, and BufferParams::width.
Referenced by PathTrace::get_render_size().
|
protected |
Definition at line 409 of file session/tile.cpp.
References buffer_params_, BufferParams::height, max, min, overscan_, tile, tile_size_, tile_state_, BufferParams::width, KernelWorkTile::x, int2::x, KernelWorkTile::y, and int2::y.
Referenced by finish_write_tiles(), and next().
|
inline |
Definition at line 73 of file session/tile.h.
References overscan_.
Referenced by PathTrace::update_allocated_work_buffer_params(), and PathTrace::update_effective_work_buffer_params().
|
inline |
Definition at line 68 of file session/tile.h.
References tile_state_.
Referenced by Session::do_delayed_reset(), RenderScheduler::set_full_frame_render_work(), RenderScheduler::set_postprocess_render_work(), update(), Session::update_status_time(), RenderScheduler::work_need_denoise(), and PathTrace::write_tile_buffer().
|
inline |
Definition at line 96 of file session/tile.h.
References write_state_.
Referenced by PathTrace::finalize_full_buffer_on_disk().
bool TileManager::next | ( | ) |
Definition at line 396 of file session/tile.cpp.
References done(), get_tile_for_index(), and tile_state_.
Referenced by Session::run_update_for_next_iteration().
|
protected |
Definition at line 447 of file session/tile.cpp.
References blender::bke::idprop::create(), LOG, path_join(), temp_dir_, tile_file_unique_part_, to_string(), VLOG_WORK, and write_state_.
Referenced by write_tile().
|
delete |
|
delete |
bool TileManager::read_full_buffer_from_disk | ( | string_view | filename, |
RenderBuffers * | buffers, | ||
DenoiseParams * | denoise_params | ||
) |
Definition at line 627 of file session/tile.cpp.
References ATTR_DENOISE_SOCKET_PREFIX, RenderBuffers::buffer, buffer_params_from_image_spec_atttributes(), device_vector< T >::data(), filename, FLOAT, image_spec, LOG, node_from_image_spec_atttributes(), and RenderBuffers::reset().
Referenced by PathTrace::process_full_buffer_from_disk().
void TileManager::reset_scheduling | ( | const BufferParams & | params, |
int2 | tile_size | ||
) |
Definition at line 337 of file session/tile.cpp.
References close_tile_output(), divide_up(), params, tile_size_, tile_state_, VLOG_WORK, int2::x, and int2::y.
Referenced by Session::do_delayed_reset().
void TileManager::set_temp_dir | ( | const string & | temp_dir | ) |
Definition at line 386 of file session/tile.cpp.
References temp_dir_.
Referenced by Session::do_delayed_reset().
void TileManager::update | ( | const BufferParams & | params, |
const Scene * | scene | ||
) |
Definition at line 354 of file session/tile.cpp.
References ATTR_DENOISE_SOCKET_PREFIX, Scene::bake_manager, buffer_params_, configure_image_spec_from_buffer(), DCHECK_NE, Integrator::get_adaptive_sampling(), BakeManager::get_baking(), Integrator::get_denoise_params(), has_multiple_tiles(), Scene::integrator, node_to_image_spec_atttributes(), overscan_, params, scene, tile_size_, AdaptiveSampling::use, and write_state_.
Referenced by Session::do_delayed_reset().
bool TileManager::write_tile | ( | const RenderBuffers & | tile_buffers | ) |
Definition at line 496 of file session/tile.cpp.
References RenderBuffers::buffer, buffer_params_, device_vector< T >::data(), DCHECK_EQ, FLOAT, float(), BufferParams::full_x, BufferParams::full_y, BufferParams::height, LOG, open_tile_output(), RenderBuffers::params, pass_stride, BufferParams::pass_stride, time_dt(), VLOG_WORK, BufferParams::width, BufferParams::window_height, BufferParams::window_width, BufferParams::window_x, BufferParams::window_y, and write_state_.
Referenced by PathTrace::tile_buffer_write_to_disk().
|
protected |
Definition at line 139 of file session/tile.h.
Referenced by finish_write_tiles(), get_size(), get_tile_for_index(), update(), and write_tile().
Tile TileManager::current_tile |
Definition at line 149 of file session/tile.h.
string TileManager::filename |
Definition at line 160 of file session/tile.h.
Referenced by read_full_buffer_from_disk().
function<void(string_view)> TileManager::full_buffer_written_cb |
Definition at line 40 of file session/tile.h.
Referenced by finish_write_tiles(), and Session::Session().
ImageSpec TileManager::image_spec |
Definition at line 167 of file session/tile.h.
Referenced by read_full_buffer_from_disk().
|
static |
Definition at line 112 of file session/tile.h.
Referenced by compute_render_tile_size(), and configure_image_spec_from_buffer().
|
static |
Definition at line 118 of file session/tile.h.
Referenced by compute_render_tile_size(), and Session::get_effective_tile_size().
int TileManager::next_tile_index |
Definition at line 147 of file session/tile.h.
int TileManager::num_tiles = 0 |
Definition at line 145 of file session/tile.h.
int TileManager::num_tiles_written = 0 |
Definition at line 175 of file session/tile.h.
int TileManager::num_tiles_x = 0 |
Definition at line 143 of file session/tile.h.
int TileManager::num_tiles_y = 0 |
Definition at line 144 of file session/tile.h.
|
protected |
Definition at line 137 of file session/tile.h.
Referenced by get_tile_for_index(), get_tile_overscan(), and update().
|
protected |
Definition at line 128 of file session/tile.h.
Referenced by open_tile_output(), and set_temp_dir().
int TileManager::tile_file_index = 0 |
Definition at line 158 of file session/tile.h.
|
protected |
Definition at line 132 of file session/tile.h.
Referenced by open_tile_output(), and TileManager().
unique_ptr<ImageOutput> TileManager::tile_out |
Definition at line 173 of file session/tile.h.
Definition at line 134 of file session/tile.h.
Referenced by finish_write_tiles(), get_tile_for_index(), reset_scheduling(), and update().
struct { ... } TileManager::tile_state_ |
Referenced by done(), finish_write_tiles(), get_current_tile(), get_num_tiles(), get_tile_for_index(), has_multiple_tiles(), next(), and reset_scheduling().
struct { ... } TileManager::write_state_ |
Referenced by close_tile_output(), finish_write_tiles(), has_written_tiles(), open_tile_output(), update(), and write_tile().