KhronosGroup / KhronosGroup/Vulkan-Docs

VUID-VkShaderModuleCreateInfo-pCode-08737 and specialization constants

Open
#2,208 6 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.