KhronosGroup / KhronosGroup/Vulkan-ValidationLayers

08601 Push constant must have been set with a compatible pipeline layout

Open
#9,439 3 comments 0 reactions 0 assignees View on GitHub
Incomplete
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

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.