#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. More...
|
|
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. More...
|
|
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. More...
|
|
void | notifyTextureDestroyed (VulkanTextureGpu *texture) |
|
void | releaseFence (VkFence fence) |
|
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
-
◆ 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 | ) |
|
◆ 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: