Project

General

Profile

Feature #26

Use SSBO for storing effect arrays

Added by Leszek Koltunski about 6 years ago. Updated over 3 years ago.

Status:
Closed
Priority:
Normal
Start date:
04/08/2018
Due date:
% Done:

100%

Estimated time:

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

#1

Updated by Distorted Admin about 6 years ago

  • Tracker changed from Bug to Feature
#2

Updated by Leszek Koltunski over 3 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.

#3

Updated by Leszek Koltunski over 3 years ago

  • Blocks Bug #58: Remove the Inflate vectors added
#4

Updated by Leszek Koltunski over 3 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.

#5

Updated by Leszek Koltunski over 3 years ago

  • Blocks deleted (Bug #58: Remove the Inflate vectors)
#6

Updated by Leszek Koltunski over 3 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.

#7

Updated by Leszek Koltunski over 3 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.

#8

Updated by Leszek Koltunski over 3 years ago

  • Status changed from In Progress to Closed
  • % Done changed from 90 to 100

Also available in: Atom PDF