KhronosGroup / KhronosGroup/Vulkan-Docs
VUID-VkShaderModuleCreateInfo-pCode-08737 and specialization constants
- Dominant language
- JavaScript
- Stars
- 3.3k
- Forks
- 549
- Avg merge
- 5d 5h
- Merged PRs (30d)
- 2
Description
This VUID states that the SPIR-V code must be valid, according to the "Validation Rules within a Module" section of the spec. This section contains both standalone and runtime checks. When a shader module is being created, specialization constants aren't known yet (or rather, they have their default values), but their values could be relevant for the validity of the module. Does this VUID therefore require that the SPIR-V code is valid when using the default specialization values? And if specialization values are provided during pipeline creation, what if they make a valid module no longer valid?
I noticed that the validation layer completely ignores this VUID, and instead performs the validity checks for shaders at pipeline creation time entirely, at a point when specialization constants are known. Is this how the VUID should *actually* be interpreted, or is the SPIR-V really supposed to be fully valid already when you create the module?
Contributor guide
Research direction
Read VUID-VkShaderModuleCreateInfo-pCode-08737 and the specification's “Validation Rules within a Module” section first. Compare the stated requirements with the validation layer's checks at shader-module and pipeline creation, including specialization-constant defaults and provided values. Done means resolving the interpretation and documenting the required behavior clearly.
Written by the indexing model from the issue text.
Assessment
- Domain
- documentation
- Issue type
- Documentation
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100