Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrecht Van Lommel <brechtvanlommel@gmail.com>2018-11-30 01:30:17 +0300
committerBrecht Van Lommel <brechtvanlommel@gmail.com>2018-11-30 01:43:27 +0300
commita8b8da55672c2177c55709321df3514355b513f4 (patch)
tree97c730a1b39e60ecd15ad5c73b63892329daae1e /intern/cycles/render/session.cpp
parent8ac2d85d2fd3f8b997e9c9bddadada0dc7bdaf37 (diff)
Fix T58183: crash with CPU + GPU rendering after profiling changes.
Multi-device was not passing along profiler to the CPU.
Diffstat (limited to 'intern/cycles/render/session.cpp')
-rw-r--r--intern/cycles/render/session.cpp15
1 files changed, 8 insertions, 7 deletions
diff --git a/intern/cycles/render/session.cpp b/intern/cycles/render/session.cpp
index a8374b662d0..d6d0ffb4a6b 100644
--- a/intern/cycles/render/session.cpp
+++ b/intern/cycles/render/session.cpp
@@ -47,13 +47,14 @@ Session::Session(const SessionParams& params_)
tile_manager(params.progressive, params.samples, params.tile_size, params.start_resolution,
params.background == false || params.progressive_refine, params.background, params.tile_order,
max(params.device.multi_devices.size(), 1), params.pixel_size),
- stats()
+ stats(),
+ profiler()
{
device_use_gl = ((params.device.type != DEVICE_CPU) && !params.background);
TaskScheduler::init(params.threads);
- device = Device::create(params.device, stats, params.background);
+ device = Device::create(params.device, stats, profiler, params.background);
if(params.background && !params.write_render_cb) {
buffers = NULL;
@@ -251,7 +252,7 @@ void Session::run_gpu()
/* update scene */
scoped_timer update_timer;
if(update_scene()) {
- stats.profiler.reset(scene->shaders.size(), scene->objects.size());
+ profiler.reset(scene->shaders.size(), scene->objects.size());
}
progress.add_skip_time(update_timer, params.background);
@@ -588,7 +589,7 @@ void Session::run_cpu()
/* update scene */
scoped_timer update_timer;
if(update_scene()) {
- stats.profiler.reset(scene->shaders.size(), scene->objects.size());
+ profiler.reset(scene->shaders.size(), scene->objects.size());
}
progress.add_skip_time(update_timer, params.background);
@@ -734,7 +735,7 @@ void Session::run()
load_kernels();
if(params.use_profiling && (params.device.type == DEVICE_CPU)) {
- stats.profiler.start();
+ profiler.start();
}
/* session thread loop */
@@ -751,7 +752,7 @@ void Session::run()
run_cpu();
}
- stats.profiler.stop();
+ profiler.stop();
/* progress update */
if(progress.get_cancel())
@@ -1069,7 +1070,7 @@ void Session::collect_statistics(RenderStats *render_stats)
{
scene->collect_statistics(render_stats);
if(params.use_profiling && (params.device.type == DEVICE_CPU)) {
- render_stats->collect_profiling(scene, &stats);
+ render_stats->collect_profiling(scene, profiler);
}
}