Vixen
02b45cc4
csharp
public record class GpuDrivenAsset

What a document asks for when it wants draws merged, and what a device may refuse.

No guide page documents this yet — the page shows what the code says about itself.

Remarks

Every flag here is a request, not a setting. Each one is gated on a capability inside the feature that implements it — HasBindless for records, HasDrawIndirectCount for compaction and transforms — so a document that asks for all of it runs unchanged on GL, on WebGL2 and on MoltenVK below argument-buffer tier 2, and draws the same image through a descriptor set per material. That is the reason a document may ask at all: if asking could break a target, it would have to be a build configuration instead.

⚠ The pieces are separable and mostly should not be separated. Compaction without records merges nothing, because objects still bind a set each; records without compaction remove binds and leave the command per object. They are separate flags because they fail independently on real hardware, not because a project should pick and choose.

Fields and properties (3)

  • public string Shader

    Which pass's permutations to set, since the keys are the shader's own.

  • public bool MaterialRecords

    Whether a material's values are a record of one buffer rather than a set per draw.

  • public bool TransformRecords

    Whether an object's world matrix is a record rather than a push constant.

Used by (5)

  • CompositorBuilderVixen.Rendering
  • GraphicsCompositorAssetVixen.Rendering
  • TypeRegistrationVixen.Rendering
  • Vixen_Rendering_Compositor_GpuDrivenAssetSerializerVixen.Rendering
  • Vixen_Rendering_Compositor_GraphicsCompositorAssetSerializerVixen.Rendering