Refactored Uniform Buffer support 58/290958/18
authorDavid Steele <david.steele@samsung.com>
Wed, 21 Jun 2023 12:07:41 +0000 (13:07 +0100)
committerDavid Steele <david.steele@samsung.com>
Fri, 23 Jun 2023 15:12:45 +0000 (16:12 +0100)
commit397e6d997ea235ea953e6f1e005d39dcac93eb59
tree3a011e8d805a50622d270df8d777eb63d650ae18
parent6aa11d3f55ce45cecf85152bf00c33800702e887
Refactored Uniform Buffer support

Uniform blocks in GLES3 shaders are now supported by GPU buffer.
Fixed up test harness to handle CPU buffers properly
Fixed up test cases with wrong buffer counts

Added method to get uniform block alignment from the
backend - this is slightly more complicated than it
needs to be, because of the Vulkan-like API we have.

Enhanced test harness to enable testing of UBOs.
Adding reflection & test cases for uniform blocks

Ensured that multi-pass of draw commands doesn't
generate multiple blocks.

Ensured GPU uniform buffers are double-buffered

Ensured size of CPU/GPU for offscreen vs onscreen
buffers is correct.

Added test cases to ensure that large enough buffers
are allocated, and that properties are written
into the relevant uniform block areas within the buffers.

Change-Id: Id551d56ecea228320af3896afef49790d5ceec6d
31 files changed:
automated-tests/src/dali/dali-test-suite-utils/test-gl-abstraction.cpp
automated-tests/src/dali/dali-test-suite-utils/test-gl-abstraction.h
automated-tests/src/dali/dali-test-suite-utils/test-graphics-buffer.cpp
automated-tests/src/dali/dali-test-suite-utils/test-graphics-buffer.h
automated-tests/src/dali/dali-test-suite-utils/test-graphics-controller.cpp
automated-tests/src/dali/dali-test-suite-utils/test-graphics-controller.h
automated-tests/src/dali/dali-test-suite-utils/test-graphics-program.cpp
automated-tests/src/dali/dali-test-suite-utils/test-graphics-program.h
automated-tests/src/dali/dali-test-suite-utils/test-graphics-reflection.cpp
automated-tests/src/dali/dali-test-suite-utils/test-graphics-reflection.h
automated-tests/src/dali/dali-test-suite-utils/test-graphics-texture.h
automated-tests/src/dali/dali-test-suite-utils/test-trace-call-stack.cpp
automated-tests/src/dali/utc-Dali-Geometry.cpp
automated-tests/src/dali/utc-Dali-RenderTask.cpp
automated-tests/src/dali/utc-Dali-Renderer.cpp
automated-tests/src/dali/utc-Dali-VertexBuffer.cpp
dali/graphics-api/graphics-types.h
dali/internal/file.list
dali/internal/render/common/render-manager.cpp
dali/internal/render/renderers/render-renderer.cpp
dali/internal/render/renderers/render-renderer.h
dali/internal/render/renderers/uniform-buffer-manager.cpp
dali/internal/render/renderers/uniform-buffer-manager.h
dali/internal/render/renderers/uniform-buffer-view-pool.cpp [deleted file]
dali/internal/render/renderers/uniform-buffer-view-pool.h [deleted file]
dali/internal/render/renderers/uniform-buffer-view.cpp
dali/internal/render/renderers/uniform-buffer-view.h
dali/internal/render/renderers/uniform-buffer.cpp
dali/internal/render/renderers/uniform-buffer.h
dali/internal/render/shaders/program.cpp
dali/internal/render/shaders/program.h