public static class BindingPlanAssigns every binding its (set, binding) pair.
No guide page documents this yet — the page shows what the code says about itself.
Remarks
The single place the descriptor layout is decided. Both emitters and ReflectionBuilder read this plan, so the SPIR-V decorations, the GLSL layout(set = …, binding = …) and the numbers the engine binds against cannot disagree — there is nothing to keep in step. The differential oracle checks that, but the plan is what makes it true.
The same reasoning as ShaderLayout, one level up: two copies of a rule is how two backends come to differ.
Methods (5)
public static ImmutableArray<PlannedBinding> Of(IrShader shader)The plan for one shader: sets in ascending index order, and within each set the uniform block first, then textures, then samplers, each in declaration order.
public static IrBinding? MaterialIndex(IrShader shader)The [MaterialIndex] a shader declared, or null.
public static string BlockName(IrShader shader, ResourceSet set)The name of a set's uniform block.
public static ImmutableArray<IrBinding> PushConstants(IrShader shader)The shader's push constants, in declaration order — the members of its one push-constant block.
public static string PushConstantBlockName(IrShader shader)The name of a shader's push-constant block.
Used by (9)
- ComposeInterfaceTestsVixen.Raven.Tests
- DescriptorSetTestsVixen.Raven.Tests
- GlslEmitterVixen.Raven
- LowererVixen.Raven
- MaterialRecordTestsVixen.Raven.Tests
- PushConstantTestsVixen.Raven.Tests
- ReflectionBuilderVixen.Raven
- SharedBindingTestsVixen.Raven.Tests
- SpirvEmitterVixen.Raven