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).
- According to apitrace, textures larger than 2048 break fast clear optimizations on some intel drivers. We sometimes need to go larger, but we try to avoid it.
- 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.
- Recursive helper to assign pass that a task should render on