Revert "[Tizen] Fix svace - Assert if RenderItem.mNode is nullptr + Print log if...
authoreverLEEst(SangHyeon Lee) <sh10233.lee@samsung.com>
Thu, 17 Apr 2025 06:11:49 +0000 (15:11 +0900)
committereverLEEst(SangHyeon Lee) <sh10233.lee@samsung.com>
Thu, 17 Apr 2025 06:11:49 +0000 (15:11 +0900)
This reverts commit 1ebe063e9e5d9e122bd3beceb53073e5e79198f9.

automated-tests/src/dali-internal/utc-Dali-Internal-Core.cpp
dali/internal/render/common/render-manager.cpp

index 230389a8a3d8a82db2742c1fb1b13aa8d8aeaad9..8791c40f7353aae4d7414dea7832d6f561bfddef 100644 (file)
@@ -250,79 +250,6 @@ int UtcDaliCoreClearScene(void)
   END_TEST;
 }
 
-int UtcDaliCoreRemoveSceneObjectAndClearSceneN(void)
-{
-  TestApplication application;
-  tet_infoline("Testing Dali::Integration::Core::ClearScene with scene object removed scene");
-
-  application.GetScene().SetBackgroundColor(Color::MAGENTA);
-
-  // Dummy rendering several frames.
-  application.SendNotification();
-  application.Render();
-  application.SendNotification();
-  application.Render();
-
-  Dali::Integration::Scene newScene = Dali::Integration::Scene::New(Size(480.0f, 800.0f));
-  DALI_TEST_CHECK(newScene);
-  application.AddScene(newScene);
-
-  // Dummy rendering several frames.
-  application.SendNotification();
-  application.Render();
-  application.SendNotification();
-  application.Render();
-
-  TestGraphicsController& controller = application.GetGraphicsController();
-  auto&                   cmdTrace   = controller.mCommandBufferCallStack;
-
-  cmdTrace.Enable(true);
-  cmdTrace.EnableLogging(true);
-
-  cmdTrace.Reset();
-
-  DALI_TEST_CHECK(!cmdTrace.FindMethod("BeginRenderPass"));
-
-  auto& core = application.GetCore();
-
-  // Create BeginRenderPass both scenes
-  core.ClearScene(newScene);
-  DALI_TEST_CHECK(cmdTrace.FindMethod("BeginRenderPass"));
-  cmdTrace.Reset();
-
-  core.ClearScene(application.GetScene());
-  DALI_TEST_CHECK(cmdTrace.FindMethod("BeginRenderPass"));
-
-  // Dummy rendering several frames.
-  application.SendNotification();
-  application.Render();
-  application.SendNotification();
-  application.Render();
-
-  cmdTrace.Reset();
-
-  newScene.RemoveSceneObject(); // Scene's scene graph lifecycle is NOT managed by scene handle
-
-  DALI_TEST_CHECK(!cmdTrace.FindMethod("BeginRenderPass"));
-
-  // Do not create BeginRenderPass for invalid scene
-  core.ClearScene(newScene);
-  DALI_TEST_CHECK(!cmdTrace.FindMethod("BeginRenderPass"));
-
-  core.ClearScene(application.GetScene());
-  DALI_TEST_CHECK(cmdTrace.FindMethod("BeginRenderPass"));
-
-  cmdTrace.Reset();
-
-  newScene.Discard();
-  newScene.Reset();
-
-  application.SendNotification();
-  application.Render(0);
-
-  END_TEST;
-}
-
 int UtcDaliCoreClearSceneN(void)
 {
   TestApplication application;
index 367777c3ced045f2ac64f297708c89d7be2d70b9..a4ee9ba28635d4f3d3e5def15406c4ed380f6611 100644 (file)
@@ -687,7 +687,6 @@ void RenderManager::PreRenderScene(Integration::Scene& scene, Integration::Scene
   if(!sceneObject)
   {
     // May not be a scene object if the window is being removed.
-    DALI_LOG_ERROR("Scene was empty handle. Skip PreRenderScene\n");
     return;
   }
 
@@ -712,10 +711,17 @@ void RenderManager::PreRenderScene(Integration::Scene& scene, Integration::Scene
     return;
   }
 
-  if(sceneObject->IsRenderingSkipped())
+  if(!sceneObject || sceneObject->IsRenderingSkipped())
   {
     // We don't need to calculate dirty rects
-    DALI_LOG_RELEASE_INFO("RenderingSkipped was set true. Skip pre-rendering\n");
+    if(!sceneObject)
+    {
+      DALI_LOG_ERROR("Scene was empty handle. Skip pre-rendering\n");
+    }
+    else
+    {
+      DALI_LOG_RELEASE_INFO("RenderingSkipped was set true. Skip pre-rendering\n");
+    }
     return;
   }
 
@@ -842,9 +848,6 @@ void RenderManager::PreRenderScene(Integration::Scene& scene, Integration::Scene
             {
               RenderItem& item = renderList->GetItem(listIndex);
 
-              // For now, we don't allow to rendering nodeless renderer.
-              DALI_ASSERT_DEBUG(item.mNode && "RenderItem should have node!");
-
               // Get NodeInformation as const l-value, to reduce memory access operations.
               const SceneGraph::PartialRenderingData::NodeInfomations& nodeInfo = item.GetPartialRenderingDataNodeInfomations();
 
@@ -874,7 +877,8 @@ void RenderManager::PreRenderScene(Integration::Scene& scene, Integration::Scene
               DirtyRectKey dirtyRectKey(item.mNode, item.mRenderer);
               // If the item refers to updated node or renderer.
               if(item.mIsUpdated ||
-                 (item.mNode->Updated() || (item.mRenderer && item.mRenderer->Updated())))
+                 (item.mNode &&
+                  (item.mNode->Updated() || (item.mRenderer && item.mRenderer->Updated()))))
               {
                 item.mIsUpdated = false; /// DevNote : Reset flag here, since RenderItem could be reused by renderList.ReuseCachedItems().
 
@@ -1393,7 +1397,6 @@ void RenderManager::ClearScene(Integration::Scene scene)
   SceneGraph::Scene* sceneObject   = sceneInternal.GetSceneObject();
   if(!sceneObject)
   {
-    DALI_LOG_ERROR("Scene was empty handle. Skip ClearScene\n");
     return;
   }