Call glFlush after create sync 29/316629/2
authorEunki, Hong <eunkiki.hong@samsung.com>
Mon, 16 Dec 2024 07:53:33 +0000 (16:53 +0900)
committerEunki, Hong <eunkiki.hong@samsung.com>
Mon, 16 Dec 2024 09:33:09 +0000 (18:33 +0900)
It was mendentary job after call glFlush, or similar job between
create sync, and wait.

Let we call glFlush directly after create sync object.

Change-Id: Ia50a80929b6e6d33bfc299993f6513074460cfe1
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
dali/internal/graphics/gles-impl/gles-context.cpp

index a61fcc5cbe71d6558f9b3eac4f73d3e3598c57ae..d6cc867390766084c08d60fe8e8ae3d11d9ef88c 100644 (file)
@@ -908,8 +908,6 @@ void Context::EndRenderPass(GLES::TextureDependencyChecker& dependencyChecker)
     auto*              gl          = mImpl->GetGL();
     if(framebuffer && gl)
     {
-      gl->Flush();
-
       /* @todo Full dependency checking would need to store textures in Begin, and create
        * fence objects here; but we're going to draw all fbos on shared context in serial,
        * so no real need (yet). Might want to consider ensuring order of render passes,
@@ -932,6 +930,17 @@ void Context::EndRenderPass(GLES::TextureDependencyChecker& dependencyChecker)
       dependencyChecker.CreateNativeTextureSync(this);
 #endif
     }
+
+    if(DALI_LIKELY(gl) &&
+       (framebuffer
+#ifndef DALI_PROFILE_TV
+        || (dependencyChecker.GetNativeTextureCount() > 0)
+#endif
+          ))
+    {
+      // Need to call glFlush or eglSwapBuffer after create sync object.
+      gl->Flush();
+    }
   }
 }