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

◆ flush_deferred_commands()

vk::Semaphore MayaFlux::Core::BackendResourceManager::flush_deferred_commands ( )

Flush deferred commands and return a semaphore that signals when they are complete.

Returns
Semaphore that will be signaled when deferred commands are finished

Definition at line 1115 of file BackendResoureManager.cpp.

1116{
1118 return nullptr;
1119
1120 vk::CommandBuffer cmd = m_command_manager.get_deferred_cmd();
1121 cmd.end();
1122
1123 if (!m_deferred_semaphore) {
1124 vk::SemaphoreCreateInfo sem_info {};
1125 m_deferred_semaphore = m_context.get_device().createSemaphore(sem_info);
1126 }
1127
1128 vk::SubmitInfo submit {};
1129 submit.commandBufferCount = 1;
1130 submit.pCommandBuffers = &cmd;
1131 submit.signalSemaphoreCount = 1;
1132 submit.pSignalSemaphores = &m_deferred_semaphore;
1133
1134 if (m_context.get_graphics_queue().submit(1, &submit, nullptr) != vk::Result::eSuccess) {
1136 "Failed to submit deferred command buffer");
1137 }
1138
1140
1141 return m_deferred_semaphore;
1142}
#define MF_ERROR(comp, ctx,...)
vk::CommandBuffer cmd
void reset_deferred()
Reset deferred command buffer and clear pending state.
bool has_deferred_commands() const
End and submit single-time command for compute operations.
vk::CommandBuffer get_deferred_cmd() const
Get the deferred command buffer (if any)
vk::Device get_device() const
Get logical device.
Definition VKContext.hpp:49
vk::Queue get_graphics_queue() const
Get graphics queue.
Definition VKContext.hpp:54
@ GraphicsBackend
Graphics/visual rendering backend (Vulkan, OpenGL)
@ Core
Core engine, backend, subsystems.

References cmd, MayaFlux::Journal::Core, MayaFlux::Core::VKCommandManager::get_deferred_cmd(), MayaFlux::Core::VKContext::get_device(), MayaFlux::Core::VKContext::get_graphics_queue(), MayaFlux::Journal::GraphicsBackend, MayaFlux::Core::VKCommandManager::has_deferred_commands(), m_command_manager, m_context, m_deferred_semaphore, MF_ERROR, and MayaFlux::Core::VKCommandManager::reset_deferred().

+ Here is the call graph for this function: