KhronosGroup / KhronosGroup/glslang
Block arrays in arrayed interfaces incorrectly disallowed in 'es' profile
- Dominant language
- C++
- Stars
- 3.6k
- Forks
- 989
- Avg merge
- 1d 2h
- Merged PRs (30d)
- 31
Description
GLSL ES disallows multidimensional arrays of interface blocks but, for the arrayed interfaces in tessellation and geometry[*] shaders, this is supposed to apply after the per-vertex dimension has been discounted. So, for example, the following tess-control shader should compile:
```
#version 320 es
layout(vertices = 3) out;
in B {
vec4 ivar;
} b[ /* per-vertex dimension doesn't count */ ][ /* Single array dimension */ 10];
void main() { }
```
but glslang currently produces the error:
```
ERROR: 0:4: 'array-of-array of block' : not supported with this profile: es
```
[*] The spec currently says "tessellation" only but this is a mistake. A new version of the spec is in review which corrects the omission of "geometry".
Contributor guide
Assessment
This issue has not been assessed yet.