The spec says

An array has a base alignment equal to the base alignment of its element type, rounded up to a multiple of 16.

I assume the size for a static array is trivially size_of(elem_type) * length but what about a dynamic array?

There are no pointers in the logical mode, does that mean the size of a dynamic array is 0?

I don’t know which offsets I should apply to the following struct

```
struct Data {
float i1;
f32[] arr;
float i2;
}
```

Or in SPIR-V notation

```
%Data = OpTypeStruct %float %_runtimearr_float %float
```

Can this be done, or do the same rules of GLSL apply here where you are only allowed to have exactly one dynamic array inside a buffer block, and it has to be the last one?