public enum DescriptorSetSlotWhich of the conventional descriptor sets a binding belongs to.
No guide page documents this yet — the page shows what the code says about itself.
Remarks
The set index is not a free choice. Four sets, ordered by how often they change, so a frame rebinds as little as possible: set 0 once, set 1 per view, set 2 per material, set 3 per draw. Vulkan and D3D12 both reward this and both punish the alternative, because changing set n invalidates every set above it.
Raven marks a binding [PerFrame], [PerView], [PerMaterial] or [PerDraw] and the index follows — one BindingPlan shared by both of its backends and its reflection, so the set the RHI builds a layout from is the one the module was decorated with ([07 § C](07-raven-shader-pipeline.md)). An unmarked binding is per-material.
And a fifth, which is not part of that ordering. Bindless is the one set nothing in a frame writes: a BindlessTable owns it, updates individual descriptors in place, and hands out indices that shaders subscript it with. It is last rather than first — where its change frequency would put it — because the four below it are a convention every existing shader is compiled against, and renumbering them to gain one slot would be renumbering every set in the engine to move the one that never changes.
Fields and properties (5)
PerFrameCamera, time, the lighting environment. Bound once a frame.
PerViewShadow matrices and view-dependent buffers. Bound once a view.
PerMaterialTextures and material constants. The default for an unmarked binding.
PerDrawTransforms and instance data, usually through a dynamic offset.
BindlessThe unbounded descriptor array a BindlessTable owns.
Used by (139, showing 40)
- PbrShowcaseGamePbrShowcase
- VirtualGeometryGameVirtualGeometry
- AlwaysCompilesVixen.Rendering.Tests
- AlwaysCompilesVixen.Rendering.Tests
- AlwaysCompilesVixen.Rendering.Tests
- AlwaysCompilesVixen.Rendering.Tests
- AlwaysCompilesVixen.Rendering.Tests
- AutoExposureTestsVixen.Rendering.PostFx.Tests
- BinVixen.Rendering
- BindlessFrameTestsVixen.Rendering.Tests
- BindlessSamplingDeviceTestsVixen.Graphics.Golden.Tests
- BindlessSetLayoutTestsVixen.Shaders.Tests
- BindlessTableVixen.Graphics
- BloomTestsVixen.Rendering.PostFx.Tests
- BoundBindingsVixen.Rendering
- BufferTransferDeviceTestsVixen.Graphics.Golden.Tests
- ChainVixen.Graphics.Golden.Tests
- ClusterCullingDeviceTestsVixen.Graphics.Golden.Tests
- ClusteredLightingTestsVixen.Rendering.Tests
- ClusteredShadingDeviceTestsVixen.Graphics.Golden.Tests
- CompilesVixen.Rendering.Tests
- CompilesVixen.Rendering.Tests
- CompilesVixen.Rendering.Tests
- CompilesVixen.Rendering.Tests
- CompilesVixen.Rendering.Tests
- CompositorAssetTestsVixen.Rendering.Tests
- CompositorImageTestsVixen.Graphics.Golden.Tests
- ComputeAssetVixen.Rendering
- ComputeRendererVixen.Rendering
- DepthPrepassTestsVixen.Rendering.Tests
- DescriptorAllocatorTestsVixen.Graphics.Tests
- DescriptorBindingTestsVixen.Rendering.Tests
- DescriptorBindingsVixen.Rendering
- DescriptorLayoutTestsVixen.Graphics.Tests
- DescriptorSetLayoutDescriptionVixen.Graphics
- DrawCompactionTestsVixen.Rendering.Tests
- EffectVixen.Shaders
- EffectBindingVixen.Shaders
- EffectBindingDataVixen.Shaders
- EffectCacheTestsVixen.Shaders.Tests