[Bf-blender-cvs] [8f8e6a7c7b6] master: Fix Cycles session being (re)created twice

Patrick Mours noreply at git.blender.org
Mon Aug 26 17:14:40 CEST 2019


Commit: 8f8e6a7c7b6f0d2697509b874c8f01d4a4a90c3e
Author: Patrick Mours
Date:   Mon Aug 26 17:09:26 2019 +0200
Branches: master
https://developer.blender.org/rB8f8e6a7c7b6f0d2697509b874c8f01d4a4a90c3e

Fix Cycles session being (re)created twice

In most cases this only makes a small startup time difference, but there is
no reason to do this.

Ref D5363

===================================================================

M	intern/cycles/blender/blender_session.cpp
M	intern/cycles/blender/blender_session.h

===================================================================

diff --git a/intern/cycles/blender/blender_session.cpp b/intern/cycles/blender/blender_session.cpp
index 9a798a4f979..8923450c469 100644
--- a/intern/cycles/blender/blender_session.cpp
+++ b/intern/cycles/blender/blender_session.cpp
@@ -114,11 +114,6 @@ BlenderSession::~BlenderSession()
   free_session();
 }
 
-void BlenderSession::create()
-{
-  create_session();
-}
-
 void BlenderSession::create_session()
 {
   SessionParams session_params = BlenderSync::get_session_params(
@@ -199,8 +194,12 @@ void BlenderSession::reset_session(BL::BlendData &b_data, BL::Depsgraph &b_depsg
     height = render_resolution_y(b_render);
   }
 
-  if (session == NULL) {
-    create();
+  bool is_new_session = (session == NULL);
+  if (is_new_session) {
+    /* Initialize session and remember it was just created so not to
+     * re-create it below.
+     */
+    create_session();
   }
 
   if (b_v3d) {
@@ -219,8 +218,10 @@ void BlenderSession::reset_session(BL::BlendData &b_data, BL::Depsgraph &b_depsg
     /* if scene or session parameters changed, it's easier to simply re-create
      * them rather than trying to distinguish which settings need to be updated
      */
-    free_session();
-    create_session();
+    if (!is_new_session) {
+      free_session();
+      create_session();
+    }
     return;
   }
 
diff --git a/intern/cycles/blender/blender_session.h b/intern/cycles/blender/blender_session.h
index d57ebe76b82..7445fb53458 100644
--- a/intern/cycles/blender/blender_session.h
+++ b/intern/cycles/blender/blender_session.h
@@ -49,8 +49,6 @@ class BlenderSession {
 
   ~BlenderSession();
 
-  void create();
-
   /* session */
   void create_session();
   void free_session();



More information about the Bf-blender-cvs mailing list