FrameGraph
一张包含了所有Scope和所需资源的有向无环图,属于数据,有拓扑排序方法
Builder
构建FrameGraph,具体是提供FrameGraphInterface和FrameAttachmentDatabaseInterface给外部,让它们可以向FrameGraph中添加Scope和资源。程序
Compiler
编译FrameGraph,梳理有向无环图,根据不同的Command队列进行区分,创建临时的资源并设解析其生命周期,为资源创建view。程序
Executer
执行FrameGraph,具体为录制每个Scope的命令。几乎都是由后端API实现的。程序
使用一个Component描述FrameGraph,然后各个阶段来处理它。
Scope 对应 Entity
GraphCom
GraphNode
Scope* 指向实际的scope,应该可以消除
vector<Scope*> 两个,记录前驱后后继节点,用index替代
uint16_t 记录未排序的前驱节点个数
ScopeGroupId 所属group id
GraphEdge
uint32_t 两个,两端连接GraphNode
Attachment
所用的资源,一堆span引用,或者vector<index>
Func
对应的FrameGraph 3 个阶段的函数