|
Blender V4.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 |
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 36 of file session/tile.h.
| TileManager::TileManager | ( | ) |
Definition at line 310 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 323 of file session/tile.cpp.
|
delete |
|
deletenoexcept |
|
protected |
Definition at line 476 of file session/tile.cpp.
References LOG, VLOG_WORK, and write_state_.
Referenced by finish_write_tiles(), and reset_scheduling().
Definition at line 325 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 390 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 579 of file session/tile.cpp.
References buffer_params_, close_tile_output(), 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_, int2::x, KernelWorkTile::x, int2::y, and KernelWorkTile::y.
Referenced by PathTrace::finalize_full_buffer_on_disk().
| const Tile & TileManager::get_current_tile | ( | ) | const |
Definition at line 436 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 62 of file session/tile.h.
References tile_state_.
Referenced by Session::do_delayed_reset(), Session::get_estimated_remaining_time(), and Session::update_status_time().
| const int2 TileManager::get_size | ( | ) | const |
Definition at line 441 of file session/tile.cpp.
References buffer_params_, BufferParams::height, make_int2(), and BufferParams::width.
Referenced by PathTrace::get_render_size().
Definition at line 408 of file session/tile.cpp.
References buffer_params_, BufferParams::height, max, min, overscan_, tile, tile_size_, tile_state_, BufferParams::width, int2::x, KernelWorkTile::x, int2::y, and KernelWorkTile::y.
Referenced by finish_write_tiles(), and next().
|
inline |
Definition at line 72 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 67 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 95 of file session/tile.h.
References write_state_.
Referenced by PathTrace::finalize_full_buffer_on_disk().
| bool TileManager::next | ( | ) |
Definition at line 395 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 446 of file session/tile.cpp.
References 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 629 of file session/tile.cpp.
References ATTR_DENOISE_SOCKET_PREFIX, buffer_params_from_image_spec_atttributes(), buffers, filename, image_spec, LOG, and node_from_image_spec_atttributes().
Referenced by PathTrace::process_full_buffer_from_disk().
| void TileManager::reset_scheduling | ( | const BufferParams & | params, |
| int2 | tile_size ) |
Definition at line 336 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 385 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 353 of file session/tile.cpp.
References ATTR_DENOISE_SOCKET_PREFIX, buffer_params_, configure_image_spec_from_buffer(), DCHECK_NE, has_multiple_tiles(), node_to_image_spec_atttributes(), overscan_, params, tile_size_, AdaptiveSampling::use, and write_state_.
Referenced by Session::do_delayed_reset().
| bool TileManager::write_tile | ( | const RenderBuffers & | tile_buffers | ) |
Definition at line 495 of file session/tile.cpp.
References RenderBuffers::buffer, buffer_params_, device_vector< T >::data(), DCHECK_EQ, float, BufferParams::full_x, BufferParams::full_y, BufferParams::height, LOG, open_tile_output(), RenderBuffers::params, 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 138 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 148 of file session/tile.h.
| string TileManager::filename |
Definition at line 159 of file session/tile.h.
Referenced by read_full_buffer_from_disk().
| function<void(string_view)> TileManager::full_buffer_written_cb |
Definition at line 39 of file session/tile.h.
Referenced by finish_write_tiles(), and Session::Session().
| ImageSpec TileManager::image_spec |
Definition at line 166 of file session/tile.h.
Referenced by read_full_buffer_from_disk().
|
static |
Definition at line 111 of file session/tile.h.
Referenced by compute_render_tile_size(), and configure_image_spec_from_buffer().
|
static |
Definition at line 117 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 146 of file session/tile.h.
| int TileManager::num_tiles = 0 |
Definition at line 144 of file session/tile.h.
| int TileManager::num_tiles_written = 0 |
Definition at line 174 of file session/tile.h.
| int TileManager::num_tiles_x = 0 |
Definition at line 142 of file session/tile.h.
| int TileManager::num_tiles_y = 0 |
Definition at line 143 of file session/tile.h.
|
protected |
Definition at line 136 of file session/tile.h.
Referenced by get_tile_for_index(), get_tile_overscan(), and update().
|
protected |
Definition at line 127 of file session/tile.h.
Referenced by open_tile_output(), and set_temp_dir().
| int TileManager::tile_file_index = 0 |
Definition at line 157 of file session/tile.h.
|
protected |
Definition at line 131 of file session/tile.h.
Referenced by open_tile_output(), and TileManager().
| unique_ptr<ImageOutput> TileManager::tile_out |
Definition at line 172 of file session/tile.h.
Definition at line 133 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().