| Safe Haskell | None | 
|---|---|
| Language | Haskell2010 | 
Vulkan.Core10.CommandBuffer
Synopsis
- allocateCommandBuffers :: forall io. MonadIO io => Device -> CommandBufferAllocateInfo -> io ("commandBuffers" ::: Vector CommandBuffer)
- withCommandBuffers :: forall io r. MonadIO io => Device -> CommandBufferAllocateInfo -> (io (Vector CommandBuffer) -> (Vector CommandBuffer -> io ()) -> r) -> r
- freeCommandBuffers :: forall io. MonadIO io => Device -> CommandPool -> ("commandBuffers" ::: Vector CommandBuffer) -> io ()
- beginCommandBuffer :: forall a io. (Extendss CommandBufferBeginInfo a, PokeChain a, MonadIO io) => CommandBuffer -> CommandBufferBeginInfo a -> io ()
- useCommandBuffer :: forall a io r. (Extendss CommandBufferBeginInfo a, PokeChain a, MonadIO io) => CommandBuffer -> CommandBufferBeginInfo a -> io r -> io r
- endCommandBuffer :: forall io. MonadIO io => CommandBuffer -> io ()
- resetCommandBuffer :: forall io. MonadIO io => CommandBuffer -> CommandBufferResetFlags -> io ()
- data CommandBufferAllocateInfo = CommandBufferAllocateInfo {}
- data CommandBufferInheritanceInfo (es :: [Type]) = CommandBufferInheritanceInfo {}
- data CommandBufferBeginInfo (es :: [Type]) = CommandBufferBeginInfo {}
Documentation
allocateCommandBuffers :: forall io. MonadIO io => Device -> CommandBufferAllocateInfo -> io ("commandBuffers" ::: Vector CommandBuffer) Source #
vkAllocateCommandBuffers - Allocate command buffers from an existing command pool
Parameters
- deviceis the logical device that owns the command pool.
- pAllocateInfois a pointer to a- CommandBufferAllocateInfostructure describing parameters of the allocation.
- pCommandBuffersis a pointer to an array of- CommandBufferhandles in which the resulting command buffer objects are returned. The array must be at least the length specified by the- commandBufferCountmember of- pAllocateInfo. Each allocated command buffer begins in the initial state.
Description
allocateCommandBuffers can be used to create multiple command
 buffers. If the creation of any of those command buffers fails, the
 implementation must destroy all successfully created command buffer
 objects from this command, set all entries of the pCommandBuffers
 array to NULL and return the error.
When command buffers are first allocated, they are in the initial state.
Valid Usage (Implicit)
- devicemust be a valid- Devicehandle
- pAllocateInfomust be a valid pointer to a valid- CommandBufferAllocateInfostructure
- pCommandBuffersmust be a valid pointer to an array of- pAllocateInfo->commandBufferCount- CommandBufferhandles
- The value referenced by pAllocateInfo->commandBufferCountmust be greater than0
Host Synchronization
- Host access to pAllocateInfo->commandPoolmust be externally synchronized
Return Codes
See Also
withCommandBuffers :: forall io r. MonadIO io => Device -> CommandBufferAllocateInfo -> (io (Vector CommandBuffer) -> (Vector CommandBuffer -> io ()) -> r) -> r Source #
A convenience wrapper to make a compatible pair of calls to
 allocateCommandBuffers and freeCommandBuffers
To ensure that freeCommandBuffers is always called: pass
 bracket (or the allocate function from your
 favourite resource management library) as the first argument.
 To just extract the pair pass (,) as the first argument.
freeCommandBuffers :: forall io. MonadIO io => Device -> CommandPool -> ("commandBuffers" ::: Vector CommandBuffer) -> io () Source #
vkFreeCommandBuffers - Free command buffers
Parameters
- deviceis the logical device that owns the command pool.
- commandPoolis the command pool from which the command buffers were allocated.
- commandBufferCountis the length of the- pCommandBuffersarray.
- pCommandBuffersis a pointer to an array of handles of command buffers to free.
Description
Any primary command buffer that is in the
 recording or executable state
 and has any element of pCommandBuffers recorded into it, becomes
 invalid.
