simvx.graphics.renderer.render_graph¶
RenderGraph — declarative pass scheduler.
Topologically sorts passes by declared input/output dependencies at compile() time. Frame-time iteration is a tight loop over pre-computed tuples — no per-frame graph traversal, no per-frame validation.
Module Contents¶
Classes¶
Schedules render passes by declared dependencies. |
Data¶
API¶
- simvx.graphics.renderer.render_graph.__all__¶
[‘RenderGraph’]
- class simvx.graphics.renderer.render_graph.RenderGraph[source]¶
Schedules render passes by declared dependencies.
Usage::
graph = RenderGraph() graph.add(shadow_pass) graph.add(ssao_pass) graph.compile() # once at setup graph.record_pre_render(cmd, frame) # every frame graph.record_render(cmd, frame) # every frame
Initialization
- __slots__¶
(‘_passes’, ‘_pre_render_order’, ‘_render_order’)
- add(pass_: simvx.graphics.renderer.render_pass.RenderPass) None[source]¶
Register a pass. Call before compile().
- compile() None[source]¶
Topologically sort passes by input/output dependencies. Called once.
Validates no cycles, no dangling inputs, no duplicate outputs. Splits result into pre_render and render tuples.
- record_pre_render(cmd: Any, frame: simvx.graphics.renderer.render_pass.FrameContext) None[source]¶
Record all pre-render passes in dependency order.
- record_render(cmd: Any, frame: simvx.graphics.renderer.render_pass.FrameContext) None[source]¶
Record all render-stage passes in dependency order.
- property passes: list[simvx.graphics.renderer.render_pass.RenderPass]¶
All registered passes (unordered).
- property pre_render_order: tuple[simvx.graphics.renderer.render_pass.RenderPass, ...]¶
Compiled pre-render execution order.
- property render_order: tuple[simvx.graphics.renderer.render_pass.RenderPass, ...]¶
Compiled render execution order.