|
FCT
|
#include <RenderGraph.h>


类 | |
| struct | BarrierInfo |
| struct | ImageState |
Public 成员函数 | |
| RenderGraph (PipeHub &pipeHub, Device *device, FlowControl *flowControl, CommandBufferGraph *commandBufferGraph, ResourceManager *resourceManager) | |
| ~RenderGraph () | |
| void | recompile () |
| std::vector< PassDesc > | getOriginalPasses () const |
| void | clearOriginalPasses () |
| template<typename Func> | |
| SubscribeId | subscribe (std::string passName, Func &&func) |
| void | unsubscribe (SubscribeId subscribeId) |
| template<typename... Args> | |
| void | addPass (std::string name, Args &&... args) |
| void | addPassDesc (const PassDesc &desc) |
| void | buildGraph () |
| void | compile () |
| void | pushPipe () |
| void | executeAllPassGroups (RHI::CommandBuffer *cmdBuffer) |
| RHI::Pass * | getPass (const std::string &name) const |
| Image * | getImage (const std::string &name) const |
| std::vector< TextureEdge * > | getTextureEdges (const std::string &passName) const |
Private 成员函数 | |
| void | initForSubmit () |
| void | allocateCommandBuffer () |
| void | cleanUpCompile () |
| PipelineStage | convertShaderStageToPipelineStage (ShaderStage stage) const |
| RenderGraphImageNode * | getOrCreateImageNode (const std::string &name, const Texture &texture) |
| RenderGraphImageNode * | getOrCreateImageNode (const std::string &name, const Target &target) |
| RenderGraphImageNode * | getOrCreateImageNode (const std::string &name, const DepthStencil &depthStencil) |
| void | createTextureEdge (const std::string &passName, const std::string &textureName, const Texture &texture) |
| void | createTargetEdge (const std::string &passName, const std::string &targetName, const Target &target) |
| void | createDepthStencilEdge (const std::string &passName, const std::string &depthStencilName, const DepthStencil &depthStencil) |
| void | removeTextureEdge (TextureEdge *edgeToRemove) |
| void | simulatePassGroupExecution (const std::string &groupLeader, const std::vector< std::string > &groupMembers, std::unordered_map< Image *, ImageState > &imageStates) |
| void | simulateExecutionAndAnalyzeBarriers () |
| std::vector< BarrierInfo > | checkBarriersBeforePassGroup (const std::string &groupLeader, const std::vector< std::string > &groupMembers, const std::unordered_map< Image *, ImageState > &imageStates) |
| void | executeBarriers (RHI::CommandBuffer *cmdBuffer, const std::vector< BarrierInfo > &barriers) |
| void | removeTargetEdge (TargetEdge *edgeToRemove) |
| void | removeDepthStencilEdge (DepthStencilEdge *edgeToRemove) |
| void | addPass (const PassDesc &desc) |
| void | cleanUp () |
| void | resolveTextureSizes () |
| void | cullPasses () |
| void | cullPass (const std::string &passName) |
| void | cullSinglePass (const std::string &passName) |
| void | cullUnusedImageNode (const std::string &imageName) |
| void | groupPasses () |
| void | clearResources () |
| void | allocateResources () |
| void | createRHIPasses () |
| void | analyzePassGroupDependencies (const std::string &groupLeader, const std::vector< std::string > &groupMembers, std::map< std::string, std::set< std::string > > &dependencies) const |
| std::vector< std::string > | topologicalSortPasses () const |
| std::map< std::string, std::set< std::string > > | buildPassDependencyGraph () const |
| std::vector< std::string > | topologicalSort (const std::map< std::string, std::set< std::string > > &dependencies) const |
| void | analyzePassGroupBarriers () |
| void | computePassGroupExecutionOrder () |
| void | createPassGroups () |
| void | submitPassGroup (RHI::CommandBuffer *cmdBuffer, const std::string &groupLeader) |
| void | trigger (const Event &event) |
| void | enqueue (Event &&event) |
| void | update () |
| void | updateAll () |
| SubscribeId | subscribe (Func &&func) |
| void | unsubscribeAll () |
静态 Private 成员函数 | |
| static constexpr auto | getEventTypeId () |
Private 属性 | |
| bool | m_needRecompiled = false |
| Device * | m_resourceDevice |
| FlowControl * | m_flowControl |
| CommandBufferGraph * | m_commandBufferGraph |
| ResourceManager * | m_resourceManager |
| CommandBufferToken | m_commandBufferToken |
| std::unordered_map< std::string, std::vector< std::string > > | m_passGroupOrders |
| std::vector< std::string > | m_passGroupExecutionOrder |
| std::unordered_map< std::string, std::vector< BarrierInfo > > | m_passGroupBarriers |
| std::map< std::string, std::set< std::string > > | m_passGroupDependencies |
| std::unordered_map< std::string, std::unique_ptr< RenderGraphImageNode > > | m_imageNodes |
| std::unordered_map< std::string, RenderGraphPassNode > | m_passNodes |
| UnionFind< std::string, char > | m_passesUnions |
| std::unordered_set< std::unique_ptr< Edge > > | m_edges |
| std::unordered_map< std::string, Image * > | m_allocatedImages |
| std::unordered_map< std::string, RHI::Pass * > | m_allocatedPasses |
| std::vector< PassDesc > | m_originalPasses |
| std::vector< std::string > | m_topologicalSortPasses |
| std::unordered_map< std::string, RHI::PassGroup * > | m_allocatedPassGroups |
| PipeHub & | pipeHub |
| std::conditional_t< EventSystemConfig::TriggerOnly::EventAsData, std::unordered_map< entt::id_type, std::unordered_map< SubscribeId, std::unique_ptr< IEventHandler > > >, std::unordered_map< entt::id_type, std::unordered_map< SubscribeId, std::unique_ptr< IEventIdentifierHandler > > > > | m_handlers |
| std::conditional_t< EventSystemConfig::TriggerOnly::EnableQueue, std::unordered_map< entt::id_type, std::vector< std::function< void()> > >, std::monostate > | m_eventQueue |
| SubscribeId | m_nextSubscribeId |
在文件 RenderGraph.h 第 246 行定义.
| FCT::RenderGraph::RenderGraph | ( | PipeHub & | pipeHub, |
| Device * | device, | ||
| FlowControl * | flowControl, | ||
| CommandBufferGraph * | commandBufferGraph, | ||
| ResourceManager * | resourceManager ) |
| FCT::RenderGraph::~RenderGraph | ( | ) |
在文件 RenderGraph.cpp 第 108 行定义.
|
private |
|
inline |
|
inline |
在文件 RenderGraph.h 第 421 行定义.
|
private |
|
private |
|
private |
|
private |
|
inline |
|
private |
|
private |
|
private |
|
private |
|
inline |
在文件 RenderGraph.h 第 308 行定义.
|
private |
|
inline |
|
private |
|
private |
|
private |
|
private |
在文件 RenderGraph.cpp 第 777 行定义.


