Vixen
02b45cc4
csharp
public sealed class EffectPipelineDescriber

Builds a pipeline from the four things that decide one: an effect, a stage, an output and a vertex layout.

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

Remarks

The default IPipelineDescriber, and the reason a render feature no longer takes a pipeline-description callback from its host. Each of the four contributes exactly what it knows and nothing else:

the Effect — the shader modules and the pipeline layout; the RenderStage — how its objects are drawn: blend, depth, raster; the RenderOutput — what they are drawn into: formats and samples; the vertex layout — how a vertex is read.

Which is also, exactly, PipelineKey. Two draws agreeing on all four get the same pipeline; disagreeing on any one of them gets a different pipeline, because each one changes what the driver compiles.

Fields and properties (2)

  • public IList<VertexBufferLayout[]> VertexLayouts

    The vertex buffer layouts, by the index a draw names.

  • public IList<VertexSchema> VertexSchemas

    The same table, described by name so each effect gets its own locations.

Methods (4)

  • public EffectPipelineDescriber(IGraphicsDevice device)

    Builds a pipeline from the four things that decide one: an effect, a stage, an output and a vertex layout.

  • public GraphicsPipelineDescription Describe(Effect effect, RenderStage stage, in RenderOutput output, int vertexLayout)

    The description to compile a pipeline from.

  • public void Clear()

    Forgets every shader module, for a device loss or a shader reload.

  • public ShaderHandle ModuleOf(Effect effect, ShaderStage stage)

    The device module for one of an effect's stages, created once.

Used by (48, showing 40)

  • AutoExposureTestsVixen.Rendering.PostFx.Tests
  • BindlessFrameTestsVixen.Rendering.Tests
  • BloomRendererVixen.Rendering.PostFx
  • BloomTestsVixen.Rendering.PostFx.Tests
  • ClusteredLightingTestsVixen.Rendering.Tests
  • ClusteredShadingDeviceTestsVixen.Graphics.Golden.Tests
  • CompositorAssetTestsVixen.Rendering.Tests
  • CompositorBuilderVixen.Rendering
  • CompositorImageTestsVixen.Graphics.Golden.Tests
  • DepthPrepassTestsVixen.Rendering.Tests
  • DescriptorBindingTestsVixen.Rendering.Tests
  • DistanceFieldAoImageTestsVixen.Graphics.Golden.Tests
  • DrawCompactionTestsVixen.Rendering.Tests
  • ForwardFrameTestsVixen.Rendering.Tests
  • ForwardLightingTestsVixen.Rendering.Tests
  • FullScreenRendererVixen.Rendering
  • GpuClusterRasterVixen.Rendering
  • GpuDrivenCompositorTestsVixen.Rendering.Tests
  • GraphicsCompositorTestsVixen.Rendering.Tests
  • IndirectDiffuseImageTestsVixen.Graphics.Golden.Tests
  • IrradianceBounceDeviceTestsVixen.Graphics.Golden.Tests
  • IrradianceShadingDeviceTestsVixen.Graphics.Golden.Tests
  • LensFlareRendererVixen.Rendering.PostFx
  • LocalExposureRendererVixen.Rendering.PostFx
  • LodTestsVixen.Rendering.Tests
  • MaterialBindingTestsVixen.Rendering.Tests
  • MaterialRecordBufferTestsVixen.Rendering.Tests
  • MaterialTextureIndexTestsVixen.Rendering.Tests
  • MeshRenderFeatureTestsVixen.Rendering.Tests
  • MotionVectorTestsVixen.Rendering.Tests
  • ParticleRenderFeatureTestsVixen.Rendering.Tests
  • ParticleSpriteDeviceTestsVixen.Graphics.Golden.Tests
  • PostEffectRendererVixen.Rendering.PostFx
  • PostEffectTestsVixen.Rendering.PostFx.Tests
  • PostProcessTestsVixen.Rendering.Tests
  • PunctualShadowTestsVixen.Rendering.Tests
  • ScreenProbeBilateralImageTestsVixen.Graphics.Golden.Tests
  • ScreenProbeGatherRendererVixen.Rendering.PostFx
  • ScreenProbeUpsampleImageTestsVixen.Graphics.Golden.Tests
  • ShadowCacheTestsVixen.Rendering.Tests