Valid Usage
- All elements of pCommandBuffersmust not be in the pending state
- pCommandBuffersmust be a valid pointer to an array of- commandBufferCount- CommandBufferhandles, each element of which must either be a valid handle or- NULL
Valid Usage (Implicit)
- devicemust be a valid- Devicehandle
- commandPoolmust be a valid- CommandPoolhandle
- commandBufferCountmust be greater than- 0
- commandPoolmust have been created, allocated, or retrieved from- device
- Each element of pCommandBuffersthat is a valid handle must have been created, allocated, or retrieved fromcommandPool
Host Synchronization
- Host access to commandPoolmust be externally synchronized
- Host access to each member of pCommandBuffersmust be externally synchronized
See Also
beginCommandBuffer :: forall a io. (Extendss CommandBufferBeginInfo a, PokeChain a, MonadIO io) => CommandBuffer -> CommandBufferBeginInfo a -> io () Source #
vkBeginCommandBuffer - Start recording a command buffer
Parameters
- commandBufferis the handle of the command buffer which is to be put in the recording state.
- pBeginInfopoints to a- CommandBufferBeginInfostructure defining additional information about how the command buffer begins recording.
Valid Usage
- commandBuffermust not be in the recording or pending state
- If commandBufferwas allocated from aCommandPoolwhich did not have theCOMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BITflag set,commandBuffermust be in the initial state
- If commandBufferis a secondary command buffer, thepInheritanceInfomember ofpBeginInfomust be a validCommandBufferInheritanceInfostructure
- If commandBufferis a secondary command buffer and either theocclusionQueryEnablemember of thepInheritanceInfomember ofpBeginInfoisFALSE, or the precise occlusion queries feature is not enabled, thequeryFlagsmember of thepInheritanceInfomemberpBeginInfomust not containQUERY_CONTROL_PRECISE_BIT
- If commandBufferis a primary command buffer, thenpBeginInfo->flagsmust not set both theCOMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BITand theCOMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BITflags
Valid Usage (Implicit)
- commandBuffermust be a valid- CommandBufferhandle
- pBeginInfomust be a valid pointer to a valid- CommandBufferBeginInfostructure
Host Synchronization
- Host access to commandBuffermust be externally synchronized
- Host access to the CommandPoolthatcommandBufferwas allocated from must be externally synchronized
Return Codes
See Also
useCommandBuffer :: forall a io r. (Extendss CommandBufferBeginInfo a, PokeChain a, MonadIO io) => CommandBuffer -> CommandBufferBeginInfo a -> io r -> io r Source #
This function will call the supplied action between calls to
 beginCommandBuffer and endCommandBuffer
Note that endCommandBuffer is *not* called if an exception is thrown
 by the inner action.
endCommandBuffer :: forall io. MonadIO io => CommandBuffer -> io () Source #
vkEndCommandBuffer - Finish recording a command buffer
Parameters
- commandBufferis the command buffer to complete recording.
Description
If there was an error during recording, the application will be notified
 by an unsuccessful return code returned by endCommandBuffer. If the
 application wishes to further use the command buffer, the command buffer
 must be reset. The command buffer must have been in the
 recording state,
 and is moved to the
 executable state.
Valid Usage
- commandBuffermust be in the recording state
- If commandBufferis a primary command buffer, there must not be an active render pass instance
- All queries made
     active
     during the recording of commandBuffermust have been made inactive
