MayaFlux 1.0.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ dispatch_core_dependency()

void MayaFlux::Yantra::GpuDispatchCore::dispatch_core_dependency ( const std::vector< DependencyStage > &  stages)
protected

Multi-pipeline dependency dispatch.

For each stage, in order: applies its shader config (swap_shader equivalent), invokes stage_fn to perform whatever staging that stage needs, ensures its GpuResourceManager unit exists, binds its descriptors, invokes hazard_fn to resolve hazard resources now that this stage's data exists, then accumulates a Portal::Graphics::ComputeStage. After every stage is prepared, records and submits the full sequence in one command buffer via GpuResourceManager::dispatch_sequence.

Restores the context's original shader config, bindings, and staged data after the sequence runs, so a subsequent unrelated dispatch_core call on this context is unaffected.

Parameters
stagesOrdered list of stage descriptions.

Definition at line 363 of file GpuDispatchCore.cpp.

364{
365 const auto plan = prepare_dependency(stages);
366 m_resources.dispatch_sequence(plan.keys, plan.groups, plan.push_constants, plan.hazards, plan.indirect);
367}
DependencyPlan prepare_dependency(const std::vector< DependencyStage > &stages)
void dispatch_sequence(const std::vector< std::string > &keys, const std::vector< std::array< uint32_t, 3 > > &groups_per_key, const std::vector< std::vector< uint8_t > > &push_constants_per_key, const std::vector< std::vector< Portal::Graphics::HazardResource > > &hazards_per_key, const std::vector< Portal::Graphics::IndirectDispatch > &indirect_per_key={})
Record a dispatch for each requested key into one command buffer via ComputePress::record_sequence,...

References MayaFlux::Yantra::GpuResourceManager::dispatch_sequence(), m_resources, and prepare_dependency().

Referenced by MayaFlux::Yantra::GpuExecutionContext< InputType, OutputType >::execute().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: