Changed FBOs to use EglSync 55/305855/9
authorDavid Steele <david.steele@samsung.com>
Wed, 7 Feb 2024 11:46:13 +0000 (11:46 +0000)
committerDavid Steele <david.steele@samsung.com>
Wed, 14 Feb 2024 17:14:04 +0000 (17:14 +0000)
commit0665ed55e794412628e26a23ad6b587fe6c18102
tree4ee40b24a86e97222c1e63130a725c9cbbaf2d50
parent51495fdf6ea9d04e385368b694d6c43f6b4c6a60
Changed FBOs to use EglSync

For texture dependencies between shared context and render surface
context (i.e. Window/Scene surface), e.g. when an offscreen is
rendered on-screen, have changed to use EglClientWaitSync with
timeout = FOREVER.

This blocks the CPU when sending draw calls to the GPU where
that draw call uses an offscreen texture. However, in testing
gaussian-blur-view.example, this lasts approx 10ms on some frames
and 16/17 ms on others, yielding an FPS of 41.

Changed egl-sync-implementation.cpp to have multiple versions
of the file for each platform, rather than old-style #ifdefs.

(Todo: could check if the offscreen was re-rendered this frame, as
there is no need to sync if it hasn't changed. But, client can use
RENDER_ONCE to force this behaviour).

Change-Id: I64eaf82c5203e6acb6e0fc76b0f0e36136defcdf
20 files changed:
automated-tests/src/dali-adaptor/dali-test-suite-utils/test-graphics-sync-impl.cpp
automated-tests/src/dali-adaptor/dali-test-suite-utils/test-graphics-sync-impl.h
automated-tests/src/dali-adaptor/dali-test-suite-utils/test-graphics-sync-object.h
dali/internal/graphics/android/egl-sync-implementation-android.cpp [new file with mode: 0644]
dali/internal/graphics/common/egl-include.h
dali/internal/graphics/file.list
dali/internal/graphics/generic/egl-sync-implementation.cpp [new file with mode: 0644]
dali/internal/graphics/gles-impl/egl-sync-object.cpp
dali/internal/graphics/gles-impl/egl-sync-object.h
dali/internal/graphics/gles-impl/gles-context.cpp
dali/internal/graphics/gles-impl/gles-sync-object.cpp
dali/internal/graphics/gles-impl/gles-sync-object.h
dali/internal/graphics/gles-impl/gles-sync-pool.cpp
dali/internal/graphics/gles-impl/gles-sync-pool.h
dali/internal/graphics/gles-impl/gles-texture-dependency-checker.cpp
dali/internal/graphics/gles-impl/gles-texture-dependency-checker.h
dali/internal/graphics/gles/egl-sync-implementation.h
dali/internal/graphics/macos/egl-sync-implementation-macos.cpp [new file with mode: 0644]
dali/internal/graphics/tizen/egl-sync-implementation-tizen.cpp [moved from dali/internal/graphics/gles/egl-sync-implementation.cpp with 70% similarity]
dali/internal/graphics/windows-gl/egl-sync-implementation-windows.cpp [new file with mode: 0644]