VV::V3::LogicalDevice::Queue struct

Queues handle different types of batched commands for the GPU to complete.

Vulkan queues provide an interface to the execution engines of a device. Commands for these execution engines are recorded into command buffers ahead of execution time. These command buffers are then submitted to queues with a queue submission command for execution in a number of batches. Once submitted to a queue, these commands will begin and complete execution without further application intervention, though the order of this execution is dependent on a number of implicit and explicit ordering constraints.

Note: This object only acts as a host interface to a given device object's handle. The logical device of the queue manages the device object lifetime.

Public types

using Parent = Parent::Queue

Constructors, destructors, conversion operators

Queue()
Default constructor.
Queue(EQueueFlag _type, const LogicalDevice& _device, ui32 _familyIndex, ui32 _queueIndex)
Performs an assignment on construction.
operator const Handle&() const
Implicit conversion to give a readonly reference to its handle.

Public functions

void Assign(const LogicalDevice& _logicalDevice, ui32 _familyIndex, ui32 _queueIndex, EQueueFlag _type)
Assigns the queue info.
auto GetFamilyIndex() const -> ui32
Provides the queue family index.
auto GetQueueIndex() const -> ui32
Provides the queue index in the queue family.
auto GetType() const -> const EQueueFlag&
Provides the queue type.
void Retrieve()
Retrieve a handle to a VkQueue object.
auto FamilySpecified() const -> bool
Informs if family was specified.
auto QueuePresentation(const PresentationInfo& _presentationInfo) const -> EResult
After queuing all rendering commands and transitioning the image to the correct layout, to queue an image for presentation.
auto SubmitToQueue(ui32 _submitCount, const SubmitInfo* _submissions, Fence_Handle _fence) const -> EResult
Submit command buffers to a queue.
auto WaitUntilIdle() const -> EResult
Wait on the host for the completion of outstanding queue operations for a given queue.

Protected variables

Handle handle
EQueueFlag assignment
const LogicalDevice* device
ui32 familyIndex
ui32 queueIndex