Pyrogenesis HEAD
Pyrogenesis, a RTS Engine
|
A helper class to batch VkQueueSubmit calls and track VkCommandBuffer usages properly. More...
#include <SubmitScheduler.h>
Classes | |
struct | Fence |
struct | FrameObject |
struct | SubmittedHandle |
Public Types | |
using | SubmitHandle = uint32_t |
Public Member Functions | |
CSubmitScheduler (CDevice *device, const uint32_t queueFamilyIndex, VkQueue queue) | |
~CSubmitScheduler () | |
bool | AcquireNextImage (CSwapChain &swapChain) |
void | Present (CSwapChain &swapChain) |
SubmitHandle | Submit (VkCommandBuffer commandBuffer) |
void | WaitUntilFree (const SubmitHandle handle) |
uint32_t | GetFrameID () const |
void | Flush () |
Static Public Attributes | |
static constexpr SubmitHandle | INVALID_SUBMIT_HANDLE = 0 |
Private Attributes | |
CDevice * | m_Device = nullptr |
VkQueue | m_Queue = VK_NULL_HANDLE |
std::vector< Fence > | m_Fences |
uint32_t | m_FenceIndex = 0 |
uint32_t | m_FrameID = 0 |
SubmitHandle | m_CurrentHandle = INVALID_SUBMIT_HANDLE + 1 |
std::queue< SubmittedHandle > | m_SubmittedHandles |
std::array< FrameObject, NUMBER_OF_FRAMES_IN_FLIGHT > | m_FrameObjects |
VkSemaphore | m_NextWaitSemaphore = VK_NULL_HANDLE |
VkPipelineStageFlags | m_NextWaitDstStageMask = 0 |
VkSemaphore | m_NextSubmitSignalSemaphore = VK_NULL_HANDLE |
std::vector< VkCommandBuffer > | m_SubmittedCommandBuffers |
std::unique_ptr< CRingCommandContext > | m_AcquireCommandContext |
std::unique_ptr< CRingCommandContext > | m_PresentCommandContext |
bool | m_DebugWaitIdleBeforeAcquire = false |
bool | m_DebugWaitIdleBeforePresent = false |
bool | m_DebugWaitIdleAfterPresent = false |
A helper class to batch VkQueueSubmit calls and track VkCommandBuffer usages properly.
Renderer::Backend::Vulkan::CSubmitScheduler::CSubmitScheduler | ( | CDevice * | device, |
const uint32_t | queueFamilyIndex, | ||
VkQueue | queue | ||
) |
Renderer::Backend::Vulkan::CSubmitScheduler::~CSubmitScheduler | ( | ) |
bool Renderer::Backend::Vulkan::CSubmitScheduler::AcquireNextImage | ( | CSwapChain & | swapChain | ) |
void Renderer::Backend::Vulkan::CSubmitScheduler::Flush | ( | ) |
|
inline |
void Renderer::Backend::Vulkan::CSubmitScheduler::Present | ( | CSwapChain & | swapChain | ) |
CSubmitScheduler::SubmitHandle Renderer::Backend::Vulkan::CSubmitScheduler::Submit | ( | VkCommandBuffer | commandBuffer | ) |
void Renderer::Backend::Vulkan::CSubmitScheduler::WaitUntilFree | ( | const SubmitHandle | handle | ) |
|
staticconstexpr |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |