FCT
|
#include <RenderGraph.h>
类 | |
struct | BarrierInfo |
struct | ImageState |
Public 成员函数 | |
RenderGraph (Device *device, FlowControl *flowControl, CommandBufferGraph *commandBufferGraph, ResourceManager *resourceManager) | |
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 | compile () |
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 () |
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 | 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 | addPass (const PassDesc &desc) |
void | cleanUpCompile () |
void | cleanUp () |
void | resolveTextureSizes () |
void | groupPasses () |
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 > | topologicalSort (const std::map< std::string, std::set< std::string > > &dependencies) const |
void | analyzePassGroupBarriers () |
void | computePassGroupExecutionOrder () |
void | createPassGroups () |
PipelineStage | convertShaderStageToPipelineStage (ShaderStage stage) const |
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 属性 | |
uint32_t | m_commandBufferIndex = 0 |
CommandBufferToken | m_commandBufferToken |
Device * | m_resourceDevice |
FlowControl * | m_flowControl |
CommandBufferGraph * | m_commandBufferGraph |
ResourceManager * | m_resourceManager |
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::vector< std::unique_ptr< Edge > > | m_edges |
std::unordered_map< std::string, Image * > | m_allocatedImages |
std::unordered_map< std::string, RHI::Pass * > | m_allocatedPasses |
std::unordered_map< std::string, RHI::PassGroup * > | m_allocatedPassGroups |
std::unordered_map< std::string, std::vector< std::string > > | m_passGroupOrders |
std::vector< std::string > | m_passGroupExecutionOrder |
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 第 202 行定义.
FCT::RenderGraph::RenderGraph | ( | Device * | device, |
FlowControl * | flowControl, | ||
CommandBufferGraph * | commandBufferGraph, | ||
ResourceManager * | resourceManager ) |
|
private |
|
inline |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
在文件 RenderGraph.cpp 第 247 行定义.
|
inline |
|
private |
|
private |
|
private |
|
private |
在文件 RenderGraph.cpp 第 613 行定义.
|
private |
在文件 RenderGraph.cpp 第 467 行定义.
|
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 |
|
private |
在文件 RenderGraph.cpp 第 128 行定义.
|
private |
在文件 RenderGraph.cpp 第 107 行定义.
|
private |
RHI::Pass * FCT::RenderGraph::getPass | ( | const std::string & | name | ) | const |
std::vector< TextureEdge * > FCT::RenderGraph::getTextureEdges | ( | const std::string & | passName | ) | const |
|
private |
在文件 RenderGraph.cpp 第 299 行定义.
|
private |
|
private |
在文件 RenderGraph.cpp 第 252 行定义.
|
private |
|
private |
|
private |
|
inlineinherited |
在文件 IEventSystem.h 第 192 行定义.
|
inline |
|
private |
|
inlineinherited |
|
inline |
|
inlineinherited |
在文件 IEventSystem.h 第 239 行定义.
|
inlineinherited |
在文件 IEventSystem.h 第 165 行定义.
|
inlineinherited |
在文件 IEventSystem.h 第 180 行定义.
|
private |
在文件 RenderGraph.h 第 245 行定义.
|
private |
在文件 RenderGraph.h 第 246 行定义.
|
private |
在文件 RenderGraph.h 第 309 行定义.
|
private |
在文件 RenderGraph.h 第 217 行定义.
|
private |
在文件 RenderGraph.h 第 204 行定义.
|
private |
todo:修改以做多CommandBufferGraph支持
在文件 RenderGraph.h 第 210 行定义.
|
private |
在文件 RenderGraph.h 第 244 行定义.
|
privateinherited |
在文件 IEventSystem.h 第 104 行定义.
|
private |
在文件 RenderGraph.h 第 216 行定义.
|
privateinherited |
在文件 IEventSystem.h 第 100 行定义.
|
private |
在文件 RenderGraph.h 第 241 行定义.
|
privateinherited |
在文件 IEventSystem.h 第 106 行定义.
|
private |
在文件 RenderGraph.h 第 243 行定义.
|
private |
在文件 RenderGraph.h 第 239 行定义.
|
private |
在文件 RenderGraph.h 第 240 行定义.
|
private |
在文件 RenderGraph.h 第 363 行定义.
|
private |
在文件 RenderGraph.h 第 362 行定义.
|
private |
在文件 RenderGraph.h 第 242 行定义.
|
private |
在文件 RenderGraph.h 第 215 行定义.
|
private |
在文件 RenderGraph.h 第 218 行定义.