Changed SceneHolder's RenderTarget initialization 71/268271/5
authorDavid Steele <david.steele@samsung.com>
Fri, 17 Dec 2021 17:24:15 +0000 (17:24 +0000)
committerDavid Steele <david.steele@samsung.com>
Fri, 21 Jan 2022 11:54:57 +0000 (11:54 +0000)
commit3f5099b7e8b501e5d4a808869faf5889b0701454
treec46d8765aab8dc377d1a9f4ab6f084989258684c
parent6fd962828930e1176dff83fca2fc2c8000bca992
Changed SceneHolder's RenderTarget initialization

SceneHolder currently generates Graphics::RenderTarget in the wrong
thread (Event thread) which can cause crashes in EglController if
there is a heavy load, as Surface/Context pair vector can be modified
in one thread whilst being read in another.

Instead, set up the RenderTarget create info struct, and pass that
through the existing messages instead of RenderTarget. When the
SceneGraph::Scene gets it's second stage Initialize() method
called (by RenderManager), then use that CreateInfo struct to create
the RenderTarget. All modifications to the queues/vectors are now done
in the same thread, and should prevent crashes.

Change-Id: I6d33590ed85085f26c84c5d798abca48dd8affba
Signed-off-by: David Steele <david.steele@samsung.com>
automated-tests/src/dali/dali-test-suite-utils/test-application.cpp
automated-tests/src/dali/dali-test-suite-utils/test-graphics-controller.cpp
automated-tests/src/dali/dali-test-suite-utils/test-trace-call-stack.h
automated-tests/src/dali/utc-Dali-Scene.cpp
dali/integration-api/scene.cpp
dali/integration-api/scene.h
dali/internal/event/common/scene-impl.cpp
dali/internal/event/common/scene-impl.h
dali/internal/update/common/scene-graph-scene.cpp
dali/internal/update/common/scene-graph-scene.h