[Vulkan] graphics controller, multiple pipelines
authoradam.b <jsr184@gmail.com>
Wed, 25 Apr 2018 17:49:19 +0000 (18:49 +0100)
committerDavid Steele <david.steele@samsung.com>
Thu, 3 May 2018 13:19:16 +0000 (13:19 +0000)
commitf009e5fcd8090a603ba10ca0fc8b30cfb5dc2550
treeaabf2ccccb3a27804efbbcdf4974241893a665a8
parent0baac249ce6c17dbf2e660886abf9da3a473c90e
[Vulkan] graphics controller, multiple pipelines

- vulkan-graphics-controller cleaned up

- 'Blocks' demo works!

- Passes built-in uniforms to the render command
- Renders, just not exactly what it should ( under investigation )

- Texture binding to descriptor set works
- UBO writing into descriptors work
- Limitation:
  [1] Since DALi doesn't support UBOs, the "push constants"
      are written as UBOs by Graphics Vulkan backend.
  [2] Only one descriptor set allowed ( index = 0 )

- UBOs are being updated with data
- Created descriptor sets and pools per render command

- Added UBO manager and pools

- Graphics controller creates multiple pipelines depends on the state
- Render command has been extended to pass the list of textures
- Removed sampler-id hack from the code and the default shader
- Textures passed via Accessor
- Added buffer factory
- Using SPIRV reflection in order to map vertex input attributes

Limitation:

- Single texture passed per render item

Change-Id: Ib613d6cbc1ec481c2bd1fc7d504c58080c2f8cfa
59 files changed:
dali/graphics-api/graphics-api-buffer-factory.h [new file with mode: 0644]
dali/graphics-api/graphics-api-buffer.h
dali/graphics-api/graphics-api-controller.h
dali/graphics-api/graphics-api-framebuffer.h
dali/graphics-api/graphics-api-render-command.h
dali/graphics-api/graphics-api-shader-details.h
dali/graphics-api/graphics-api-shader.h
dali/graphics-api/utility/utility-memory-pool.h [new file with mode: 0644]
dali/graphics/file.list
dali/graphics/vulkan/api/internal/vulkan-ubo-manager.cpp [new file with mode: 0644]
dali/graphics/vulkan/api/internal/vulkan-ubo-manager.h [new file with mode: 0644]
dali/graphics/vulkan/api/internal/vulkan-ubo-pool.cpp [new file with mode: 0644]
dali/graphics/vulkan/api/internal/vulkan-ubo-pool.h [new file with mode: 0644]
dali/graphics/vulkan/api/vulkan-api-buffer-factory.cpp [new file with mode: 0644]
dali/graphics/vulkan/api/vulkan-api-buffer-factory.h [new file with mode: 0644]
dali/graphics/vulkan/api/vulkan-api-buffer.cpp [new file with mode: 0644]
dali/graphics/vulkan/api/vulkan-api-buffer.h [new file with mode: 0644]
dali/graphics/vulkan/api/vulkan-api-render-command.cpp [new file with mode: 0644]
dali/graphics/vulkan/api/vulkan-api-render-command.h [new file with mode: 0644]
dali/graphics/vulkan/api/vulkan-api-shader-factory.cpp
dali/graphics/vulkan/api/vulkan-api-shader.cpp
dali/graphics/vulkan/api/vulkan-api-shader.h
dali/graphics/vulkan/generated/spv-shaders-gen.cpp
dali/graphics/vulkan/generated/spv-shaders-gen.h
dali/graphics/vulkan/scripts/shader-gen.sh
dali/graphics/vulkan/shaders/basic-shader.frag
dali/graphics/vulkan/shaders/basic-shader.vert
dali/graphics/vulkan/shaders/image-visual-shader.frag [new file with mode: 0644]
dali/graphics/vulkan/shaders/image-visual-shader.vert [new file with mode: 0644]
dali/graphics/vulkan/spirv/vulkan-spirv.cpp
dali/graphics/vulkan/vulkan-command-buffer.cpp
dali/graphics/vulkan/vulkan-command-buffer.h
dali/graphics/vulkan/vulkan-command-pool.cpp
dali/graphics/vulkan/vulkan-descriptor-set.h
dali/graphics/vulkan/vulkan-framebuffer.cpp
dali/graphics/vulkan/vulkan-graphics-controller.cpp
dali/graphics/vulkan/vulkan-graphics-controller.h
dali/graphics/vulkan/vulkan-graphics.cpp
dali/graphics/vulkan/vulkan-graphics.h
dali/graphics/vulkan/vulkan-pipeline-cache.cpp [new file with mode: 0644]
dali/graphics/vulkan/vulkan-pipeline-cache.h [new file with mode: 0644]
dali/graphics/vulkan/vulkan-pipeline.cpp
dali/graphics/vulkan/vulkan-shader.cpp
dali/graphics/vulkan/vulkan-shader.h
dali/internal/event/common/property-buffer-impl.cpp
dali/internal/render/data-providers/render-data-provider.h
dali/internal/render/renderers/render-geometry.cpp
dali/internal/render/renderers/render-geometry.h
dali/internal/render/renderers/render-property-buffer.cpp
dali/internal/render/renderers/render-property-buffer.h
dali/internal/render/renderers/render-renderer.cpp
dali/internal/render/renderers/render-renderer.h
dali/internal/render/shaders/scene-graph-shader.cpp
dali/internal/render/shaders/scene-graph-shader.h
dali/internal/update/graphics/graphics-algorithms.cpp
dali/internal/update/manager/update-manager.cpp
dali/internal/update/manager/update-manager.h
dali/internal/update/rendering/scene-graph-renderer.cpp
dali/internal/update/rendering/scene-graph-renderer.h