18 #ifndef INCLUDED_RENDERER_BACKEND_VULKAN_SUBMITSCHEDULER 19 #define INCLUDED_RENDERER_BACKEND_VULKAN_SUBMITSCHEDULER 23 #include <glad/vulkan.h> 39 class CRingCommandContext;
95 VkSemaphore acquireImageSemaphore = VK_NULL_HANDLE;
97 VkSemaphore submitDone = VK_NULL_HANDLE;
117 #endif // INCLUDED_RENDERER_BACKEND_VULKAN_SUBMITSCHEDULER void Flush()
Definition: SubmitScheduler.cpp:135
bool AcquireNextImage(CSwapChain &swapChain)
Definition: SubmitScheduler.cpp:87
std::unique_ptr< CRingCommandContext > m_AcquireCommandContext
Definition: SubmitScheduler.h:107
Definition: SubmitScheduler.h:83
VkPipelineStageFlags m_NextWaitDstStageMask
Definition: SubmitScheduler.h:102
A helper class to batch VkQueueSubmit calls and track VkCommandBuffer usages properly.
Definition: SubmitScheduler.h:46
VkQueue m_Queue
Definition: SubmitScheduler.h:69
Definition: SwapChain.h:43
std::queue< SubmittedHandle > m_SubmittedHandles
Definition: SubmitScheduler.h:88
~CSubmitScheduler()
Definition: SubmitScheduler.cpp:69
void Present(CSwapChain &swapChain)
Definition: SubmitScheduler.cpp:100
uint32_t fenceIndex
Definition: SubmitScheduler.h:86
VkSemaphore m_NextWaitSemaphore
Definition: SubmitScheduler.h:101
VkFence value
Definition: SubmitScheduler.h:73
void WaitUntilFree(const SubmitHandle handle)
Definition: SubmitScheduler.cpp:116
VkSemaphore m_NextSubmitSignalSemaphore
Definition: SubmitScheduler.h:103
uint32_t GetFrameID() const
Definition: SubmitScheduler.h:63
Definition: SubmitScheduler.h:92
SubmitHandle m_CurrentHandle
Definition: SubmitScheduler.h:82
Backend
Definition: Backend.h:27
Definition: SubmitScheduler.h:71
SubmitHandle value
Definition: SubmitScheduler.h:85
uint32_t m_FenceIndex
Definition: SubmitScheduler.h:78
bool inUse
Definition: SubmitScheduler.h:75
unsigned int uint32_t
Definition: wposix_types.h:53
Definition: VideoMode.h:28
std::array< FrameObject, NUMBER_OF_FRAMES_IN_FLIGHT > m_FrameObjects
Definition: SubmitScheduler.h:99
uint32_t m_FrameID
Definition: SubmitScheduler.h:81
SubmitHandle lastUsedHandle
Definition: SubmitScheduler.h:74
CSubmitScheduler(CDevice *device, const uint32_t queueFamilyIndex, VkQueue queue)
Definition: SubmitScheduler.cpp:36
CDevice * m_Device
Definition: SubmitScheduler.h:68
std::vector< Fence > m_Fences
Definition: SubmitScheduler.h:77
std::vector< VkCommandBuffer > m_SubmittedCommandBuffers
Definition: SubmitScheduler.h:105
uint32_t SubmitHandle
Definition: SubmitScheduler.h:49
SubmitHandle Submit(VkCommandBuffer commandBuffer)
Definition: SubmitScheduler.cpp:110
std::unique_ptr< CRingCommandContext > m_PresentCommandContext
Definition: SubmitScheduler.h:108
static constexpr SubmitHandle INVALID_SUBMIT_HANDLE
Definition: SubmitScheduler.h:50