SSBO's can end with a dynamically-sized array of elements. The generated struct has to be padded to accommodate this, but without actually containing the dynamic array.
There are all sorts of ways we could introduce this syntactically. For example:
A special pseudo-macro, e.x. @dynamic_array Float32.
A field of some vector type, e.x. array_placeholder::Vector{Float32}.
I currently prefer the former option because it's more obvious that it's not just another field.
After the rewriting of these block layout structs, there is now only one obvious way we should do this: make a sibling type of StaticBlockArray{N, T}, named DynamicBlockArray{T}.
SSBO's can end with a dynamically-sized array of elements. The generated struct has to be padded to accommodate this, but without actually containing the dynamic array.
There are all sorts of ways we could introduce this syntactically. For example:
@dynamic_array Float32
.array_placeholder::Vector{Float32}
.I currently prefer the former option because it's more obvious that it's not just another field.