diff options
Diffstat (limited to 'intern/cycles/blender/blender_session.cpp')
-rw-r--r-- | intern/cycles/blender/blender_session.cpp | 25 |
1 files changed, 19 insertions, 6 deletions
diff --git a/intern/cycles/blender/blender_session.cpp b/intern/cycles/blender/blender_session.cpp index a40ba0706b4..952410c03f4 100644 --- a/intern/cycles/blender/blender_session.cpp +++ b/intern/cycles/blender/blender_session.cpp @@ -52,15 +52,12 @@ int BlenderSession::end_resumable_chunk = 0; BlenderSession::BlenderSession(BL::RenderEngine& b_engine, BL::UserPreferences& b_userpref, BL::BlendData& b_data, - BL::Depsgraph& b_depsgraph, BL::Scene& b_scene) : b_engine(b_engine), b_userpref(b_userpref), b_data(b_data), b_render(b_engine.render()), - b_depsgraph(b_depsgraph), b_scene(b_scene), - b_view_layer(b_engine.view_layer()), b_v3d(PointerRNA_NULL), b_rv3d(PointerRNA_NULL), python_thread_state(NULL) @@ -79,7 +76,6 @@ BlenderSession::BlenderSession(BL::RenderEngine& b_engine, BlenderSession::BlenderSession(BL::RenderEngine& b_engine, BL::UserPreferences& b_userpref, BL::BlendData& b_data, - BL::Depsgraph& b_depsgraph, BL::Scene& b_scene, BL::SpaceView3D& b_v3d, BL::RegionView3D& b_rv3d, @@ -88,9 +84,7 @@ BlenderSession::BlenderSession(BL::RenderEngine& b_engine, b_userpref(b_userpref), b_data(b_data), b_render(b_scene.render()), - b_depsgraph(b_depsgraph), b_scene(b_scene), - b_view_layer(b_engine.view_layer()), b_v3d(b_v3d), b_rv3d(b_rv3d), width(width), @@ -147,6 +141,13 @@ void BlenderSession::create_session() session->scene = scene; +#if 0 + /* There is no single depsgraph to use for the entire render. + * So we need to handle this differently. + * + * We could loop over the final render result render layers in pipeline and keep Cycles unaware of multiple layers, + * or perhaps move syncing further down in the pipeline. + */ /* create sync */ sync = new BlenderSync(b_engine, b_data, b_depsgraph, b_scene, scene, !background, session->progress); BL::Object b_camera_override(b_engine.camera_override()); @@ -169,6 +170,7 @@ void BlenderSession::create_session() sync->sync_integrator(); sync->sync_camera(b_render, b_camera_override, width, height, ""); } +#endif /* set buffer parameters */ BufferParams buffer_params = BlenderSync::get_buffer_params(b_render, b_v3d, b_rv3d, scene->camera, width, height); @@ -216,6 +218,10 @@ void BlenderSession::reset_session(BL::BlendData& b_data_, BL::Scene& b_scene_) */ session->stats.mem_peak = session->stats.mem_used; +#if 0 + /* There is no single depsgraph to use for the entire render. + * See note on create_session(). + */ /* sync object should be re-created */ sync = new BlenderSync(b_engine, b_data, b_depsgraph, b_scene, scene, !background, session->progress); @@ -225,6 +231,7 @@ void BlenderSession::reset_session(BL::BlendData& b_data_, BL::Scene& b_scene_) sync->sync_view_layers(b_v3d, NULL); sync->sync_integrator(); sync->sync_camera(b_render, b_camera_override, width, height, ""); +#endif BL::SpaceView3D b_null_space_view3d(PointerRNA_NULL); BL::RegionView3D b_null_region_view3d(PointerRNA_NULL); @@ -1311,6 +1318,11 @@ bool BlenderSession::builtin_image_float_pixels(const string &builtin_name, fprintf(stderr, "Cycles error: unexpected smoke volume resolution, skipping\n"); } else { +#if 0 + /* We originally were passing view_layer here but in reality we need a whole EvaluationContext + * in the RE_point_density_minmax() function. + * Note: There is not a single EvaluationContext for the entire render. They are per RenderLayer now. + */ /* TODO(sergey): Check we're indeed in shader node tree. */ PointerRNA ptr; RNA_pointer_create(NULL, &RNA_Node, builtin_data, &ptr); @@ -1321,6 +1333,7 @@ bool BlenderSession::builtin_image_float_pixels(const string &builtin_name, int settings = background ? 1 : 0; /* 1 - render settings, 0 - vewport settings. */ b_point_density_node.calc_point_density(b_scene, b_view_layer, settings, &length, &pixels); } +#endif } return false; |