KhronosGroup / KhronosGroup/Vulkan-ValidationLayers
08601 Push constant must have been set with a compatible pipeline layout
- Dominant language
- C++
- Stars
- 1k
- Forks
- 504
- Avg merge
- 11h 35m
- Merged PRs (30d)
- 224
Description
**Describe the situation in which you encountered the missing validation**
Issue description:
I can bind a pipeline whose layout makes the push constants available only to the vertex shader, push the constants with the same layout, draw things, and then switch to another pipeline whose layout makes the push constants also available to the fragment shader and draw more things. These layouts don't have identical push constant ranges (due to the different stage flags), so they're not push-constant compatible, so I think this usage isn't supposed to be legal.
Despite that, the application seems to work, so it seems implementations are less strict than they're allowed to be, and maybe the specification can be relaxed somewhat.
**Valid Usage IDs requested**
Please include the valid usage IDs for the checks you are requesting:
08601, I think.
**Additional Context**
Contributor guide
Research direction
No repository file or test is named. Start by reviewing Vulkan valid usage ID 08601 and the described sequence of binding pipelines, pushing constants, and drawing; determine whether the stage-flag difference requires validation or a specification change. Done means reaching a clear decision and documenting or implementing the agreed behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- computer-graphics
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100