KhronosGroup / KhronosGroup/glslang

Block arrays in arrayed interfaces incorrectly disallowed in 'es' profile

Open
#3,003 0 comments 0 reactions 1 assignee Claimed by @greg-lunarg View on GitHub
bug GLSL/ESSL
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.