#include <OgreVulkanQueue.h>
|  | 
|  | VulkanQueue () | 
|  | 
|  | ~VulkanQueue () | 
|  | 
| bool | _isFrameFinished (uint8 frameIdx) | 
|  | 
| void | _waitOnFrame (uint8 frameIdx) | 
|  | 
| VkFence | acquireCurrentFence () | 
|  | 
| void | addWindowToWaitFor (VkSemaphore imageAcquisitionSemaph) | 
|  | When we'll call commitAndNextCommandBuffer, we'll have to wait for this semaphore on to execute STAGE_COLOR_ATTACHMENT_OUTPUT_BIT. 
 | 
|  | 
| void | commitAndNextCommandBuffer (SubmissionType::SubmissionType submissionType=SubmissionType::FlushOnly) | 
|  | 
| void | destroy () | 
|  | 
| void | endAllEncoders (bool endRenderPassDesc=true) | 
|  | 
| void | endComputeEncoder () | 
|  | 
| void | endCopyEncoder () | 
|  | 
| void | endRenderEncoder (const bool endRenderPassDesc=true) | 
|  | 
| void | getComputeEncoder () | 
|  | 
| void | getCopyEncoder (const BufferPacked *buffer, TextureGpu *texture, const bool bDownload, CopyEncTransitionMode::CopyEncTransitionMode transitionMode) | 
|  | Call this function when you need to start copy/transfer operations. 
 | 
|  | 
| void | getCopyEncoderAsyncTextureTicketUpload () | 
|  | 
| void | getCopyEncoderV1Buffer (const bool bDownload) | 
|  | 
| EncoderState | getEncoderState () const | 
|  | 
| uint32 | getFamilyIdx () const | 
|  | 
| void | getGraphicsEncoder () | 
|  | 
| VulkanVaoManager * | getVaoManager () | 
|  | 
| void | init (VkDevice device, VkQueue queue, VulkanRenderSystem *renderSystem) | 
|  | 
| bool | isFenceFlushed (VkFence fence) const | 
|  | If this function returns false, waiting on the fence would cause a deadlock since it will never signal. 
 | 
|  | 
| void | notifyTextureDestroyed (VulkanTextureGpu *texture) | 
|  | 
| void | releaseFence (VkFence fence) | 
|  | 
| void | setExternalQueue (VulkanDevice *owner, QueueFamily family, VkQueue queue) | 
|  | 
| void | setQueueData (VulkanDevice *owner, QueueFamily family, uint32 familyIdx, uint32 queueIdx) | 
|  | 
◆ EncoderState
| Enumerator | 
|---|
| EncoderGraphicsOpen |  | 
| EncoderComputeOpen |  | 
| EncoderCopyOpen |  | 
| EncoderClosed |  | 
 
 
◆ QueueFamily
| Enumerator | 
|---|
| Graphics |  | 
| Compute |  | 
| Transfer |  | 
| NumQueueFamilies |  | 
 
 
◆ VulkanQueue()
      
        
          | Ogre::VulkanQueue::VulkanQueue | ( |  | ) |  | 
      
 
 
◆ ~VulkanQueue()
      
        
          | Ogre::VulkanQueue::~VulkanQueue | ( |  | ) |  | 
      
 
 
◆ _isFrameFinished()
      
        
          | bool Ogre::VulkanQueue::_isFrameFinished | ( | uint8 | frameIdx | ) |  | 
      
 
 
◆ _waitOnFrame()
      
        
          | void Ogre::VulkanQueue::_waitOnFrame | ( | uint8 | frameIdx | ) |  | 
      
 
 
◆ acquireCurrentFence()
      
        
          | VkFence Ogre::VulkanQueue::acquireCurrentFence | ( |  | ) |  | 
      
 
 
◆ addWindowToWaitFor()
      
        
          | void Ogre::VulkanQueue::addWindowToWaitFor | ( | VkSemaphore | imageAcquisitionSemaph | ) |  | 
      
 
