Slow compile with large fixed-size arrays in SSBO


when using large arrays with fixed size, the GLSL compiler will hang on glLinkProgram.

layout(binding = 0) restrict buffer Buf {
uint array;

works fine, but for example
layout(binding = 0) restrict buffer Buf {
uint array[1 << 26];

will compile for ages (I’m not sure if it compiles at all as i never witnessed it finishing)

Is this expected behaviour? The reason I want to use fixed size arrays is that I want to place multiple large arrays in one large buffer. While this still is possible using unsized arrays and layout(offset = ???) declarations per array, it is highly inconvenient. What is the best way to
manage several large arrays in SSBO?

This is still a problem four years later - is there no solution in sight?

I can’t use multiple bindings with dynamic arrays as I have more arrays than the maximum number of bindings allowed (96).

I can’t use images as I have arrays of structures which need to match the CPU versions.

No individual array is particularly huge, but in total they can add up to several hundred MB.