[Tizen] Backport some MatrixUtils Operation 63/291663/2
authorEunki Hong <eunkiki.hong@samsung.com>
Sat, 4 Feb 2023 04:08:53 +0000 (13:08 +0900)
committerEunki, Hong <eunkiki.hong@samsung.com>
Thu, 20 Apr 2023 04:10:31 +0000 (13:10 +0900)
commitc5469c0fa1d4d708ad9cebc5e95428f3f26e87c7
tree2693ba9ec830bf8b1dab6a832d47c2847625b79b
parent9bd2c395c1eaa1c1eff7d7111a5a9b6b63d61ed4
[Tizen] Backport some MatrixUtils Operation

This is a combination of 3 commits.

Optimize some matrix multiply for projection matrix + Orthographic reflection

Let we use MatrixUtils::MultiplyProjectionMatrix for some internal API.

And also, make Orthographic camera can use reflection plane.

TODO : We should make MultiplyProjectionMatrix funtion as NEON.

Signed-off-by: Eunki Hong <eunkiki.hong@samsung.com>
Fix matrix multiply with quaternion bug in ARM

There was some bug when we try to use MatrixUtils::Multiply at
ARM devices. We fix it.

Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
Multiply only for Transform Matrix + NEON comment clean up

If 4x4 matrix form as Transform, we can optimize matrix multiply function.
It will be reduce the time of Transform Update time.

Below are some test result.
1. VLD1.F32 each time is more faster than VLDM.
2. Transpose lhs -> multply -> transpose tmp is slower than current logic
3. "+r"(temp) at Output Operand is slower than "r"(temp) Intput Oprerand with "%r0"(why?)
 --> But when we make current Multiply with Output Operand as Input Operand, it makes slow down. (why?)

Change-Id: I3eb7f4b2e0b4ce7ae595e3e006d86ed63eee4529
Signed-off-by: Eunki Hong <eunkiki.hong@samsung.com>
12 files changed:
automated-tests/src/dali-internal/utc-Dali-Internal-MatrixUtils.cpp
automated-tests/src/dali/utc-Dali-CameraActor.cpp
dali/internal/common/matrix-utils.cpp
dali/internal/common/matrix-utils.h
dali/internal/event/actors/actor-coords.cpp
dali/internal/event/actors/camera-actor-impl.cpp
dali/internal/event/common/projection.cpp
dali/internal/render/renderers/render-renderer.cpp
dali/internal/update/manager/render-instruction-processor.cpp
dali/internal/update/manager/transform-manager.cpp
dali/internal/update/render-tasks/scene-graph-camera.cpp
dali/internal/update/render-tasks/scene-graph-camera.h