Remove redundant context switching 13/260113/1
authorRichard Huang <r.huang@samsung.com>
Fri, 18 Jun 2021 16:01:38 +0000 (17:01 +0100)
committerRichard Huang <r.huang@samsung.com>
Fri, 18 Jun 2021 16:01:38 +0000 (17:01 +0100)
Change-Id: I1d303f949834e48e00845f3cb327eca04e71bc1e

dali/internal/adaptor/common/combined-update-render-controller.cpp
dali/internal/graphics/gles-impl/egl-graphics-controller.h

index e26e549..6e95b09 100644 (file)
@@ -696,8 +696,6 @@ void CombinedUpdateRenderController::UpdateRenderThread()
           // Collect damage rects
           mCore.PreRender(scene, mDamagedRects);
 
-          graphics.ActivateSurfaceContext(windowSurface);
-
           // Render off-screen frame buffers first if any
           mCore.RenderScene(windowRenderStatus, scene, true);
 
index be883bf..2491aba 100644 (file)
@@ -447,7 +447,14 @@ public:
    */
   void Flush()
   {
-    mGraphics->ActivateResourceContext();
+    if(!mCreateTextureQueue.empty() ||
+       !mCreateBufferQueue.empty() ||
+       !mCreateFramebufferQueue.empty() ||
+       !mTextureUpdateRequests.empty() ||
+       !mTextureMipmapGenerationRequests.empty())
+    {
+      mGraphics->ActivateResourceContext();
+    }
 
     // Process creations
     ProcessCreateQueues();