18 #ifndef INCLUDED_RENDERER_BACKEND_VULKAN_RINGCOMMANDCONTEXT 19 #define INCLUDED_RENDERER_BACKEND_VULKAN_RINGCOMMANDCONTEXT 23 #include <glad/vulkan.h> 73 const void* data,
const size_t dataSize,
77 const void* data,
const size_t dataSize,
132 #endif // INCLUDED_RENDERER_BACKEND_VULKAN_RINGCOMMANDCONTEXT std::unique_ptr< CBuffer > m_StagingBuffer
Definition: RingCommandContext.h:107
size_t m_RingIndex
Definition: RingCommandContext.h:121
VkCommandBuffer commandBuffer
Definition: RingCommandContext.h:115
CDevice * m_Device
Definition: RingCommandContext.h:104
uint32_t m_StagingBufferLast
Definition: RingCommandContext.h:108
CSubmitScheduler & m_SubmitScheduler
Definition: RingCommandContext.h:105
uint32_t m_StagingBufferCurrentFirst
Definition: RingCommandContext.h:108
void WaitUntilFree(RingItem &item)
Definition: RingCommandContext.cpp:320
A helper class to batch VkQueueSubmit calls and track VkCommandBuffer usages properly.
Definition: SubmitScheduler.h:46
Format
Definition: Format.h:27
std::vector< RingItem > m_Ring
Definition: RingCommandContext.h:120
~CRingCommandContext()
Definition: RingCommandContext.cpp:91
uint32_t AcquireFreeSpace(const uint32_t requiredSize, const uint32_t requiredAlignment)
Definition: RingCommandContext.cpp:331
VkCommandBuffer GetCommandBuffer()
Definition: RingCommandContext.cpp:104
uint32_t m_MaxStagingBufferCapacity
Definition: RingCommandContext.h:110
uint32_t stagingBufferLast
Definition: RingCommandContext.h:118
bool isBegan
Definition: RingCommandContext.h:117
std::function< void(u8 *)> UploadBufferFunction
Definition: RingCommandContext.h:85
Backend
Definition: Backend.h:27
CRingCommandContext(CDevice *device, const size_t size, const uint32_t queueFamilyIndex, CSubmitScheduler &submitScheduler)
Definition: RingCommandContext.cpp:52
A simple helper class to decouple command buffers rotation from frames presenting.
Definition: RingCommandContext.h:47
CSubmitScheduler::SubmitHandle handle
Definition: RingCommandContext.h:116
uint32_t m_OptimalBufferCopyOffsetAlignment
Definition: RingCommandContext.h:109
unsigned int uint32_t
Definition: wposix_types.h:53
Definition: VideoMode.h:28
Definition: RingCommandContext.h:112
void Begin()
Definition: RingCommandContext.cpp:292
uint32_t GetFreeSpaceOffset(const uint32_t requiredSize, const uint32_t requiredAlignment) const
Definition: RingCommandContext.cpp:399
VkCommandPool commandPool
Definition: RingCommandContext.h:114
void ScheduleUpload(CTexture *texture, const Format dataFormat, const void *data, const size_t dataSize, const uint32_t level, const uint32_t layer)
Schedules uploads until next render pass or flush.
Definition: RingCommandContext.cpp:125
uint32_t SubmitHandle
Definition: SubmitScheduler.h:49
void Flush()
Submits the current command buffer to the SubmitScheduler.
Definition: RingCommandContext.cpp:112
uint32_t stagingBufferFirst
Definition: RingCommandContext.h:118
uint32_t m_StagingBufferFirst
Definition: RingCommandContext.h:108
void End()
Definition: RingCommandContext.cpp:310
static constexpr SubmitHandle INVALID_SUBMIT_HANDLE
Definition: SubmitScheduler.h:50