Feature #26
Use SSBO for storing effect arrays
100%
Description
Currently, the arrays of floats that describe the individual effects in the main Vertex and Fragment shaders are stored as uniform arrays. This has one major disadvantage: we need to declare their max size before initialisation of the library, leading to clumsy API ( DistortedEffects.setMax(EffectType.VERTEX , 10 ) - API for setting up max number of allowable VERTEX effects ). Also, this leads to quite low number of MAX effects.
Move on to Shader Storage Buffer Objects. This will remove the low limit, and do away with need to do 'setMax' altogether.
History
Updated by Leszek Koltunski over 4 years ago
- Status changed from New to In Progress
- Assignee set to Leszek Koltunski
- % Done changed from 0 to 40
First step done: commit 0bd9f644 introduces an UBO that encapsulates the Effect Associations in the Mesh.
Next steps: introduce UBOs in the VertexQueue holding all vertes effect params; then in the FragmentQueue, then (maybe) in the MatrixQueue holding the three matrices.
It's an UBO and not a SSBO because UBOs are said to be faster and specifically for Uniforms.
Updated by Leszek Koltunski over 4 years ago
- % Done changed from 40 to 70
Next commits (done 2020-08-19 till 2020-08-23) introduce changes that permit easy introduction of an UBO (or an SSBO) to VertexEffectQueue and FragmentEffectQueue.
Updated by Leszek Koltunski about 4 years ago
- Blocks deleted (Bug #58: Remove the Inflate vectors)
Updated by Leszek Koltunski almost 4 years ago
- % Done changed from 70 to 90
Last commits convert integer part of the EffectQueues to UBOs.
The last thing is to convert the float part.
Updated by Leszek Koltunski almost 4 years ago
Commit de77a6c5 introduces another UBO to store the last part of vertex and fragment uniforms whose number was dependant on the max number of simultaneous effects. Now we can have 100 simultaneous effects.
Updated by Leszek Koltunski almost 4 years ago
- Status changed from In Progress to Closed
- % Done changed from 90 to 100