Можно ли иметь массив констант специализации, чтобы код glsl выглядел примерно так:
layout(constant_id = 0) const vec2 arr[2] = vec2[] (
vec2(2.0f, 2.0f),
vec2(4.0f, 4.0f)
);
или, альтернативно:
layout(constant_id = 0) const float arr[4] = float[] (
2.0f, 2.0f,
4.0f, 4.0f
);
Насколько я читал, нет ограничений на количество констант специализации, которые можно использовать, поэтому кажется странным, что это было бы невозможно, но когда я пытаюсь сделать это выше, компилятор SPIR-V уведомляет меня, что «constant_id» может только применяться к скаляру. В настоящее время я использую универсальный буфер для предоставления данных, но я хотел бы исключить резервный буфер и необходимость привязки буфера перед рисованием, а также позволить системе оптимизировать код во время создания конвейера, если это возможно.