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

◆ submit_recorded()

void MayaFlux::Buffers::ShaderProcessor::submit_recorded ( Portal::Graphics::CommandBufferID  cmd_id,
const std::shared_ptr< VKBuffer > &  buffer 
)
protected

Submit a recorded command buffer honoring the submission mode.

Parameters
cmd_idCommand buffer to submit.
bufferBuffer being processed. Retained until resolution when deferred, so on_dispatch_complete receives the same instance.

Synchronous submission calls submit_and_wait and returns. Deferred submission calls submit_async and stores the fence; a failed submission falls back to leaving nothing pending.

Definition at line 562 of file ShaderProcessor.cpp.

565{
566 auto& foundry = Portal::Graphics::get_shader_foundry();
567
569 foundry.submit_and_wait(cmd_id);
570 return;
571 }
572
573 m_pending_fence = foundry.submit_async(cmd_id);
574
577 "Deferred submission failed, no fence returned");
578 return;
579 }
580
582}
#define MF_ERROR(comp, ctx,...)
std::shared_ptr< NetworkGeometryBuffer > buffer
std::shared_ptr< VKBuffer > m_pending_buffer
Buffer retained for the outstanding submission.
Portal::Graphics::FenceID m_pending_fence
Outstanding async submission, if any.
bool m_deferred_submission
False submits synchronously, preserving pre-existing behaviour.
@ BufferProcessing
Buffer processing (Buffers::BufferManager, processing chains)
@ Buffers
Buffers, Managers, processors and processing chains.
constexpr FenceID INVALID_FENCE
MAYAFLUX_API ShaderFoundry & get_shader_foundry()
Get the global shader compiler instance.

References buffer, MayaFlux::Journal::BufferProcessing, MayaFlux::Journal::Buffers, MayaFlux::Portal::Graphics::get_shader_foundry(), MayaFlux::Portal::Graphics::INVALID_FENCE, m_deferred_submission, m_pending_buffer, m_pending_fence, and MF_ERROR.

Referenced by MayaFlux::Buffers::ComputeProcessor::execute_shader().

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