Skip to main content

Module rendergraph

Module rendergraph 

Source
Expand description

Declarative render graph subsystem for the Proof Engine.

This module provides a frame-graph architecture where render passes are declared as nodes in a directed acyclic graph. Resource lifetimes are managed automatically, barriers are inserted between passes, and execution order is derived via topological sort.

§Architecture

  • graph — RenderGraph, RenderPass, ResourceNode, topological sort, cycle detection, conditional passes, multi-resolution, validation, graph merging, DOT export.
  • resources — ResourceDescriptor, TransientResource, ResourcePool, aliasing, ImportedResource, version tracking, memory budgets.
  • executor — GraphExecutor, PassContext, barrier insertion, GPU timing queries, triple-buffered frame timeline, async compute, execution statistics, hot-reload.
  • passes — 12 built-in pass implementations for a full deferred rendering pipeline.

Re-exports§

pub use graph::DependencyKind;
pub use graph::PassCondition;
pub use graph::PassDependency;
pub use graph::PassType;
pub use graph::QueueAffinity;
pub use graph::RenderGraph;
pub use graph::RenderGraphBuilder;
pub use graph::RenderPass;
pub use graph::ResolutionScale;
pub use graph::ResourceNode;
pub use graph::ValidationResult;
pub use graph::GraphConfig;
pub use graph::PassConfig;
pub use graph::ResourceConfig;
pub use resources::DanglingKind;
pub use resources::DanglingResource;
pub use resources::ImportedResource;
pub use resources::MemoryBudget;
pub use resources::PoolFrameStats;
pub use resources::ResourceDescriptor;
pub use resources::ResourceHandle;
pub use resources::ResourceLifetime;
pub use resources::ResourcePool;
pub use resources::ResourceTable;
pub use resources::ResourceVersionChain;
pub use resources::SizePolicy;
pub use resources::TextureFormat;
pub use resources::TransientResource;
pub use resources::UsageFlags;
pub use executor::AsyncComputeSchedule;
pub use executor::BarrierKind;
pub use executor::BoxedPassExecutor;
pub use executor::ExecutionStats;
pub use executor::FnPassExecutor;
pub use executor::FramePacer;
pub use executor::FrameState;
pub use executor::FrameStatus;
pub use executor::FrameTimeline;
pub use executor::GraphExecutor;
pub use executor::MultiGraphExecutor;
pub use executor::PassBarrier;
pub use executor::PassContext;
pub use executor::PassExecutor;
pub use executor::PassTimingQuery;
pub use passes::BloomPass;
pub use passes::BuiltinPass;
pub use passes::DebugOverlayPass;
pub use passes::DebugVisualization;
pub use passes::DepthPrePass;
pub use passes::DrawCall;
pub use passes::DrawType;
pub use passes::FXAAPass;
pub use passes::FinalCompositePass;
pub use passes::GBufferPass;
pub use passes::LightingPass;
pub use passes::SSAOPass;
pub use passes::ShadowPass;
pub use passes::SkyboxPass;
pub use passes::ToneMapOperator;
pub use passes::ToneMappingPass;
pub use passes::TransparencyPass;
pub use passes::WeightFunction;
pub use passes::build_deferred_pipeline;

Modules§

executor
Graph execution engine: walks sorted passes, manages barriers, GPU timing, triple-buffered frame-in-flight management, async compute overlap detection, execution statistics, and hot-reload from config.
graph
Declarative render graph: named passes, resource nodes, dependency edges, topological sort, cycle detection, conditional passes, multi-resolution passes, validation, merging, and DOT export.
passes
Built-in render pass implementations for a deferred rendering pipeline.
resources
Automatic resource management for the render graph.