Expand description

This module contains the render task graph.

Code associated with creating specific render tasks is in the render_task module.


  • A pass expresses dependencies between tasks. Each pass consists of a number of subpasses.
  • A render pass represents a set of rendering operations that don’t depend on one another.
  • Allows initializing a render task directly into the render task buffer.
  • The RenderTaskGraph is the immutable representation of the render task graph. It is built by the RenderTaskGraphBuilder, and is constructed once per frame.
  • The persistent interface that is used during frame building to construct the frame graph.
  • A subpass is a specific render target, and a list of tasks to draw to it.
  • Surface 🔒
    An internal representation of a dynamic surface that tasks can be allocated into. Maintains some extra metadata about each surface during the graph build.


  • A sub-pass can draw to either a dynamic (temporary render target) surface, or a persistent surface (texture or picture cache).


  • If we ever need a larger texture than the ideal, we better round it up to a reasonable number in order to have a bit of leeway in case the size of this this target is changing each frame.