KhronosGroup / KhronosGroup/SPIRV-Registry

OpWritePackedPrimitiveIndices4x8NV and OpEntryPoint interface

Open
#104 3 comments 0 reactions 0 assignees View on GitHub
Dominant language
HTML
Stars
149
Forks
99
Avg merge
4d 21h
Merged PRs (30d)
2

Description

`OpWritePackedPrimitiveIndices4x8NV` implicitly refer to "output variable decorated with the PrimitiveIndicesNV BuiltIn" instead of using an explicit ID. The `OpEntryPoint` interface is defined as

> The set of Interface must be equal to or a superset of the global OpVariable Result referenced by the entry point’s static call tree, within the interface’s storage classes.

Glslang (Version: 10:11.0.0) doesn't include the variable in the interfaces if only `OpWritePackedPrimitiveIndices4x8NV` is used but no other explicit references. I think either:

- This is (effectively) expected behavior, and we could add a note to SPV_NV_mesh_shader clarifiying this;
- This is a bug in GLSLang, implicit reference should count for the interfaces, the spec should change either the definition of `OpEntryPoint` or `OpWritePackedPrimitiveIndices4x8NV`.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reviewing the SPV_NV_mesh_shader wording for OpWritePackedPrimitiveIndices4x8NV alongside the OpEntryPoint interface definition. Reproduce or inspect the glslang 10:11.0.0 behavior described in the issue. Done means resolving whether the implicit reference is covered and recording the agreed clarification or specification change.

Written by the indexing model from the issue text.

Assessment

Domain
compilers, documentation
Issue type
Documentation
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.