| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Vulkan.Core10.Queue
Synopsis
- getDeviceQueue :: forall io. MonadIO io => Device -> ("queueFamilyIndex" ::: Word32) -> ("queueIndex" ::: Word32) -> io Queue
- queueSubmit :: forall io. MonadIO io => Queue -> ("submits" ::: Vector (SomeStruct SubmitInfo)) -> Fence -> io ()
- queueWaitIdle :: forall io. MonadIO io => Queue -> io ()
- queueWaitIdleSafe :: forall io. MonadIO io => Queue -> io ()
- deviceWaitIdle :: forall io. MonadIO io => Device -> io ()
- deviceWaitIdleSafe :: forall io. MonadIO io => Device -> io ()
- data SubmitInfo (es :: [Type]) = SubmitInfo {}
- data Queue = Queue {}
- newtype PipelineStageFlagBits where
- PipelineStageFlagBits Flags
- pattern PIPELINE_STAGE_TOP_OF_PIPE_BIT :: PipelineStageFlagBits
- pattern PIPELINE_STAGE_DRAW_INDIRECT_BIT :: PipelineStageFlagBits
- pattern PIPELINE_STAGE_VERTEX_INPUT_BIT :: PipelineStageFlagBits
- pattern PIPELINE_STAGE_VERTEX_SHADER_BIT :: PipelineStageFlagBits
- pattern PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT :: PipelineStageFlagBits
- pattern PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT :: PipelineStageFlagBits
- pattern PIPELINE_STAGE_GEOMETRY_SHADER_BIT :: PipelineStageFlagBits
- pattern PIPELINE_STAGE_FRAGMENT_SHADER_BIT :: PipelineStageFlagBits
- pattern PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT :: PipelineStageFlagBits
- pattern PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT :: PipelineStageFlagBits
- pattern PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT :: PipelineStageFlagBits
- pattern PIPELINE_STAGE_COMPUTE_SHADER_BIT :: PipelineStageFlagBits
- pattern PIPELINE_STAGE_TRANSFER_BIT :: PipelineStageFlagBits
- pattern PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT :: PipelineStageFlagBits
- pattern PIPELINE_STAGE_HOST_BIT :: PipelineStageFlagBits
- pattern PIPELINE_STAGE_ALL_GRAPHICS_BIT :: PipelineStageFlagBits
- pattern PIPELINE_STAGE_ALL_COMMANDS_BIT :: PipelineStageFlagBits
- pattern PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV :: PipelineStageFlagBits
- pattern PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT :: PipelineStageFlagBits
- pattern PIPELINE_STAGE_MESH_SHADER_BIT_NV :: PipelineStageFlagBits
- pattern PIPELINE_STAGE_TASK_SHADER_BIT_NV :: PipelineStageFlagBits
- pattern PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV :: PipelineStageFlagBits
- pattern PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR :: PipelineStageFlagBits
- pattern PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR :: PipelineStageFlagBits
- pattern PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT :: PipelineStageFlagBits
- pattern PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT :: PipelineStageFlagBits
- type PipelineStageFlags = PipelineStageFlagBits
Documentation
Arguments
| :: forall io. MonadIO io | |
| => Device |
|
| -> ("queueFamilyIndex" ::: Word32) |
|
| -> ("queueIndex" ::: Word32) |
|
| -> io Queue |
vkGetDeviceQueue - Get a queue handle from a device
Description
getDeviceQueue must only be used to get queues that were created
with the flags parameter of
DeviceQueueCreateInfo set to zero. To get queues
that were created with a non-zero flags parameter use
getDeviceQueue2.
Valid Usage
queueFamilyIndexmust be one of the queue family indices specified whendevicewas created, via theDeviceQueueCreateInfostructure
queueIndexmust be less than the number of queues created for the specified queue family index whendevicewas created, via thequeueCountmember of theDeviceQueueCreateInfostructureDeviceQueueCreateInfo::flagsmust have been set to zero whendevicewas created
Valid Usage (Implicit)
devicemust be a validDevicehandle
pQueuemust be a valid pointer to aQueuehandle
See Also
Arguments
| :: forall io. MonadIO io | |
| => Queue |
|
| -> ("submits" ::: Vector (SomeStruct SubmitInfo)) |
|
| -> Fence |
|
| -> io () |
vkQueueSubmit - Submits a sequence of semaphores or command buffers to a queue
Description
queueSubmit is a
queue submission command,
with each batch defined by an element of pSubmits. Batches begin
execution in the order they appear in pSubmits, but may complete out
of order.
Fence and semaphore operations submitted with queueSubmit have
additional ordering constraints compared to other submission commands,
with dependencies involving previous and subsequent queue operations.
Information about these additional constraints can be found in the
semaphore
and
fence
sections of
the synchronization chapter.
Details on the interaction of pWaitDstStageMask with synchronization
are described in the
semaphore wait operation
section of
the synchronization chapter.
The order that batches appear in pSubmits is used to determine
submission order,
and thus all the
implicit ordering guarantees
that respect it. Other than these implicit ordering guarantees and any
explicit synchronization primitives,
these batches may overlap or otherwise execute out of order.
If any command buffer submitted to this queue is in the
executable state,
it is moved to the
pending state.
Once execution of all submissions of a command buffer complete, it moves
from the
pending state,
back to the
executable state.
If a command buffer was recorded with the
COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT
flag, it instead moves to the
invalid state.
If queueSubmit fails, it may return
ERROR_OUT_OF_HOST_MEMORY or
ERROR_OUT_OF_DEVICE_MEMORY. If it does, the
implementation must ensure that the state and contents of any
resources or synchronization primitives referenced by the submitted
command buffers and any semaphores referenced by pSubmits is
unaffected by the call or its failure. If queueSubmit fails in such a
way that the implementation is unable to make that guarantee, the
implementation must return
ERROR_DEVICE_LOST. See
Lost Device.
Valid Usage
- If
fenceis notNULL_HANDLE,fencemust be unsignaled
- If
fenceis notNULL_HANDLE,fencemust not be associated with any other queue command that has not yet completed execution on that queue - Any calls to
cmdSetEvent,cmdResetEventorcmdWaitEventsthat have been recorded into any of the command buffer elements of thepCommandBuffersmember of any element ofpSubmits, must not reference anyEventthat is referenced by any of those commands in a command buffer that has been submitted to another queue and is still in the pending state - Any stage flag included in any element of the
pWaitDstStageMaskmember of any element ofpSubmitsmust be a pipeline stage supported by one of the capabilities ofqueue, as specified in the table of supported pipeline stages - Each element of the
pSignalSemaphoresmember of any element ofpSubmitsmust be unsignaled when the semaphore signal operation it defines is executed on the device - When a semaphore wait operation referring to a binary semaphore
defined by any element of the
pWaitSemaphoresmember of any element ofpSubmitsexecutes onqueue, there must be no other queues waiting on the same semaphore - All elements of the
pWaitSemaphoresmember of all elements ofpSubmitscreated with aSemaphoreTypeofSEMAPHORE_TYPE_BINARYmust reference a semaphore signal operation that has been submitted for execution and any semaphore signal operations on which it depends (if any) must have also been submitted for execution - Each element of the
pCommandBuffersmember of each element ofpSubmitsmust be in the pending or executable state - If any element of the
pCommandBuffersmember of any element ofpSubmitswas not recorded with theCOMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT, it must not be in the pending state - Any
secondary command buffers recorded
into any element of the
pCommandBuffersmember of any element ofpSubmitsmust be in the pending or executable state - If any
secondary command buffers recorded
into any element of the
pCommandBuffersmember of any element ofpSubmitswas not recorded with theCOMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT, it must not be in the pending state - Each element of the
pCommandBuffersmember of each element ofpSubmitsmust have been allocated from aCommandPoolthat was created for the same queue familyqueuebelongs to - If any element of
pSubmits->pCommandBuffersincludes a Queue Family Transfer Acquire Operation, there must exist a previously submitted Queue Family Transfer Release Operation on a queue in the queue family identified by the acquire operation, with parameters matching the acquire operation as defined in the definition of such acquire operations, and which happens-before the acquire operation - If a command recorded into any element of
pCommandBufferswas acmdBeginQuerywhosequeryPoolwas created with aqueryTypeofQUERY_TYPE_PERFORMANCE_QUERY_KHR, the profiling lock must have been held continuously on theDevicethatqueuewas retrieved from, throughout recording of those command buffers - Any resource created with
SHARING_MODE_EXCLUSIVEthat is read by an operation specified bypSubmitsmust not be owned by any queue family other than the one whichqueuebelongs to, at the time it is executed
Valid Usage (Implicit)
queuemust be a validQueuehandle
- If
submitCountis not0,pSubmitsmust be a valid pointer to an array ofsubmitCountvalidSubmitInfostructures - If
fenceis notNULL_HANDLE,fencemust be a validFencehandle - Both of
fence, andqueuethat are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the sameDevice
Host Synchronization
- Host access to
queuemust be externally synchronized
- Host access to
fencemust be externally synchronized
Command Properties
'
| Command Buffer Levels | Render Pass Scope | Supported Queue Types | Pipeline Type |
|---|---|---|---|
| - | - | Any | - |
Return Codes
See Also
vkQueueWaitIdle - Wait for a queue to become idle
Description
queueWaitIdle is equivalent to submitting a fence to a queue and
waiting with an infinite timeout for that fence to signal.
Valid Usage (Implicit)
queuemust be a validQueuehandle
Host Synchronization
- Host access to
queuemust be externally synchronized
Command Properties
'
| Command Buffer Levels | Render Pass Scope | Supported Queue Types | Pipeline Type |
|---|---|---|---|
| - | - | Any | - |
Return Codes
See Also
A variant of queueWaitIdle which makes a *safe* FFI call
vkDeviceWaitIdle - Wait for a device to become idle
Description
deviceWaitIdle is equivalent to calling queueWaitIdle for all queues
owned by device.
Valid Usage (Implicit)
devicemust be a validDevicehandle
Host Synchronization
- Host access to all
Queueobjects created fromdevicemust be externally synchronized
Return Codes
See Also
A variant of deviceWaitIdle which makes a *safe* FFI call
data SubmitInfo (es :: [Type]) Source #
VkSubmitInfo - Structure specifying a queue submit operation
Description
The order that command buffers appear in pCommandBuffers is used to
determine
submission order,
and thus all the
implicit ordering guarantees
that respect it. Other than these implicit ordering guarantees and any
explicit synchronization primitives,
these command buffers may overlap or otherwise execute out of order.
Valid Usage
- Each element of
pCommandBuffersmust not have been allocated withCOMMAND_BUFFER_LEVEL_SECONDARY
- If the
geometry shaders
feature is not enabled, each element of
pWaitDstStageMaskmust not containPIPELINE_STAGE_GEOMETRY_SHADER_BIT - If the
tessellation shaders
feature is not enabled, each element of
pWaitDstStageMaskmust not containPIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BITorPIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT - Each element of
pWaitDstStageMaskmust not includePIPELINE_STAGE_HOST_BIT - If any element of
pWaitSemaphoresorpSignalSemaphoreswas created with aSemaphoreTypeofSEMAPHORE_TYPE_TIMELINE, then thepNextchain must include aTimelineSemaphoreSubmitInfostructure - If the
pNextchain of this structure includes aTimelineSemaphoreSubmitInfostructure and any element ofpWaitSemaphoreswas created with aSemaphoreTypeofSEMAPHORE_TYPE_TIMELINE, then itswaitSemaphoreValueCountmember must equalwaitSemaphoreCount - If the
pNextchain of this structure includes aTimelineSemaphoreSubmitInfostructure and any element ofpSignalSemaphoreswas created with aSemaphoreTypeofSEMAPHORE_TYPE_TIMELINE, then itssignalSemaphoreValueCountmember must equalsignalSemaphoreCount - For each element of
pSignalSemaphorescreated with aSemaphoreTypeofSEMAPHORE_TYPE_TIMELINEthe corresponding element ofTimelineSemaphoreSubmitInfo::pSignalSemaphoreValues must have a value greater than the current value of the semaphore when the semaphore signal operation is executed - For each element of
pWaitSemaphorescreated with aSemaphoreTypeofSEMAPHORE_TYPE_TIMELINEthe corresponding element ofTimelineSemaphoreSubmitInfo::pWaitSemaphoreValues must have a value which does not differ from the current value of the semaphore or the value of any outstanding semaphore wait or signal operation on that semaphore by more than maxTimelineSemaphoreValueDifference - For each element of
pSignalSemaphorescreated with aSemaphoreTypeofSEMAPHORE_TYPE_TIMELINEthe corresponding element ofTimelineSemaphoreSubmitInfo::pSignalSemaphoreValues must have a value which does not differ from the current value of the semaphore or the value of any outstanding semaphore wait or signal operation on that semaphore by more than maxTimelineSemaphoreValueDifference - If the
mesh shaders
feature is not enabled, each element of
pWaitDstStageMaskmust not containPIPELINE_STAGE_MESH_SHADER_BIT_NV - If the
task shaders
feature is not enabled, each element of
pWaitDstStageMaskmust not containPIPELINE_STAGE_TASK_SHADER_BIT_NV - If the
pNextchain of this structure does not include aProtectedSubmitInfostructure withprotectedSubmitset toTRUE, then each element of the command buffer of thepCommandBuffersarray must be an unprotected command buffer
Valid Usage (Implicit)
sTypemust beSTRUCTURE_TYPE_SUBMIT_INFO
- Each
pNextmember of any structure (including this one) in thepNextchain must be eitherNULLor a pointer to a valid instance ofD3D12FenceSubmitInfoKHR,DeviceGroupSubmitInfo,PerformanceQuerySubmitInfoKHR,ProtectedSubmitInfo,TimelineSemaphoreSubmitInfo,Win32KeyedMutexAcquireReleaseInfoKHR, orWin32KeyedMutexAcquireReleaseInfoNV - The
sTypevalue of each struct in thepNextchain must be unique - If
waitSemaphoreCountis not0,pWaitSemaphoresmust be a valid pointer to an array ofwaitSemaphoreCountvalidSemaphorehandles - If
waitSemaphoreCountis not0,pWaitDstStageMaskmust be a valid pointer to an array ofwaitSemaphoreCountvalid combinations ofPipelineStageFlagBitsvalues - Each element of
pWaitDstStageMaskmust not be0 - If
commandBufferCountis not0,pCommandBuffersmust be a valid pointer to an array ofcommandBufferCountvalidCommandBufferhandles - If
signalSemaphoreCountis not0,pSignalSemaphoresmust be a valid pointer to an array ofsignalSemaphoreCountvalidSemaphorehandles - Each of the elements of
pCommandBuffers, the elements ofpSignalSemaphores, and the elements ofpWaitSemaphoresthat are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the sameDevice
See Also
CommandBuffer,
PipelineStageFlags,
Semaphore,
StructureType, queueSubmit
Constructors
| SubmitInfo | |
Fields
| |
Instances
VkQueue - Opaque handle to a queue object
See Also
getDeviceQueue,
getDeviceQueue2,
getQueueCheckpointDataNV,
queueBeginDebugUtilsLabelEXT,
queueBindSparse,
queueEndDebugUtilsLabelEXT,
queueInsertDebugUtilsLabelEXT,
queuePresentKHR,
queueSetPerformanceConfigurationINTEL,
queueSubmit, queueWaitIdle
Constructors
| Queue | |
Fields | |
Instances
| Eq Queue Source # | |
| Show Queue Source # | |
| Zero Queue Source # | |
Defined in Vulkan.Core10.Handles | |
| HasObjectType Queue Source # | |
Defined in Vulkan.Core10.Handles Methods objectTypeAndHandle :: Queue -> (ObjectType, Word64) Source # | |
| IsHandle Queue Source # | |
Defined in Vulkan.Core10.Handles | |
newtype PipelineStageFlagBits Source #
VkPipelineStageFlagBits - Bitmask specifying pipeline stages
See Also
CheckpointDataNV,
PipelineStageFlags,
cmdWriteBufferMarkerAMD,
cmdWriteTimestamp
Constructors
| PipelineStageFlagBits Flags |
Bundled Patterns