|  | 
|  | VulkanVaoManager (VulkanDevice *device, VulkanRenderSystem *renderSystem, const NameValuePairList *params) | 
|  | 
|  | ~VulkanVaoManager () override | 
|  | 
| void | _notifyDeviceStalled () | 
|  | 
| void | _notifyNewCommandBuffer () | 
|  | 
| void | _schedulePoolAdvanceFrame (VulkanDescriptorPool *pool) | 
|  | 
| void | _update () override | 
|  | 
| void | addDelayedFunc (VulkanDelayedFuncBase *cmd) | 
|  | 
| VulkanRawBuffer | allocateRawBuffer (VboFlag vboFlag, size_t sizeBytes, size_t alignment=4u) | 
|  | 
| VkDeviceMemory | allocateTexture (const VkMemoryRequirements &memReq, size_t &outVboIdx, size_t &outBufferOffset) | 
|  | 
| void | bindDrawIdVertexBuffer (VkCommandBuffer cmdBuffer, uint32 binding=15) | 
|  | 
| void | cleanupEmptyPools () override | 
|  | Frees GPU memory if there are empty, unused pools. 
 | 
|  | 
| AsyncTicketPtr | createAsyncTicket (BufferPacked *creator, StagingBuffer *stagingBuffer, size_t elementStart, size_t elementCount) override | 
|  | 
| StagingBuffer * | createStagingBuffer (size_t sizeBytes, bool forUpload) override | 
|  | Creates a new staging buffer and adds it to the pool. 
 | 
|  | 
| VulkanStagingTexture * | createStagingTexture (PixelFormatGpu formatFamily, size_t sizeBytes) | 
|  | 
| void | deallocateRawBuffer (VulkanRawBuffer &rawBuffer, bool bImmediately) | 
|  | 
| void | deallocateTexture (size_t vboIdx, size_t bufferOffset, size_t sizeBytes) | 
|  | 
| void | destroyStagingTexture (VulkanStagingTexture *stagingTexture) | 
|  | 
| VkSemaphore | getAvailableSemaphore () | 
|  | 
| void | getAvailableSemaphores (VkSemaphoreArray &semaphoreArray, size_t numSemaphores) | 
|  | Insert into the end of semaphoreArray 'numSemaphores' number of semaphores that are safe for use. 
 | 
|  | 
| VulkanDescriptorPool * | getDescriptorPool (const VulkanRootLayout *rootLayout, size_t setIdx, VkDescriptorSetLayout setLayout) | 
|  | 
| VulkanDevice * | getDevice () const | 
|  | 
| VertexBufferPacked * | getDrawId () const | 
|  | 
| void | getMemoryStats (MemoryStatsEntryVec &outStats, size_t &outCapacityBytes, size_t &outFreeBytes, Log *log, bool &outIncludesTextures) const override | 
|  | Retrieves memory stats about our GPU pools being managed. 
 | 
|  | 
| VulkanRenderSystem * | getVkRenderSystem () | 
|  | 
| void | initDrawIdVertexBuffer () | 
|  | 
| bool | isFrameFinished (uint32 frameCount) override | 
|  | See VaoManager::isFrameFinished. 
 | 
|  | 
| void | notifySemaphoreUnused (VkSemaphore semaphore) | 
|  | 
| void | notifyWaitSemaphoresSubmitted (const VkSemaphoreArray &semaphores) | 
|  | 
| void | notifyWaitSemaphoreSubmitted (VkSemaphore semaphore) | 
|  | Call this function after you've submitted to the GPU a VkSemaphore that will be waited on. 
 | 
|  | 
| bool | supportsCoherentMapping () const | 
|  | 
| bool | supportsNonCoherentMapping () const | 
|  | 
| void | waitForSpecificFrameToFinish (uint32 frameCount) override | 
|  | See VaoManager::waitForSpecificFrameToFinish. 
 | 
|  | 
| uint8 | waitForTailFrameToFinish () override | 
|  | Returns the current frame # (which wraps to 0 every mDynamicBufferMultiplier times). 
 | 
|  | 
|  | VaoManager (const NameValuePairList *params) | 
|  | 
| virtual | ~VaoManager () | 
|  | 
| virtual void | _beginFrame () | 
|  | 
| uint8 | _getDynamicBufferCurrentFrameNoWait () const | 
|  | 
| void | _notifyStagingBufferEnteredZeroRef (StagingBuffer *stagingBuffer) | 
|  | 
| void | _notifyStagingBufferLeftZeroRef (StagingBuffer *stagingBuffer) | 
|  | 
| virtual void | _waitUntilCommitedCommandBufferCompleted () | 
|  | Waits for the last committed command buffer completion instead of the last frame completion with command buffer switching, so we can continue to work with current command buffer. 
 | 
|  | 
| ConstBufferPacked * | createConstBuffer (size_t sizeBytes, BufferType bufferType, void *initialData, bool keepAsShadow) | 
|  | Creates an constant buffer based on the given parameters. 
 | 