|
private |
在文件 RenderGraph.cpp 第 590 行定义.


|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
inlineinherited |
在文件 IEventSystem.h 第 138 行定义.
| void FCT::RenderGraph::executeAllPassGroups | ( | RHI::CommandBuffer * | cmdBuffer | ) |
|
private |
|
inlinestaticconstexprprivateinherited |
在文件 IEventSystem.h 第 49 行定义.
| Image * FCT::RenderGraph::getImage | ( | const std::string & | name | ) | const |
在文件 RenderGraph.cpp 第 1425 行定义.
|
private |
在文件 RenderGraph.cpp 第 153 行定义.
|
private |
在文件 RenderGraph.cpp 第 132 行定义.
|
private |
|
inline |
在文件 RenderGraph.h 第 304 行定义.
| RHI::Pass * FCT::RenderGraph::getPass | ( | const std::string & | name | ) | const |
在文件 RenderGraph.cpp 第 1420 行定义.
| std::vector< TextureEdge * > FCT::RenderGraph::getTextureEdges | ( | const std::string & | passName | ) | const |
在文件 RenderGraph.cpp 第 1434 行定义.
|
private |
在文件 RenderGraph.cpp 第 416 行定义.


|
private |
| void FCT::RenderGraph::pushPipe | ( | ) |
| void FCT::RenderGraph::recompile | ( | ) |
在文件 RenderGraph.cpp 第 357 行定义.
|
private |
|
private |
|
private |
|
private |
在文件 RenderGraph.cpp 第 367 行定义.


|
private |
|
private |
|
private |
|
inlineinherited |
在文件 IEventSystem.h 第 192 行定义.
|
inline |
|
private |
|
private |
|
inlineinherited |
|
inline |
|
inlineinherited |
在文件 IEventSystem.h 第 239 行定义.
|
inlineinherited |
在文件 IEventSystem.h 第 165 行定义.
|
inlineinherited |
在文件 IEventSystem.h 第 180 行定义.
|
private |
在文件 RenderGraph.h 第 290 行定义.
|
private |
在文件 RenderGraph.h 第 291 行定义.
|
private |
在文件 RenderGraph.h 第 294 行定义.
|
private |
在文件 RenderGraph.h 第 268 行定义.
|
private |
todo:修改以做多CommandBufferGraph支持
在文件 RenderGraph.h 第 276 行定义.
|
private |
在文件 RenderGraph.h 第 289 行定义.
|
privateinherited |
在文件 IEventSystem.h 第 104 行定义.
|
private |
在文件 RenderGraph.h 第 267 行定义.
|
privateinherited |
在文件 IEventSystem.h 第 100 行定义.
|
private |
在文件 RenderGraph.h 第 286 行定义.
|
private |
在文件 RenderGraph.h 第 265 行定义.
|
privateinherited |
在文件 IEventSystem.h 第 106 行定义.
|
private |
在文件 RenderGraph.h 第 292 行定义.
|
private |
在文件 RenderGraph.h 第 288 行定义.
|
private |
在文件 RenderGraph.h 第 284 行定义.
|
private |
在文件 RenderGraph.h 第 285 行定义.
|
private |
在文件 RenderGraph.h 第 281 行定义.
|
private |
在文件 RenderGraph.h 第 280 行定义.
|
private |
在文件 RenderGraph.h 第 287 行定义.
|
private |
在文件 RenderGraph.h 第 266 行定义.
|
private |
在文件 RenderGraph.h 第 269 行定义.
|
private |
在文件 RenderGraph.h 第 293 行定义.
|
private |
在文件 RenderGraph.h 第 296 行定义.