KhronosGroup / KhronosGroup/SPIRV-Reflect

Decide how to handle array interfaces

Open
#211 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
C
Stars
871
Forks
188
Avg merge
19m
Merged PRs (30d)
1

Description

certain interface variables have "array interfaces", things like

- all Geometry input variables
- variables marked with `PerVertexKHR`
- etc

These will look like

```glsl
layout(location = 0) pervertexEXT in float a[3];
layout(location = 1) pervertexEXT in float b[3];
```

and then

```
1:
spirv id : 20
location : 0
type : float
array : [3]
semantic :
name : a
qualifier :
2:
spirv id : 44
location : 1
type : float
array : [3]
semantic :
name : b
qualifier :
```

these "array interface" are what makes this legal, otherwise it would be invalid as `a` would consume `Location` [`0`, `1`, `2`]

It would be nice to express this, not sure if the best thing is marking these with a `qualifier` or other mechanism

Contributor guide

No contributing guide indexed for this repository

Research direction

The issue names no source files, tests, or entry points, so first trace how Geometry and PerVertexKHR interface variables are reflected and represented in the public API. Decide and document a representation for array interfaces that distinguishes them from ordinary location-consuming arrays, then cover the shown a[3] and b[3] cases with tests.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
computer-graphics
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.