Vixen
02b45cc4
csharp
public sealed class RenderGraph

A frame, declared before it happens.

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

Remarks

Passes state what they read and write; the graph culls what nothing needs, gives non-overlapping resources the same memory, places the barriers, derives the attachment load and store actions, and then runs the passes that survived.

This is not optional garnish ([05](../../docs/plan/05-graphics-rhi.md)). With six backends, hand-maintaining barrier correctness across deferred shading, shadows, SSAO, SSR, TAA, bloom and depth of field is not achievable — and a barrier that is merely too broad costs performance silently while one that is too narrow is a race that reproduces on one vendor's driver and not another's. Hand-written barriers stay available through Barrier for the hot paths that want them.

The graph is rebuilt every frame and that is deliberate: a frame's passes depend on what is visible, and a cached graph would be a cache invalidated by everything. Rebuilding is cheap because the physical resources are not — TransientResourcePool holds those across frames.

Fields and properties (5)

  • public TransientResourcePool Pool

    The pool its transient resources come from.

  • public int PassCount

    How many passes were declared.

  • public int SurvivingPassCount

    How many passes survived culling. Meaningless before Compile.

  • public int ResourceCount

    How many virtual resources were declared.

  • public int BarrierCount

    How many barriers the last Execute emitted.

Methods (16)

Used by (81, showing 40)

  • PbrShowcaseGamePbrShowcase
  • TriangleGameHelloTriangle
  • UiHostHelloUi
  • VideoGameVideoPlayback
  • AutoExposureRendererVixen.Rendering.PostFx
  • AutoExposureTestsVixen.Rendering.PostFx.Tests
  • BloomRendererVixen.Rendering.PostFx
  • BloomTestsVixen.Rendering.PostFx.Tests
  • BufferReadbackRendererVixen.Rendering
  • BufferTransferDeviceTestsVixen.Graphics.Golden.Tests
  • BufferTransferTestsVixen.Rendering.Tests
  • BufferUploadRendererVixen.Rendering
  • ClusterCullingDeviceTestsVixen.Graphics.Golden.Tests
  • ClusterCullingRendererVixen.Rendering
  • ClusteredLightingTestsVixen.Rendering.Tests
  • CompositorAssetTestsVixen.Rendering.Tests
  • CompositorFrameVixen.Rendering
  • ComputeRendererVixen.Rendering
  • DebugDrawImageTestsVixen.Graphics.Golden.Tests
  • DepthPrepassTestsVixen.Rendering.Tests
  • DescriptorBindingTestsVixen.Rendering.Tests
  • EditorGizmoFacingDeviceTestsVixen.Graphics.Golden.Tests
  • FixtureVixen.Graphics.Golden.Tests
  • ForwardFrameTestsVixen.Rendering.Tests
  • FrameVixen.Rendering.Tests
  • FullScreenRendererVixen.Rendering
  • GlobalDistanceFieldRendererVixen.Rendering
  • GoldenImageTestsVixen.Graphics.Golden.Tests
  • GpuCullingRendererVixen.Rendering
  • GpuVisibilityGroupTestsVixen.Rendering.Tests
  • GraphicsCompositorVixen.Rendering
  • GraphicsCompositorTestsVixen.Rendering.Tests
  • HarnessVixen.Rendering.PostFx.Tests
  • HarnessVixen.Rendering.Tests
  • HarnessVixen.Rendering.PostFx.Tests
  • HarnessVixen.Rendering.PostFx.Tests
  • HarnessVixen.Rendering.Tests
  • HarnessVixen.Rendering.Tests
  • HarnessVixen.Rendering.Tests
  • HarnessVixen.Rendering.Tests