Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- 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
Instances
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 #
Instances
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
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
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
device
is the logical device that owns the command pool.
pAllocateInfo
is a pointer to an instance of theVkCommandBufferAllocateInfo
structure describing parameters of the allocation.pCommandBuffers
is a pointer to an array ofVkCommandBuffer
handles in which the resulting command buffer objects are returned. The array must be at least the length specified by thecommandBufferCount
member 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)
device
must be a validVkDevice
handle
pAllocateInfo
must be a valid pointer to a validVkCommandBufferAllocateInfo
structurepCommandBuffers
must be a valid pointer to an array ofpAllocateInfo
::commandBufferCountVkCommandBuffer
handles
Host Synchronization
- Host access to
pAllocateInfo
::commandPool must be externally synchronized
Return Codes
[Success]
- VK_SUCCESS
[Failure]
- VK_ERROR_OUT_OF_HOST_MEMORY
VK_ERROR_OUT_OF_DEVICE_MEMORY
See Also
vkFreeCommandBuffers :: ("device" ::: VkDevice) -> ("commandPool" ::: VkCommandPool) -> ("commandBufferCount" ::: Word32) -> ("pCommandBuffers" ::: Ptr VkCommandBuffer) -> IO () Source #
vkFreeCommandBuffers - Free command buffers
Parameters
device
is the logical device that owns the command pool.
commandPool
is the command pool from which the command buffers were allocated.commandBufferCount
is the length of thepCommandBuffers
array.pCommandBuffers
is 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
pCommandBuffers
must not be in the pending state
pCommandBuffers
must be a valid pointer to an array ofcommandBufferCount
VkCommandBuffer
handles, each element of which must either be a valid handle orNULL
Valid Usage (Implicit)
device
must be a validVkDevice
handle
commandPool
must be a validVkCommandPool
handlecommandBufferCount
must be greater than0
commandPool
must have been created, allocated, or retrieved fromdevice
- Each element of
pCommandBuffers
that is a valid handle must have been created, allocated, or retrieved fromcommandPool
Host Synchronization
- Host access to
commandPool
must be externally synchronized
- Host access to each member of
pCommandBuffers
must be externally synchronized
See Also
vkBeginCommandBuffer :: ("commandBuffer" ::: VkCommandBuffer) -> ("pBeginInfo" ::: Ptr VkCommandBufferBeginInfo) -> IO VkResult Source #
vkBeginCommandBuffer - Start recording a command buffer
Parameters
commandBuffer
is the handle of the command buffer which is to be put in the recording state.
pBeginInfo
is an instance of theVkCommandBufferBeginInfo
structure, which defines additional information about how the command buffer begins recording.
Valid Usage
commandBuffer
must not be in the recording or pending state.
- If
commandBuffer
was allocated from aVkCommandPool
which did not have theVK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT
flag set,commandBuffer
must be in the initial state. - If
commandBuffer
is a secondary command buffer, thepInheritanceInfo
member ofpBeginInfo
must be a validVkCommandBufferInheritanceInfo
structure - If
commandBuffer
is a secondary command buffer and either theocclusionQueryEnable
member of thepInheritanceInfo
member ofpBeginInfo
isVK_FALSE
, or the precise occlusion queries feature is not enabled, thequeryFlags
member of thepInheritanceInfo
memberpBeginInfo
must not containVK_QUERY_CONTROL_PRECISE_BIT
Valid Usage (Implicit)
commandBuffer
must be a validVkCommandBuffer
handle
pBeginInfo
must be a valid pointer to a validVkCommandBufferBeginInfo
structure
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized
- Host access to the
VkCommandPool
thatcommandBuffer
was allocated from must be externally synchronized
Return Codes
[Success]
- VK_SUCCESS
[Failure]
- VK_ERROR_OUT_OF_HOST_MEMORY
VK_ERROR_OUT_OF_DEVICE_MEMORY
See Also
vkEndCommandBuffer :: ("commandBuffer" ::: VkCommandBuffer) -> IO VkResult Source #
vkEndCommandBuffer - Finish recording a command buffer
Parameters
commandBuffer
is 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
commandBuffer
must be in the recording state.
- If
commandBuffer
is a primary command buffer, there must not be an active render pass instance - All queries made
active
during the recording of
commandBuffer
must have been made inactive - If
commandBuffer
is a secondary command buffer, there must not be an outstandingvkCmdBeginDebugUtilsLabelEXT
command recorded tocommandBuffer
that has not previously been ended by a call tovkCmdEndDebugUtilsLabelEXT
. - If
commandBuffer
is a secondary command buffer, there must not be an outstandingvkCmdDebugMarkerBeginEXT
command recorded tocommandBuffer
that has not previously been ended by a call tovkCmdDebugMarkerEndEXT
.
Valid Usage (Implicit)
commandBuffer
must be a validVkCommandBuffer
handle
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized
- Host access to the
VkCommandPool
thatcommandBuffer
was allocated from must be externally synchronized
Return Codes
[Success]
- VK_SUCCESS
[Failure]
- VK_ERROR_OUT_OF_HOST_MEMORY
VK_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
commandBuffer
is the command buffer to reset. The command buffer can be in any state other than pending, and is moved into the initial state.
flags
is a bitmask ofVkCommandBufferResetFlagBits
controlling 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
commandBuffer
must not be in the pending state
commandBuffer
must have been allocated from a pool that was created with theVK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT
Valid Usage (Implicit)
commandBuffer
must be a validVkCommandBuffer
handle
flags
must be a valid combination ofVkCommandBufferResetFlagBits
values
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized
Return Codes
[Success]
- VK_SUCCESS
[Failure]
- VK_ERROR_OUT_OF_HOST_MEMORY
VK_ERROR_OUT_OF_DEVICE_MEMORY
See Also
data VkCommandBufferAllocateInfo Source #
VkCommandBufferAllocateInfo - Structure specifying the allocation parameters for command buffer object
Valid Usage
commandBufferCount
must be greater than0
Valid Usage (Implicit)
sType
must beVK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO
pNext
must beNULL
commandPool
must be a validVkCommandPool
handlelevel
must be a validVkCommandBufferLevel
value
See Also
VkCommandBufferLevel
,
VkCommandPool
,
VkStructureType
,
vkAllocateCommandBuffers
VkCommandBufferAllocateInfo | |
|
Instances
data VkCommandBufferInheritanceInfo Source #
VkCommandBufferInheritanceInfo - Structure specifying command buffer inheritance info
Members
sType
is the type of this structure.
pNext
isNULL
or a pointer to an extension-specific structure.renderPass
is aVkRenderPass
object defining which render passes theVkCommandBuffer
will be compatible with and can be executed within. If theVkCommandBuffer
will not be executed within a render pass instance,renderPass
is ignored.subpass
is the index of the subpass within the render pass instance that theVkCommandBuffer
will be executed within. If theVkCommandBuffer
will not be executed within a render pass instance,subpass
is ignored.framebuffer
optionally refers to theVkFramebuffer
object that theVkCommandBuffer
will be rendering to if it is executed within a render pass instance. It can beVK_NULL_HANDLE
if the framebuffer is not known, or if theVkCommandBuffer
will 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.
occlusionQueryEnable
specifies 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.queryFlags
specifies 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_BIT
bit, 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_BIT
bit.pipelineStatistics
is a bitmask ofVkQueryPipelineStatisticFlagBits
specifying 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.
Valid Usage
- If the inherited
queries
feature is not enabled,
occlusionQueryEnable
must beVK_FALSE
- If the inherited
queries
feature is enabled,
queryFlags
must be a valid combination ofVkQueryControlFlagBits
values - If the pipeline statistics
queries
feature is not enabled,
pipelineStatistics
must be0
Valid Usage (Implicit)
sType
must beVK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO
pNext
must beNULL
- Both of
framebuffer
, andrenderPass
that are valid handles must have been created, allocated, or retrieved from the sameVkDevice
See Also
VkBool32
, VkCommandBufferBeginInfo
,
VkFramebuffer
, VkQueryControlFlags
,
VkQueryPipelineStatisticFlags
,
VkRenderPass
,
VkStructureType
Instances
data VkCommandBufferBeginInfo Source #
VkCommandBufferBeginInfo - Structure specifying a command buffer begin operation
Valid Usage
- If
flags
containsVK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT
, therenderPass
member ofpInheritanceInfo
must be a validVkRenderPass
- If
flags
containsVK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT
, thesubpass
member ofpInheritanceInfo
must be a valid subpass index within therenderPass
member ofpInheritanceInfo
- If
flags
containsVK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT
, theframebuffer
member ofpInheritanceInfo
must be eitherVK_NULL_HANDLE
, or a validVkFramebuffer
that is compatible with therenderPass
member ofpInheritanceInfo
Valid Usage (Implicit)
sType
must beVK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO
pNext
must beNULL
or a pointer to a valid instance ofVkDeviceGroupCommandBufferBeginInfo
flags
must be a valid combination ofVkCommandBufferUsageFlagBits
values
See Also
VkCommandBufferInheritanceInfo
, VkCommandBufferUsageFlags
,
VkStructureType
, vkBeginCommandBuffer
VkCommandBufferBeginInfo | |
|
Instances
Eq VkCommandBufferBeginInfo Source # | |
Show VkCommandBufferBeginInfo Source # | |
showsPrec :: Int -> VkCommandBufferBeginInfo -> ShowS # show :: VkCommandBufferBeginInfo -> String # showList :: [VkCommandBufferBeginInfo] -> ShowS # | |
Storable VkCommandBufferBeginInfo Source # | |
sizeOf :: VkCommandBufferBeginInfo -> Int # alignment :: VkCommandBufferBeginInfo -> Int # peekElemOff :: Ptr VkCommandBufferBeginInfo -> Int -> IO VkCommandBufferBeginInfo # pokeElemOff :: Ptr VkCommandBufferBeginInfo -> Int -> VkCommandBufferBeginInfo -> IO () # peekByteOff :: Ptr b -> Int -> IO VkCommandBufferBeginInfo # pokeByteOff :: Ptr b -> Int -> VkCommandBufferBeginInfo -> IO () # peek :: Ptr VkCommandBufferBeginInfo -> IO VkCommandBufferBeginInfo # poke :: Ptr VkCommandBufferBeginInfo -> VkCommandBufferBeginInfo -> IO () # |
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
.