|  | 
| IndexBufferPacked * | createIndexBuffer (IndexBufferPacked::IndexType indexType, size_t numIndices, BufferType bufferType, void *initialData, bool keepAsShadow) | 
|  | Creates an index buffer based on the given parameters. 
 | 
|  | 
| IndirectBufferPacked * | createIndirectBuffer (size_t sizeBytes, BufferType bufferType, void *initialData, bool keepAsShadow) | 
|  | Creates an indirect buffer. 
 | 
|  | 
| ReadOnlyBufferPacked * | createReadOnlyBuffer (PixelFormatGpu pixelFormat, size_t sizeBytes, BufferType bufferType, void *initialData, bool keepAsShadow) | 
|  | Creates a read-only buffer based on the given parameters. 
 | 
|  | 
| TexBufferPacked * | createTexBuffer (PixelFormatGpu pixelFormat, size_t sizeBytes, BufferType bufferType, void *initialData, bool keepAsShadow) | 
|  | Creates an constant buffer based on the given parameters. 
 | 
|  | 
| UavBufferPacked * | createUavBuffer (size_t numElements, uint32 bytesPerElement, uint32 bindFlags, void *initialData, bool keepAsShadow) | 
|  | Creates an UAV buffer based on the given parameters. 
 | 
|  | 
| VertexArrayObject * | createVertexArrayObject (const VertexBufferPackedVec &vertexBuffers, IndexBufferPacked *indexBuffer, OperationType opType) | 
|  | Creates a VertexArrayObject that binds all the vertex buffers with their respective declarations, and the index buffers. 
 | 
|  | 
| VertexBufferPacked * | createVertexBuffer (const VertexElement2Vec &vertexElements, size_t numVertices, BufferType bufferType, void *initialData, bool keepAsShadow) | 
|  | Creates a vertex buffer based on the given parameters. 
 | 
|  | 
| void | deleteStagingBuffers () | 
|  | 
| void | destroyConstBuffer (ConstBufferPacked *constBuffer) | 
|  | Destroys the given constant buffer created with createConstBuffer. 
 | 
|  | 
| void | destroyIndexBuffer (IndexBufferPacked *indexBuffer) | 
|  | Destroys the given index buffer created with createIndexBuffer. 
 | 
|  | 
| void | destroyIndirectBuffer (IndirectBufferPacked *indirectBuffer) | 
|  | Destroys the given indirect buffer created with createIndirectBuffer. 
 | 
|  | 
| void | destroyReadOnlyBuffer (ReadOnlyBufferPacked *readOnlyBuffer) | 
|  | Destroys the given texture buffer created with createReadOnlyBuffer. 
 | 
|  | 
| void | destroyTexBuffer (TexBufferPacked *texBuffer) | 
|  | Destroys the given texture buffer created with createTexBuffer. 
 | 
|  | 
| void | destroyUavBuffer (UavBufferPacked *uavBuffer) | 
|  | Destroys the given UAV buffer created with createUavBuffer. 
 | 
|  | 
| void | destroyVertexArrayObject (VertexArrayObject *vao) | 
|  | Destroys the input pointer. 
 | 
|  | 
| void | destroyVertexBuffer (VertexBufferPacked *vertexBuffer) | 
|  | Destroys the given vertex buffer created with createVertexBuffer. 
 | 
|  | 
| uint32 | getConstBufferAlignment () const | 
|  | 
| size_t | getConstBufferMaxSize () const | 
|  | 
| uint32 | getDefaultStagingBufferLifetime () const | 
|  | 
| uint32 | getDefaultStagingBufferUnfencedTime () const | 
|  | 
| uint8 | getDynamicBufferMultiplier () const | 
|  | 
| uint32 | getFrameCount () | 
|  | 
| size_t | getReadOnlyBufferMaxSize () const | 
|  | 
| StagingBuffer * | getStagingBuffer (size_t minSizeBytes, bool forUpload) | 
|  | Retrieves a staging buffer for use. 
 | 
|  | 
| uint32 | getTexBufferAlignment () const | 
|  | 
| size_t | getTexBufferMaxSize () const | 
|  | 
| Timer * | getTimer () | 
|  | 
| uint32 | getUavBufferAlignment () const | 
|  | 
| size_t | getUavBufferMaxSize () const | 
|  | 
| bool | readOnlyIsTexBuffer () const | 
|  | When true, ReadOnlyBufferPacked behaves like TexBufferPacked, i.e. 
 | 
|  | 
| void | setDefaultStagingBufferlifetime (uint32 lifetime, uint32 unfencedTime) | 
|  | Sets the default time for staging buffers. 
 | 
|  | 
| bool | supportsBaseInstance () const | 
|  | 
| bool | supportsIndirectBuffers () const | 
|  | When false, IndirectBufferPacked will emulate the mapping behavior, and we need to use the emulated calls in RenderSystem. 
 | 
|  | 
| bool | supportsPersistentMapping () const | 
|  |