| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Graphics.Vulkan.Core10.CommandBuffer
- newtype VkCommandBufferLevel = VkCommandBufferLevel Int32
- pattern VK_COMMAND_BUFFER_LEVEL_PRIMARY :: VkCommandBufferLevel
- pattern VK_COMMAND_BUFFER_LEVEL_SECONDARY :: VkCommandBufferLevel
- newtype VkQueryControlFlagBits = VkQueryControlFlagBits VkFlags
- pattern VK_QUERY_CONTROL_PRECISE_BIT :: VkQueryControlFlagBits
- newtype VkCommandBufferResetFlagBits = VkCommandBufferResetFlagBits VkFlags
- pattern VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT :: VkCommandBufferResetFlagBits
- newtype VkCommandBufferUsageFlagBits = VkCommandBufferUsageFlagBits VkFlags
- pattern VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT :: VkCommandBufferUsageFlagBits
- pattern VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT :: VkCommandBufferUsageFlagBits
- pattern VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT :: VkCommandBufferUsageFlagBits
- vkAllocateCommandBuffers :: ("device" ::: VkDevice) -> ("pAllocateInfo" ::: Ptr VkCommandBufferAllocateInfo) -> ("pCommandBuffers" ::: Ptr VkCommandBuffer) -> IO VkResult
- vkFreeCommandBuffers :: ("device" ::: VkDevice) -> ("commandPool" ::: VkCommandPool) -> ("commandBufferCount" ::: Word32) -> ("pCommandBuffers" ::: Ptr VkCommandBuffer) -> IO ()
- vkBeginCommandBuffer :: ("commandBuffer" ::: VkCommandBuffer) -> ("pBeginInfo" ::: Ptr VkCommandBufferBeginInfo) -> IO VkResult
- vkEndCommandBuffer :: ("commandBuffer" ::: VkCommandBuffer) -> IO VkResult
- vkResetCommandBuffer :: ("commandBuffer" ::: VkCommandBuffer) -> ("flags" ::: VkCommandBufferResetFlags) -> IO VkResult
- data VkCommandBufferAllocateInfo = VkCommandBufferAllocateInfo {}
- data VkCommandBufferInheritanceInfo = VkCommandBufferInheritanceInfo {}
- data VkCommandBufferBeginInfo = VkCommandBufferBeginInfo {}
- type VkQueryControlFlags = VkQueryControlFlagBits
- type VkCommandBufferResetFlags = VkCommandBufferResetFlagBits
- type VkCommandBufferUsageFlags = VkCommandBufferUsageFlagBits
Documentation
newtype VkCommandBufferLevel Source #
VkCommandBufferLevel - Enumerant specifying a command buffer level
See Also
Constructors
| VkCommandBufferLevel Int32 |
pattern VK_COMMAND_BUFFER_LEVEL_PRIMARY :: VkCommandBufferLevel Source #
VK_COMMAND_BUFFER_LEVEL_PRIMARY specifies a primary command buffer.
pattern VK_COMMAND_BUFFER_LEVEL_SECONDARY :: VkCommandBufferLevel Source #
VK_COMMAND_BUFFER_LEVEL_SECONDARY specifies a secondary command
buffer.
newtype VkQueryControlFlagBits Source #
Constructors
| VkQueryControlFlagBits VkFlags |
pattern VK_QUERY_CONTROL_PRECISE_BIT :: VkQueryControlFlagBits Source #
VK_QUERY_CONTROL_PRECISE_BIT specifies the precision of
occlusion queries.
newtype VkCommandBufferResetFlagBits Source #
VkCommandBufferResetFlagBits - Bitmask controlling behavior of a command buffer reset
See Also
Constructors
| VkCommandBufferResetFlagBits VkFlags |
Instances
pattern VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT :: VkCommandBufferResetFlagBits Source #
VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT specifies that most or
all memory resources currently owned by the command buffer should be
returned to the parent command pool. If this flag is not set, then the
command buffer may hold onto memory resources and reuse them when
recording commands. commandBuffer is moved to the
initial state.
newtype VkCommandBufferUsageFlagBits Source #
VkCommandBufferUsageFlagBits - Bitmask specifying usage behavior for command buffer
See Also
Constructors
| VkCommandBufferUsageFlagBits VkFlags |
Instances
pattern VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT :: VkCommandBufferUsageFlagBits Source #
VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT specifies that each
recording of the command buffer will only be submitted once, and the
command buffer will be reset and recorded again between each submission.
pattern VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT :: VkCommandBufferUsageFlagBits Source #
VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT specifies that a
secondary command buffer is considered to be entirely inside a render
pass. If this is a primary command buffer, then this bit is ignored.
pattern VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT :: VkCommandBufferUsageFlagBits Source #
VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT specifies that a command
buffer can be resubmitted to a queue while it is in the /pending
state/, and recorded into multiple primary command buffers.
vkAllocateCommandBuffers :: ("device" ::: VkDevice) -> ("pAllocateInfo" ::: Ptr VkCommandBufferAllocateInfo) -> ("pCommandBuffers" ::: Ptr VkCommandBuffer) -> IO VkResult Source #
vkAllocateCommandBuffers - Allocate command buffers from an existing command pool
Parameters
deviceis the logical device that owns the command pool.
pAllocateInfois a pointer to an instance of theVkCommandBufferAllocateInfostructure describing parameters of the allocation.pCommandBuffersis a pointer to an array ofVkCommandBufferhandles in which the resulting command buffer objects are returned. The array must be at least the length specified by thecommandBufferCountmember ofpAllocateInfo. Each allocated command buffer begins in the initial state.
Description
vkAllocateCommandBuffers 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 validVkDevicehandle
pAllocateInfomust be a valid pointer to a validVkCommandBufferAllocateInfostructurepCommandBuffersmust be a valid pointer to an array ofpAllocateInfo::commandBufferCountVkCommandBufferhandles
Host Synchronization
- Host access to
pAllocateInfo::commandPool must be externally synchronized
Return Codes
- Success
- -
VK_SUCCESS
- Failure
- -
VK_ERROR_OUT_OF_HOST_MEMORYVK_ERROR_OUT_OF_DEVICE_MEMORY
See Also
vkFreeCommandBuffers :: ("device" ::: VkDevice) -> ("commandPool" ::: VkCommandPool) -> ("commandBufferCount" ::: Word32) -> ("pCommandBuffers" ::: Ptr VkCommandBuffer) -> 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 thepCommandBuffersarray.pCommandBuffersis 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 ofcommandBufferCountVkCommandBufferhandles, each element of which must either be a valid handle orNULL
Valid Usage (Implicit)
devicemust be a validVkDevicehandle
commandPoolmust be a validVkCommandPoolhandlecommandBufferCountmust be greater than0commandPoolmust have been created, allocated, or retrieved fromdevice- 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
vkBeginCommandBuffer :: ("commandBuffer" ::: VkCommandBuffer) -> ("pBeginInfo" ::: Ptr VkCommandBufferBeginInfo) -> IO VkResult Source #
vkBeginCommandBuffer - Start recording a command buffer
Parameters
commandBufferis the handle of the command buffer which is to be put in the recording state.
pBeginInfois an instance of theVkCommandBufferBeginInfostructure, which defines additional information about how the command buffer begins recording.
Description
Valid Usage
commandBuffermust not be in the recording or pending state.
- If
commandBufferwas allocated from aVkCommandPoolwhich did not have theVK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BITflag set,commandBuffermust be in the initial state. - If
commandBufferis a secondary command buffer, thepInheritanceInfomember ofpBeginInfomust be a validVkCommandBufferInheritanceInfostructure - If
commandBufferis a secondary command buffer and either theocclusionQueryEnablemember of thepInheritanceInfomember ofpBeginInfoisVK_FALSE, or the precise occlusion queries feature is not enabled, thequeryFlagsmember of thepInheritanceInfomemberpBeginInfomust not containVK_QUERY_CONTROL_PRECISE_BIT
Valid Usage (Implicit)
commandBuffermust be a validVkCommandBufferhandle
pBeginInfomust be a valid pointer to a validVkCommandBufferBeginInfostructure
Host Synchronization
- Host access to
commandBuffermust be externally synchronized
- Host access to the
VkCommandPoolthatcommandBufferwas allocated from must be externally synchronized
Return Codes
- Success
- -
VK_SUCCESS
- Failure
- -
VK_ERROR_OUT_OF_HOST_MEMORYVK_ERROR_OUT_OF_DEVICE_MEMORY
See Also
vkEndCommandBuffer :: ("commandBuffer" ::: VkCommandBuffer) -> IO VkResult 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 vkEndCommandBuffer. 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 - If
commandBufferis a secondary command buffer, there must not be an outstandingvkCmdBeginDebugUtilsLabelEXTcommand recorded tocommandBufferthat has not previously been ended by a call tovkCmdEndDebugUtilsLabelEXT. - If
commandBufferis a secondary command buffer, there must not be an outstandingvkCmdDebugMarkerBeginEXTcommand recorded tocommandBufferthat has not previously been ended by a call tovkCmdDebugMarkerEndEXT.
Valid Usage (Implicit)
commandBuffermust be a validVkCommandBufferhandle
Host Synchronization
- Host access to
commandBuffermust be externally synchronized
- Host access to the
VkCommandPoolthatcommandBufferwas allocated from must be externally synchronized
Return Codes
- Success
- -
VK_SUCCESS
- Failure
- -
VK_ERROR_OUT_OF_HOST_MEMORYVK_ERROR_OUT_OF_DEVICE_MEMORY
See Also
vkResetCommandBuffer :: ("commandBuffer" ::: VkCommandBuffer) -> ("flags" ::: VkCommandBufferResetFlags) -> IO VkResult 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 ofVkCommandBufferResetFlagBitscontrolling 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 theVK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT
Valid Usage (Implicit)
commandBuffermust be a validVkCommandBufferhandle
flagsmust be a valid combination ofVkCommandBufferResetFlagBitsvalues
Host Synchronization
- Host access to
commandBuffermust be externally synchronized
Return Codes
- Success
- -
VK_SUCCESS
- Failure
- -
VK_ERROR_OUT_OF_HOST_MEMORYVK_ERROR_OUT_OF_DEVICE_MEMORY
See Also
data VkCommandBufferAllocateInfo Source #
VkCommandBufferAllocateInfo - Structure specifying the allocation parameters for command buffer object
Description
Valid Usage
commandBufferCountmust be greater than0
Valid Usage (Implicit)
sTypemust beVK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO
pNextmust beNULLcommandPoolmust be a validVkCommandPoolhandlelevelmust be a validVkCommandBufferLevelvalue
See Also
VkCommandBufferLevel,
VkCommandPool,
VkStructureType,
vkAllocateCommandBuffers
Constructors
| VkCommandBufferAllocateInfo | |
Fields
| |
data VkCommandBufferInheritanceInfo Source #
VkCommandBufferInheritanceInfo - Structure specifying command buffer inheritance info
Members
sTypeis the type of this structure.
pNextisNULLor a pointer to an extension-specific structure.renderPassis aVkRenderPassobject defining which render passes theVkCommandBufferwill be compatible with and can be executed within. If theVkCommandBufferwill not be executed within a render pass instance,renderPassis ignored.subpassis the index of the subpass within the render pass instance that theVkCommandBufferwill be executed within. If theVkCommandBufferwill not be executed within a render pass instance,subpassis ignored.framebufferoptionally refers to theVkFramebufferobject that theVkCommandBufferwill be rendering to if it is executed within a render pass instance. It can beVK_NULL_HANDLEif the framebuffer is not known, or if theVkCommandBufferwill not be executed within a render pass instance.Note
Specifying the exact framebuffer that the secondary command buffer will be executed with may result in better performance at command buffer execution time.
occlusionQueryEnablespecifies whether the command buffer can be executed while an occlusion query is active in the primary command buffer. If this isVK_TRUE, then this command buffer can be executed whether the primary command buffer has an occlusion query active or not. If this isVK_FALSE, then the primary command buffer must not have an occlusion query active.queryFlagsspecifies the query flags that can be used by an active occlusion query in the primary command buffer when this secondary command buffer is executed. If this value includes theVK_QUERY_CONTROL_PRECISE_BITbit, then the active query can return boolean results or actual sample counts. If this bit is not set, then the active query must not use theVK_QUERY_CONTROL_PRECISE_BITbit.pipelineStatisticsis a bitmask ofVkQueryPipelineStatisticFlagBitsspecifying the set of pipeline statistics that can be counted by an active query in the primary command buffer when this secondary command buffer is executed. If this value includes a given bit, then this command buffer can be executed whether the primary command buffer has a pipeline statistics query active that includes this bit or not. If this value excludes a given bit, then the active pipeline statistics query must not be from a query pool that counts that statistic.
Description
Valid Usage
- If the
inherited queries
feature is not enabled,
occlusionQueryEnablemust beVK_FALSE
- If the
inherited queries
feature is enabled,
queryFlagsmust be a valid combination ofVkQueryControlFlagBitsvalues - If the
pipeline statistics queries
feature is not enabled,
pipelineStatisticsmust be0
Valid Usage (Implicit)
sTypemust beVK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO
pNextmust beNULL- Both of
framebuffer, andrenderPassthat are valid handles must have been created, allocated, or retrieved from the sameVkDevice
See Also
VkBool32, VkCommandBufferBeginInfo,
VkFramebuffer, VkQueryControlFlags,
VkQueryPipelineStatisticFlags,
VkRenderPass,
VkStructureType
Constructors
| VkCommandBufferInheritanceInfo | |
data VkCommandBufferBeginInfo Source #
VkCommandBufferBeginInfo - Structure specifying a command buffer begin operation
Description
Valid Usage
- If
flagscontainsVK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT, therenderPassmember ofpInheritanceInfomust be a validVkRenderPass
- If
flagscontainsVK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT, thesubpassmember ofpInheritanceInfomust be a valid subpass index within therenderPassmember ofpInheritanceInfo - If
flagscontainsVK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT, theframebuffermember ofpInheritanceInfomust be eitherVK_NULL_HANDLE, or a validVkFramebufferthat is compatible with therenderPassmember ofpInheritanceInfo
Valid Usage (Implicit)
sTypemust beVK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO
pNextmust beNULLor a pointer to a valid instance ofVkDeviceGroupCommandBufferBeginInfoflagsmust be a valid combination ofVkCommandBufferUsageFlagBitsvalues
See Also
VkCommandBufferInheritanceInfo, VkCommandBufferUsageFlags,
VkStructureType, vkBeginCommandBuffer
Constructors
| VkCommandBufferBeginInfo | |
Fields
| |
type VkQueryControlFlags = VkQueryControlFlagBits Source #
VkQueryControlFlags - Bitmask of VkQueryControlFlagBits
Description
VkQueryControlFlags is a bitmask type for setting a mask of zero or
more VkQueryControlFlagBits.
See Also
VkCommandBufferInheritanceInfo, VkQueryControlFlagBits,
vkCmdBeginQuery
type VkCommandBufferResetFlags = VkCommandBufferResetFlagBits Source #
VkCommandBufferResetFlags - Bitmask of VkCommandBufferResetFlagBits
Description
VkCommandBufferResetFlags is a bitmask type for setting a mask of zero
or more VkCommandBufferResetFlagBits.
See Also
type VkCommandBufferUsageFlags = VkCommandBufferUsageFlagBits Source #
VkCommandBufferUsageFlags - Bitmask of VkCommandBufferUsageFlagBits
Description
VkCommandBufferUsageFlags is a bitmask type for setting a mask of zero
or more VkCommandBufferUsageFlagBits.