Cycles: Add OptiX AI denoiser support

This patch adds support for the OptiX denoiser as an alternative to the existing NLM denoiser in Cycles. It's re-using the same denoising architecture based on tiles and therefore implicitly also works with multiple GPUs.

Reviewed By: sergey

Differential Revision: https://developer.blender.org/D6395
This commit is contained in:
Patrick Mours
2019-12-11 18:11:46 +01:00
parent f1516e007d
commit d5ca72191c
11 changed files with 504 additions and 105 deletions

View File

@@ -285,9 +285,7 @@ void Session::run_gpu()
if (progress.get_cancel())
break;
}
if (!no_tiles) {
/* buffers mutex is locked entirely while rendering each
* sample, and released/reacquired on each iteration to allow
* reset and draw in between */
@@ -978,7 +976,7 @@ void Session::update_status_time(bool show_pause, bool show_done)
*/
substatus += string_printf(", Sample %d/%d", progress.get_current_sample(), num_samples);
}
if (params.full_denoising) {
if (params.full_denoising || params.optix_denoising) {
substatus += string_printf(", Denoised %d tiles", progress.get_denoised_tiles());
}
else if (params.run_denoising) {
@@ -1038,6 +1036,7 @@ void Session::render()
task.denoising_from_render = true;
task.denoising_do_filter = params.full_denoising;
task.denoising_use_optix = params.optix_denoising;
task.denoising_write_passes = params.write_denoising_passes;
}