MayaFlux 0.4.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 1017 of file BackendResoureManager.cpp.

1018{
1020 return nullptr;
1021
1022 vk::CommandBuffer cmd = m_command_manager.get_deferred_cmd();
1023 cmd.end();
1024
1025 if (!m_deferred_semaphore) {
1026 vk::SemaphoreCreateInfo sem_info {};
1027 m_deferred_semaphore = m_context.get_device().createSemaphore(sem_info);
1028 }
1029
1030 vk::SubmitInfo submit {};
1031 submit.commandBufferCount = 1;
1032 submit.pCommandBuffers = &cmd;
1033 submit.signalSemaphoreCount = 1;
1034 submit.pSignalSemaphores = &m_deferred_semaphore;
1035
1036 if (m_context.get_graphics_queue().submit(1, &submit, nullptr) != vk::Result::eSuccess) {
1038 "Failed to submit deferred command buffer");
1039 }
1040
1042
1043 return m_deferred_semaphore;
1044}
#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: