MayaFlux 0.5.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 509 of file ShaderProcessor.cpp.

512{
513 auto& foundry = Portal::Graphics::get_shader_foundry();
514
516 foundry.submit_and_wait(cmd_id);
517 return;
518 }
519
520 m_pending_fence = foundry.submit_async(cmd_id);
521
524 "Deferred submission failed, no fence returned");
525 return;
526 }
527
528 m_pending_buffer = buffer;
529}
#define MF_ERROR(comp, ctx,...)
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 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: