Changeset View
Changeset View
Standalone View
Standalone View
intern/cycles/integrator/render_scheduler.cpp
| Show First 20 Lines • Show All 378 Lines • ▼ Show 20 Lines | bool RenderScheduler::set_postprocess_render_work(RenderWork *render_work) | ||||
| bool any_scheduled = false; | bool any_scheduled = false; | ||||
| if (need_schedule_cryptomatte_) { | if (need_schedule_cryptomatte_) { | ||||
| render_work->cryptomatte.postprocess = true; | render_work->cryptomatte.postprocess = true; | ||||
| any_scheduled = true; | any_scheduled = true; | ||||
| } | } | ||||
| if (denoiser_params_.use && !state_.last_work_tile_was_denoised) { | if (denoiser_params_.use && !state_.last_work_tile_was_denoised) { | ||||
| render_work->tile.denoise = true; | render_work->tile.denoise = !tile_manager_.has_multiple_tiles(); | ||||
| any_scheduled = true; | any_scheduled = true; | ||||
| } | } | ||||
| if (!state_.tile_result_was_written) { | if (!state_.tile_result_was_written) { | ||||
| render_work->tile.write = true; | render_work->tile.write = true; | ||||
| any_scheduled = true; | any_scheduled = true; | ||||
| } | } | ||||
| ▲ Show 20 Lines • Show All 502 Lines • ▼ Show 20 Lines | bool RenderScheduler::work_need_denoise(bool &delayed, bool &ready_to_display) | ||||
| delayed = false; | delayed = false; | ||||
| ready_to_display = true; | ready_to_display = true; | ||||
| if (!denoiser_params_.use) { | if (!denoiser_params_.use) { | ||||
| /* Denoising is disabled, no need to scheduler work for it. */ | /* Denoising is disabled, no need to scheduler work for it. */ | ||||
| return false; | return false; | ||||
| } | } | ||||
| /* When multiple tiles are used the full frame will be denoised. | |||||
| * Avoid per-tile denoising to save up render time. */ | |||||
| if (tile_manager_.has_multiple_tiles()) { | |||||
| return false; | |||||
| } | |||||
| if (done()) { | if (done()) { | ||||
| /* Always denoise at the last sample. */ | /* Always denoise at the last sample. */ | ||||
| return true; | return true; | ||||
| } | } | ||||
| if (background_) { | if (background_) { | ||||
| /* Background render, only denoise when rendering the last sample. */ | /* Background render, only denoise when rendering the last sample. */ | ||||
| /* TODO(sergey): Follow similar logic to viewport, giving an overview of how final denoised | /* TODO(sergey): Follow similar logic to viewport, giving an overview of how final denoised | ||||
| ▲ Show 20 Lines • Show All 274 Lines • Show Last 20 Lines | |||||