Update render graph docs (#13495)
# Objective I'm reading some of the rendering code for the first time; and using this opportunity to flesh out some docs for the parts that I did not understand. rather than a questionable design choice is not a breaking change. --------- Co-authored-by: BD103 <59022059+BD103@users.noreply.github.com>
This commit is contained in:
		
							parent
							
								
									b2b356f462
								
							
						
					
					
						commit
						d87505899f
					
				| @ -17,7 +17,7 @@ pub struct RunSubGraph { | ||||
| } | ||||
| 
 | ||||
| /// The context with all graph information required to run a [`Node`](super::Node).
 | ||||
| /// This context is created for each node by the `RenderGraphRunner`.
 | ||||
| /// This context is created for each node by the [`RenderGraphRunner`](crate::renderer::graph_runner::RenderGraphRunner).
 | ||||
| ///
 | ||||
| /// The slot input can be read from here and the outputs must be written back to the context for
 | ||||
| /// passing them onto the next node.
 | ||||
|  | ||||
| @ -22,11 +22,12 @@ define_label!( | ||||
| /// A shorthand for `Interned<dyn RenderSubGraph>`.
 | ||||
| pub type InternedRenderSubGraph = Interned<dyn RenderSubGraph>; | ||||
| 
 | ||||
| /// The render graph configures the modular, parallel and re-usable render logic.
 | ||||
| /// The render graph configures the modular and re-usable render logic.
 | ||||
| /// It is a retained and stateless (nodes themselves may have their own internal state) structure,
 | ||||
| /// which can not be modified while it is executed by the graph runner.
 | ||||
| ///
 | ||||
| /// The `RenderGraphRunner` is responsible for executing the entire graph each frame.
 | ||||
| /// The [`RenderGraphRunner`](crate::renderer::graph_runner::RenderGraphRunner) is responsible for executing the entire graph each frame.
 | ||||
| /// It will execute each node in the graph in the correct order, based on the edges between the nodes.
 | ||||
| ///
 | ||||
| /// It consists of three main components: [`Nodes`](Node), [`Edges`](Edge)
 | ||||
| /// and [`Slots`](super::SlotType).
 | ||||
|  | ||||
| @ -16,6 +16,17 @@ use crate::{ | ||||
|     renderer::{RenderContext, RenderDevice}, | ||||
| }; | ||||
| 
 | ||||
| /// The [`RenderGraphRunner`] is responsible for executing a [`RenderGraph`].
 | ||||
| ///
 | ||||
| /// It will run all nodes in the graph sequentially in the correct order (defined by the edges).
 | ||||
| /// Each [`Node`](crate::render_graph::node::Node) can run any arbitrary code, but will generally
 | ||||
| /// either send directly a [`CommandBuffer`] or a task that will asynchronously generate a [`CommandBuffer`]
 | ||||
| ///
 | ||||
| /// After running the graph, the [`RenderGraphRunner`] will execute in parallel all the tasks to get
 | ||||
| /// an ordered list of [`CommandBuffer`]s to execute. These [`CommandBuffer`] will be submitted to the GPU
 | ||||
| /// sequentially in the order that the tasks were submitted. (which is the order of the [`RenderGraph`])
 | ||||
| ///
 | ||||
| /// [`CommandBuffer`]: wgpu::CommandBuffer
 | ||||
| pub(crate) struct RenderGraphRunner; | ||||
| 
 | ||||
| #[derive(Error, Debug)] | ||||
| @ -90,6 +101,8 @@ impl RenderGraphRunner { | ||||
|         Ok(diagnostics_recorder) | ||||
|     } | ||||
| 
 | ||||
|     /// Runs the [`RenderGraph`] and all its sub-graphs sequentially, making sure that all nodes are
 | ||||
|     /// run in the correct order. (a node only runs when all its dependencies have finished running)
 | ||||
|     fn run_graph<'w>( | ||||
|         graph: &RenderGraph, | ||||
|         sub_graph: Option<InternedRenderSubGraph>, | ||||
|  | ||||
| @ -458,6 +458,8 @@ impl<'w> RenderContext<'w> { | ||||
|     ///
 | ||||
|     /// This function will wait until all command buffer generation tasks are complete
 | ||||
|     /// by running them in parallel (where supported).
 | ||||
|     ///
 | ||||
|     /// The [`CommandBuffer`]s will be returned in the order that they were added.
 | ||||
|     pub fn finish( | ||||
|         mut self, | ||||
|     ) -> ( | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Periwink
						Periwink