When we'll call commitAndNextCommandBuffer, we'll have to wait for this semaphore on to execute STAGE_COLOR_ATTACHMENT_OUTPUT_BIT. 
 
 
◆ commitAndNextCommandBuffer()
◆ destroy()
      
        
          | void Ogre::VulkanQueue::destroy | ( |  | ) |  | 
      
 
 
◆ endAllEncoders()
      
        
          | void Ogre::VulkanQueue::endAllEncoders | ( | bool | endRenderPassDesc = true | ) |  | 
      
 
 
◆ endComputeEncoder()
      
        
          | void Ogre::VulkanQueue::endComputeEncoder | ( |  | ) |  | 
      
 
 
◆ endCopyEncoder()
      
        
          | void Ogre::VulkanQueue::endCopyEncoder | ( |  | ) |  | 
      
 
 
◆ endRenderEncoder()
      
        
          | void Ogre::VulkanQueue::endRenderEncoder | ( | const bool | endRenderPassDesc = true | ) |  | 
      
 
 
◆ getComputeEncoder()
      
        
          | void Ogre::VulkanQueue::getComputeEncoder | ( |  | ) |  | 
      
 
 
◆ getCopyEncoder()
Call this function when you need to start copy/transfer operations. 
You don't have to pair every getCopyEncoder call with an endCopyEncoder call. In fact this is discouraged.
Keep calling getCopyEncoder until you're done with all transfer operations
- See also
- VulkanQueue::prepareForUpload 
- 
VulkanQueue::prepareForDownload 
- Parameters
- 
  
    | buffer | The buffer we're copying from/to. Can be nullptr |  | texture | The texture we're copying from/to. Can be nullptr |  
 
If uploading, the texture will be transitioned to VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL If downloading, the texture will be transitioned to VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL 
- Parameters
- 
  
    | bDownload | True if we plan to do CPU -> GPU transfers False if we plan to do GPU -> CPU transfers |  
 
If you want to perform GPU -> GPU transfers, then you need to call: 
queue->getCopyEncoder( src, src, true );
queue->getCopyEncoder( dst, dst, false );
- Parameters
- 
  
  
 
 
◆ getCopyEncoderAsyncTextureTicketUpload()
      
        
          | void Ogre::VulkanQueue::getCopyEncoderAsyncTextureTicketUpload | ( |  | ) |  | 
      
 
 
◆ getCopyEncoderV1Buffer()
      
        
          | void Ogre::VulkanQueue::getCopyEncoderV1Buffer | ( | const bool | bDownload | ) |  | 
      
 
 
◆ getEncoderState()
◆ getFamilyIdx()
  
  | 
        
          | uint32 Ogre::VulkanQueue::getFamilyIdx | ( |  | ) | const |  | inline | 
 
 
◆ getGraphicsEncoder()
      
        
          | void Ogre::VulkanQueue::getGraphicsEncoder | ( |  | ) |  | 
      
 
 
◆ getVaoManager()
◆ init()
◆ isFenceFlushed()
      
        
          | bool Ogre::VulkanQueue::isFenceFlushed | ( | VkFence | fence | ) | const | 
      
 
If this function returns false, waiting on the fence would cause a deadlock since it will never signal. 
You must call commitAndNextCommandBuffer before waiting. 
 
 
◆ notifyTextureDestroyed()
◆ releaseFence()
      
        
          | void Ogre::VulkanQueue::releaseFence | ( | VkFence | fence | ) |  | 
      
 
 
◆ setExternalQueue()
◆ setQueueData()
◆ mCurrentCmdBuffer
◆ mDevice
◆ mFamily
◆ mFamilyIdx
      
        
          | uint32 Ogre::VulkanQueue::mFamilyIdx | 
      
 
 
◆ mOwnerDevice
◆ mQueue
      
        
          | VkQueue Ogre::VulkanQueue::mQueue | 
      
 
 
◆ mQueueIdx
      
        
          | uint32 Ogre::VulkanQueue::mQueueIdx | 
      
 
 
◆ mWindowsPendingSwap
The documentation for this class was generated from the following file: