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

◆ dispatch_sequence_async()

Portal::Graphics::FenceID MayaFlux::Yantra::GpuResourceManager::dispatch_sequence_async ( 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 = {} 
)

Non-blocking counterpart of dispatch_sequence.

Records the identical command buffer and submits it via ShaderFoundry::submit_async instead of submit_and_wait. Barriers owed to each stage's hazards are recorded as in dispatch_sequence, including the one after the final stage, so a caller that does not await the fence still gets the trailing dependency for anything submitted later.

Like dispatch_sequence, and unlike dispatch_async, no shader-write to host-read barrier is recorded. Host reads after the fence has signaled rely on the fence's own visibility guarantee and on the buffers being host coherent.

Returns
FenceID to poll with ShaderFoundry::is_fence_signaled and to release once signaled.

Definition at line 865 of file GpuResourceManager.cpp.

871{
872 auto& foundry = Portal::Graphics::get_shader_foundry();
873 return foundry.submit_async(
874 record_sequence_commands(keys, groups_per_key, push_constants_per_key, hazards_per_key, indirect_per_key));
875}
Portal::Graphics::CommandBufferID record_sequence_commands(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 one command buffer holding a dispatch per key, with the barriers each stage's hazards owe the ...
MAYAFLUX_API ShaderFoundry & get_shader_foundry()
Get the global shader compiler instance.

References MayaFlux::Portal::Graphics::get_shader_foundry(), and record_sequence_commands().

Referenced by MayaFlux::Yantra::GpuDispatchCore::dispatch_core_dependency_async().

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