Cycles: Improvements and fixes for the resumable render
- Fix wrong current sample reported in the log - Also includes fix for progressive refine log - Explicitly print to the stdout that resumable render is enabled - Print error message and abort when passing wrong values for the resumable render. Never waste someone's compute power for wrong render! Fixes T48185: Cycles resumable num chunks breaks sample counter
This commit is contained in:
parent
376c8dd95e
commit
9b48f2b27c
Notes:
blender-bot
2023-02-14 07:58:29 +01:00
Referenced by issue #48185, cycles resumable num chunks breaks sample count with negative counts
|
@ -644,7 +644,20 @@ static PyObject *set_resumable_chunks_func(PyObject * /*self*/, PyObject *args)
|
|||
if(!PyArg_ParseTuple(args, "ii",
|
||||
&num_resumable_chunks,
|
||||
¤t_resumable_chunk)) {
|
||||
return NULL;
|
||||
Py_RETURN_NONE;
|
||||
}
|
||||
|
||||
if(num_resumable_chunks <= 0) {
|
||||
fprintf(stderr, "Cycles: Bad value for number of resumable chunks.\n");
|
||||
abort();
|
||||
Py_RETURN_NONE;
|
||||
}
|
||||
if(current_resumable_chunk < 1 ||
|
||||
current_resumable_chunk > num_resumable_chunks)
|
||||
{
|
||||
fprintf(stderr, "Cycles: Bad value for current resumable chunk number.\n");
|
||||
abort();
|
||||
Py_RETURN_NONE;
|
||||
}
|
||||
|
||||
VLOG(1) << "Initialized resumable render: "
|
||||
|
@ -653,6 +666,10 @@ static PyObject *set_resumable_chunks_func(PyObject * /*self*/, PyObject *args)
|
|||
BlenderSession::num_resumable_chunks = num_resumable_chunks;
|
||||
BlenderSession::current_resumable_chunk = current_resumable_chunk;
|
||||
|
||||
printf("Cycles: Will render chunk %d of %d\n",
|
||||
current_resumable_chunk,
|
||||
num_resumable_chunks);
|
||||
|
||||
Py_RETURN_NONE;
|
||||
}
|
||||
|
||||
|
|
|
@ -831,7 +831,8 @@ void Session::update_status_time(bool show_pause, bool show_done)
|
|||
string status, substatus;
|
||||
|
||||
if(!params.progressive) {
|
||||
const int progress_sample = progress.get_sample(), num_samples = tile_manager.num_samples;
|
||||
const int progress_sample = progress.get_sample(),
|
||||
num_samples = tile_manager.get_num_effective_samples();
|
||||
const bool is_gpu = params.device.type == DEVICE_CUDA || params.device.type == DEVICE_OPENCL;
|
||||
const bool is_multidevice = params.device.multi_devices.size() > 1;
|
||||
const bool is_cpu = params.device.type == DEVICE_CPU;
|
||||
|
@ -873,7 +874,9 @@ void Session::update_status_time(bool show_pause, bool show_done)
|
|||
else if(tile_manager.num_samples == INT_MAX)
|
||||
substatus = string_printf("Path Tracing Sample %d", sample+1);
|
||||
else
|
||||
substatus = string_printf("Path Tracing Sample %d/%d", sample+1, tile_manager.num_samples);
|
||||
substatus = string_printf("Path Tracing Sample %d/%d",
|
||||
sample+1,
|
||||
tile_manager.get_num_effective_samples());
|
||||
|
||||
if(show_pause) {
|
||||
status = "Paused";
|
||||
|
|
Loading…
Reference in New Issue