- Conditional rendering must not be active
- If commandBufferis a secondary command buffer, there must not be an outstandingcmdBeginDebugUtilsLabelEXTcommand recorded tocommandBufferthat has not previously been ended by a call tocmdEndDebugUtilsLabelEXT
- If commandBufferis a secondary command buffer, there must not be an outstandingcmdDebugMarkerBeginEXTcommand recorded tocommandBufferthat has not previously been ended by a call tocmdDebugMarkerEndEXT
Valid Usage (Implicit)
- commandBuffermust be a valid- CommandBufferhandle
Host Synchronization
- Host access to commandBuffermust be externally synchronized
- Host access to the CommandPoolthatcommandBufferwas allocated from must be externally synchronized
Return Codes
See Also
resetCommandBuffer :: forall io. MonadIO io => CommandBuffer -> CommandBufferResetFlags -> io () Source #
vkResetCommandBuffer - Reset a command buffer to the initial state
Parameters
- commandBufferis the command buffer to reset. The command buffer can be in any state other than pending, and is moved into the initial state.
- flagsis a bitmask of- CommandBufferResetFlagBitscontrolling the reset operation.
Description
Any primary command buffer that is in the
 recording or executable state
 and has commandBuffer recorded into it, becomes
 invalid.
Valid Usage
- commandBuffermust not be in the pending state
- commandBuffermust have been allocated from a pool that was created with the- COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT
Valid Usage (Implicit)
- commandBuffermust be a valid- CommandBufferhandle
- flagsmust be a valid combination of- CommandBufferResetFlagBitsvalues
Host Synchronization
- Host access to commandBuffermust be externally synchronized
Return Codes
See Also
data CommandBufferAllocateInfo Source #
VkCommandBufferAllocateInfo - Structure specifying the allocation parameters for command buffer object
Valid Usage (Implicit)
See Also
CommandBufferLevel,
 CommandPool,
 StructureType,
 allocateCommandBuffers
Constructors
| CommandBufferAllocateInfo | |
| Fields 
 | |
Instances
data CommandBufferInheritanceInfo (es :: [Type]) Source #
VkCommandBufferInheritanceInfo - Structure specifying command buffer inheritance info
Valid Usage
- If the
     inherited queries
     feature is not enabled, occlusionQueryEnablemust beFALSE
- If the
     inherited queries
     feature is enabled, queryFlagsmust be a valid combination ofQueryControlFlagBitsvalues
- If the
     inherited queries
     feature is not enabled, queryFlagsmust be0
- If the
     pipeline statistics queries
     feature is enabled, pipelineStatisticsmust be a valid combination ofQueryPipelineStatisticFlagBitsvalues
- If the
     pipeline statistics queries
     feature is not enabled, pipelineStatisticsmust be0
Valid Usage (Implicit)
- sTypemust be- STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO
- Each pNextmember of any structure (including this one) in thepNextchain must be eitherNULLor a pointer to a valid instance ofCommandBufferInheritanceConditionalRenderingInfoEXTorCommandBufferInheritanceRenderPassTransformInfoQCOM
- The sTypevalue of each struct in thepNextchain must be unique
- Both of framebuffer, andrenderPassthat are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the sameDevice
See Also
Bool32, CommandBufferBeginInfo,
 Framebuffer,
 QueryControlFlags,
 QueryPipelineStatisticFlags,
 RenderPass,
 StructureType
Constructors
| CommandBufferInheritanceInfo | |
| Fields 
 | |
Instances
data CommandBufferBeginInfo (es :: [Type]) Source #
VkCommandBufferBeginInfo - Structure specifying a command buffer begin operation
Valid Usage
- If flagscontainsCOMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT, therenderPassmember ofpInheritanceInfomust be a validRenderPass
- If flagscontainsCOMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT, thesubpassmember ofpInheritanceInfomust be a valid subpass index within therenderPassmember ofpInheritanceInfo
- If flagscontainsCOMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT, theframebuffermember ofpInheritanceInfomust be eitherNULL_HANDLE, or a validFramebufferthat is compatible with therenderPassmember ofpInheritanceInfo
Valid Usage (Implicit)
- sTypemust be- STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO
- pNextmust be- NULLor a pointer to a valid instance of- DeviceGroupCommandBufferBeginInfo
- The sTypevalue of each struct in thepNextchain must be unique
- flagsmust be a valid combination of- CommandBufferUsageFlagBitsvalues
See Also
CommandBufferInheritanceInfo,
 CommandBufferUsageFlags,
 StructureType, beginCommandBuffer
Constructors
| CommandBufferBeginInfo | |
| Fields 
 | |