#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: