| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Vulkan.Extensions.VK_EXT_extended_dynamic_state
Description
Name
VK_EXT_extended_dynamic_state - device extension
VK_EXT_extended_dynamic_state
- Name String
VK_EXT_extended_dynamic_state
- Extension Type
- Device extension
- Registered Extension Number
- 268
- Revision
- 1
- Extension and Version Dependencies
- Requires Vulkan 1.0
- Requires
VK_KHR_get_physical_device_properties2
- Contact
Other Extension Metadata
- Last Modified Date
- 2019-12-09
- IP Status
- No known IP claims.
- Contributors
- Dan Ginsburg, Valve Corporation
- Graeme Leese, Broadcom
- Hans-Kristian Arntzen, Valve Corporation
- Jan-Harald Fredriksen, Arm Limited
- Jason Ekstrand, Intel
- Jeff Bolz, NVIDIA
- Jesse Hall, Google
- Philip Rebohle, Valve Corporation
- Stuart Smith, Imagination Technologies
- Tobias Hector, AMD
Description
This extension adds some more dynamic state to support applications that need to reduce the number of pipeline state objects they compile and bind.
New Commands
cmdSetCullModeEXTcmdSetDepthBoundsTestEnableEXTcmdSetDepthCompareOpEXTcmdSetDepthTestEnableEXTcmdSetDepthWriteEnableEXTcmdSetFrontFaceEXTcmdSetPrimitiveTopologyEXTcmdSetScissorWithCountEXTcmdSetStencilOpEXTcmdSetStencilTestEnableEXTcmdSetViewportWithCountEXT
New Structures
New Enum Constants
EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSIONExtending
DynamicState:DYNAMIC_STATE_CULL_MODE_EXTDYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXTDYNAMIC_STATE_DEPTH_COMPARE_OP_EXTDYNAMIC_STATE_DEPTH_TEST_ENABLE_EXTDYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXTDYNAMIC_STATE_FRONT_FACE_EXTDYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXTDYNAMIC_STATE_SCISSOR_WITH_COUNT_EXTDYNAMIC_STATE_STENCIL_OP_EXTDYNAMIC_STATE_STENCIL_TEST_ENABLE_EXTDYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXTDYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT
Extending
StructureType:
Version History
Revision 1, 2019-12-09 (Piers Daniell)
- Internal revisions
See Also
PhysicalDeviceExtendedDynamicStateFeaturesEXT,
cmdBindVertexBuffers2EXT, cmdSetCullModeEXT,
cmdSetDepthBoundsTestEnableEXT, cmdSetDepthCompareOpEXT,
cmdSetDepthTestEnableEXT, cmdSetDepthWriteEnableEXT,
cmdSetFrontFaceEXT, cmdSetPrimitiveTopologyEXT,
cmdSetScissorWithCountEXT, cmdSetStencilOpEXT,
cmdSetStencilTestEnableEXT, cmdSetViewportWithCountEXT
Document Notes
For more information, see the Vulkan Specification
This page is a generated document. Fixes and changes should be made to the generator scripts, not directly.
Synopsis
- cmdSetCullModeEXT :: forall io. MonadIO io => CommandBuffer -> CullModeFlags -> io ()
- cmdSetFrontFaceEXT :: forall io. MonadIO io => CommandBuffer -> FrontFace -> io ()
- cmdSetPrimitiveTopologyEXT :: forall io. MonadIO io => CommandBuffer -> PrimitiveTopology -> io ()
- cmdSetViewportWithCountEXT :: forall io. MonadIO io => CommandBuffer -> ("viewports" ::: Vector Viewport) -> io ()
- cmdSetScissorWithCountEXT :: forall io. MonadIO io => CommandBuffer -> ("scissors" ::: Vector Rect2D) -> io ()
- cmdBindVertexBuffers2EXT :: forall io. MonadIO io => CommandBuffer -> ("firstBinding" ::: Word32) -> ("buffers" ::: Vector Buffer) -> ("offsets" ::: Vector DeviceSize) -> ("sizes" ::: Vector DeviceSize) -> ("strides" ::: Vector DeviceSize) -> io ()
- cmdSetDepthTestEnableEXT :: forall io. MonadIO io => CommandBuffer -> ("depthTestEnable" ::: Bool) -> io ()
- cmdSetDepthWriteEnableEXT :: forall io. MonadIO io => CommandBuffer -> ("depthWriteEnable" ::: Bool) -> io ()
- cmdSetDepthCompareOpEXT :: forall io. MonadIO io => CommandBuffer -> ("depthCompareOp" ::: CompareOp) -> io ()
- cmdSetDepthBoundsTestEnableEXT :: forall io. MonadIO io => CommandBuffer -> ("depthBoundsTestEnable" ::: Bool) -> io ()
- cmdSetStencilTestEnableEXT :: forall io. MonadIO io => CommandBuffer -> ("stencilTestEnable" ::: Bool) -> io ()
- cmdSetStencilOpEXT :: forall io. MonadIO io => CommandBuffer -> ("faceMask" ::: StencilFaceFlags) -> ("failOp" ::: StencilOp) -> ("passOp" ::: StencilOp) -> ("depthFailOp" ::: StencilOp) -> CompareOp -> io ()
- data PhysicalDeviceExtendedDynamicStateFeaturesEXT = PhysicalDeviceExtendedDynamicStateFeaturesEXT {}
- type EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION = 1
- pattern EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION :: forall a. Integral a => a
- type EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME = "VK_EXT_extended_dynamic_state"
- pattern EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a
Documentation
Arguments
| :: forall io. MonadIO io | |
| => CommandBuffer |
|
| -> CullModeFlags |
|
| -> io () |
vkCmdSetCullModeEXT - Set cull mode dynamically for a command buffer
Description
This command sets the cull mode for subsequent drawing commands when the
graphics pipeline is created with
DYNAMIC_STATE_CULL_MODE_EXT set in
PipelineDynamicStateCreateInfo::pDynamicStates.
Otherwise, this state is specified by the
PipelineRasterizationStateCreateInfo::cullMode
value used to create the currently active pipeline.
Valid Usage
- The extendedDynamicState feature must be enabled
Valid Usage (Implicit)
-
commandBuffermust be a validCommandBufferhandle
-
cullModemust be a valid combination ofCullModeFlagBitsvalues -
commandBuffermust be in the recording state - The
CommandPoolthatcommandBufferwas allocated from must support graphics operations
Host Synchronization
- Host access to
commandBuffermust be externally synchronized
- Host access to the
CommandPoolthatcommandBufferwas allocated from must be externally synchronized
Command Properties
'
| Command Buffer Levels | Render Pass Scope | Supported Queue Types |
|---|---|---|
| Primary Secondary | Both | Graphics |
See Also
Arguments
| :: forall io. MonadIO io | |
| => CommandBuffer |
|
| -> FrontFace |
|
| -> io () |
vkCmdSetFrontFaceEXT - Set front face orientation dynamically for a command buffer
Description
This command sets the front face orientation for subsequent drawing
commands when the graphics pipeline is created with
DYNAMIC_STATE_FRONT_FACE_EXT set in
PipelineDynamicStateCreateInfo::pDynamicStates.
Otherwise, this state is specified by the
PipelineRasterizationStateCreateInfo::frontFace
value used to create the currently active pipeline.
Valid Usage
- The extendedDynamicState feature must be enabled
Valid Usage (Implicit)
-
commandBuffermust be a validCommandBufferhandle
-
frontFacemust be a validFrontFacevalue -
commandBuffermust be in the recording state - The
CommandPoolthatcommandBufferwas allocated from must support graphics operations
Host Synchronization
- Host access to
commandBuffermust be externally synchronized
- Host access to the
CommandPoolthatcommandBufferwas allocated from must be externally synchronized
Command Properties
'
| Command Buffer Levels | Render Pass Scope | Supported Queue Types |
|---|---|---|
| Primary Secondary | Both | Graphics |
See Also
cmdSetPrimitiveTopologyEXT Source #
Arguments
| :: forall io. MonadIO io | |
| => CommandBuffer |
|
| -> PrimitiveTopology |
|
| -> io () |
vkCmdSetPrimitiveTopologyEXT - Set primitive topology state dynamically for a command buffer
Description
This command sets the primitive topology for subsequent drawing commands
when the graphics pipeline is created with
DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT
set in
PipelineDynamicStateCreateInfo::pDynamicStates.
Otherwise, this state is specified by the
PipelineInputAssemblyStateCreateInfo::topology
value used to create the currently active pipeline.
Valid Usage
- The extendedDynamicState feature must be enabled
Valid Usage (Implicit)
-
commandBuffermust be a validCommandBufferhandle
-
primitiveTopologymust be a validPrimitiveTopologyvalue -
commandBuffermust be in the recording state - The
CommandPoolthatcommandBufferwas allocated from must support graphics operations
Host Synchronization
- Host access to
commandBuffermust be externally synchronized
- Host access to the
CommandPoolthatcommandBufferwas allocated from must be externally synchronized
Command Properties
'
| Command Buffer Levels | Render Pass Scope | Supported Queue Types |
|---|---|---|
| Primary Secondary | Both | Graphics |
See Also
VK_EXT_extended_dynamic_state,
CommandBuffer,
PrimitiveTopology
cmdSetViewportWithCountEXT Source #
Arguments
| :: forall io. MonadIO io | |
| => CommandBuffer |
|
| -> ("viewports" ::: Vector Viewport) |
|
| -> io () |
vkCmdSetViewportWithCountEXT - Set the viewport count and viewports dynamically for a command buffer
Description
This command sets the viewport count and viewports state for subsequent
drawing commands when the graphics pipeline is created with
DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT
set in
PipelineDynamicStateCreateInfo::pDynamicStates.
Otherwise, this state is specified by the corresponding
PipelineViewportStateCreateInfo::viewportCount
and pViewports values used to create the currently active pipeline.
Valid Usage
- The extendedDynamicState feature must be enabled
-
viewportCountmust be between1andPhysicalDeviceLimits::maxViewports, inclusive - If the
multiple viewports
feature is not enabled,
viewportCountmust be1 -
commandBuffermust not haveCommandBufferInheritanceViewportScissorInfoNV::viewportScissor2Denabled
Valid Usage (Implicit)
-
commandBuffermust be a validCommandBufferhandle
-
pViewportsmust be a valid pointer to an array ofviewportCountvalidViewportstructures -
commandBuffermust be in the recording state - The
CommandPoolthatcommandBufferwas allocated from must support graphics operations -
viewportCountmust be greater than0
Host Synchronization
- Host access to
commandBuffermust be externally synchronized
- Host access to the
CommandPoolthatcommandBufferwas allocated from must be externally synchronized
Command Properties
'
| Command Buffer Levels | Render Pass Scope | Supported Queue Types |
|---|---|---|
| Primary Secondary | Both | Graphics |
See Also
cmdSetScissorWithCountEXT Source #
Arguments
| :: forall io. MonadIO io | |
| => CommandBuffer |
|
| -> ("scissors" ::: Vector Rect2D) |
|
| -> io () |
vkCmdSetScissorWithCountEXT - Set the scissor count and scissor rectangular bounds dynamically for a command buffer
Description
This command sets the scissor count and scissor rectangular bounds state
for subsequence drawing commands when the graphics pipeline is created
with
DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT
set in
PipelineDynamicStateCreateInfo::pDynamicStates.
Otherwise, this state is specified by the corresponding
PipelineViewportStateCreateInfo::scissorCount
and pScissors values used to create the currently active pipeline.
Valid Usage
- The extendedDynamicState feature must be enabled
-
scissorCountmust be between1andPhysicalDeviceLimits::maxViewports, inclusive - If the
multiple viewports
feature is not enabled,
scissorCountmust be1 - The
xandymembers ofoffsetmember of any element ofpScissorsmust be greater than or equal to0 - Evaluation of
(
offset.x+extent.width) must not cause a signed integer addition overflow for any element ofpScissors - Evaluation of
(
offset.y+extent.height) must not cause a signed integer addition overflow for any element ofpScissors -
commandBuffermust not haveCommandBufferInheritanceViewportScissorInfoNV::viewportScissor2Denabled
Valid Usage (Implicit)
-
commandBuffermust be a validCommandBufferhandle
-
pScissorsmust be a valid pointer to an array ofscissorCountRect2Dstructures -
commandBuffermust be in the recording state - The
CommandPoolthatcommandBufferwas allocated from must support graphics operations -
scissorCountmust be greater than0
Host Synchronization
- Host access to
commandBuffermust be externally synchronized
- Host access to the
CommandPoolthatcommandBufferwas allocated from must be externally synchronized
Command Properties
'
| Command Buffer Levels | Render Pass Scope | Supported Queue Types |
|---|---|---|
| Primary Secondary | Both | Graphics |
See Also
cmdBindVertexBuffers2EXT Source #
Arguments
| :: forall io. MonadIO io | |
| => CommandBuffer |
|
| -> ("firstBinding" ::: Word32) |
|
| -> ("buffers" ::: Vector Buffer) |
|
| -> ("offsets" ::: Vector DeviceSize) |
|
| -> ("sizes" ::: Vector DeviceSize) |
|
| -> ("strides" ::: Vector DeviceSize) |
|
| -> io () |
vkCmdBindVertexBuffers2EXT - Bind vertex buffers to a command buffer and dynamically set strides
Description
The values taken from elements i of pBuffers and pOffsets replace
the current state for the vertex input binding firstBinding + i, for i
in [0, bindingCount). The vertex input binding is updated to start at
the offset indicated by pOffsets[i] from the start of the buffer
pBuffers[i]. If pSizes is not NULL then pSizes[i] specifies the
bound size of the vertex buffer starting from the corresponding elements
of pBuffers[i] plus pOffsets[i]. All vertex input attributes that
use each of these bindings will use these updated addresses in their
address calculations for subsequent drawing commands. If the
nullDescriptor
feature is enabled, elements of pBuffers can be
NULL_HANDLE, and can be used by the
vertex shader. If a vertex input attribute is bound to a vertex input
binding that is NULL_HANDLE, the values
taken from memory are considered to be zero, and missing G, B, or A
components are
filled with (0,0,1).
This command also <pipelines-dynamic-state, dynamically sets>> the byte
strides between consecutive elements within buffer pBuffers[i] to the
corresponding pStrides[i] value when the graphics pipeline is created
with
DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT
set in
PipelineDynamicStateCreateInfo::pDynamicStates.
Otherwise, strides are specified by the
VertexInputBindingDescription::stride values
used to create the currently active pipeline.
If the bound pipeline state object was also created with the
DYNAMIC_STATE_VERTEX_INPUT_EXT
dynamic state enabled then
cmdSetVertexInputEXT
can be used instead of cmdBindVertexBuffers2EXT to set the stride.
Valid Usage
-
firstBindingmust be less thanPhysicalDeviceLimits::maxVertexInputBindings
- The sum of
firstBindingandbindingCountmust be less than or equal toPhysicalDeviceLimits::maxVertexInputBindings - All elements of
pOffsetsmust be less than the size of the corresponding element inpBuffers - If
pSizesis notNULL, all elements ofpOffsetspluspSizesmust be less than or equal to the size of the corresponding element inpBuffers - All elements of
pBuffersmust have been created with theBUFFER_USAGE_VERTEX_BUFFER_BITflag - Each element of
pBuffersthat is non-sparse must be bound completely and contiguously to a singleDeviceMemoryobject - If the
nullDescriptor
feature is not enabled, all elements of
pBuffersmust not beNULL_HANDLE - If an element of
pBuffersisNULL_HANDLE, then the corresponding element ofpOffsetsmust be zero - If
pStridesis notNULLeach element ofpStridesmust be less than or equal toPhysicalDeviceLimits::maxVertexInputBindingStride - If
pStridesis notNULLeach element ofpStridesmust be either 0 or greater than or equal to the maximum extent of all vertex input attributes fetched from the corresponding binding, where the extent is calculated as theVertexInputAttributeDescription::offsetplusVertexInputAttributeDescription::formatsize
Valid Usage (Implicit)
-
commandBuffermust be a validCommandBufferhandle
-
pBuffersmust be a valid pointer to an array ofbindingCountvalid orNULL_HANDLEBufferhandles -
pOffsetsmust be a valid pointer to an array ofbindingCountDeviceSizevalues - If
pSizesis notNULL,pSizesmust be a valid pointer to an array ofbindingCountDeviceSizevalues - If
pStridesis notNULL,pStridesmust be a valid pointer to an array ofbindingCountDeviceSizevalues -
commandBuffermust be in the recording state - The
CommandPoolthatcommandBufferwas allocated from must support graphics operations - If any of
pSizes, orpStridesare notNULL,bindingCountmust be greater than0 - Both of
commandBuffer, and the elements ofpBuffersthat are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the sameDevice
Host Synchronization
- Host access to
commandBuffermust be externally synchronized
- Host access to the
CommandPoolthatcommandBufferwas allocated from must be externally synchronized
Command Properties
'
| Command Buffer Levels | Render Pass Scope | Supported Queue Types |
|---|---|---|
| Primary Secondary | Both | Graphics |
See Also
VK_EXT_extended_dynamic_state,
Buffer, CommandBuffer,
DeviceSize
cmdSetDepthTestEnableEXT Source #
Arguments
| :: forall io. MonadIO io | |
| => CommandBuffer |
|
| -> ("depthTestEnable" ::: Bool) |
|
| -> io () |
vkCmdSetDepthTestEnableEXT - Set depth test enable dynamically for a command buffer
Description
This command sets the depth test enable for subsequent drawing commands
when the graphics pipeline is created with
DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT
set in
PipelineDynamicStateCreateInfo::pDynamicStates.
Otherwise, this state is specified by the
PipelineDepthStencilStateCreateInfo::depthTestEnable
value used to create the currently active pipeline.
Valid Usage
- The extendedDynamicState feature must be enabled
Valid Usage (Implicit)
-
commandBuffermust be a validCommandBufferhandle
-
commandBuffermust be in the recording state - The
CommandPoolthatcommandBufferwas allocated from must support graphics operations
Host Synchronization
- Host access to
commandBuffermust be externally synchronized
- Host access to the
CommandPoolthatcommandBufferwas allocated from must be externally synchronized
Command Properties
'
| Command Buffer Levels | Render Pass Scope | Supported Queue Types |
|---|---|---|
| Primary Secondary | Both | Graphics |
See Also
cmdSetDepthWriteEnableEXT Source #
Arguments
| :: forall io. MonadIO io | |
| => CommandBuffer |
|
| -> ("depthWriteEnable" ::: Bool) |
|
| -> io () |
vkCmdSetDepthWriteEnableEXT - Set depth write enable dynamically for a command buffer
Description
This command sets the depth write enable for subsequent drawing commands
when the graphics pipeline is created with
DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT
set in
PipelineDynamicStateCreateInfo::pDynamicStates.
Otherwise, this state is specified by the
PipelineDepthStencilStateCreateInfo::depthWriteEnable
value used to create the currently active pipeline.
Valid Usage
- The extendedDynamicState feature must be enabled
Valid Usage (Implicit)
-
commandBuffermust be a validCommandBufferhandle
-
commandBuffermust be in the recording state - The
CommandPoolthatcommandBufferwas allocated from must support graphics operations
Host Synchronization
- Host access to
commandBuffermust be externally synchronized
- Host access to the
CommandPoolthatcommandBufferwas allocated from must be externally synchronized
Command Properties
'
| Command Buffer Levels | Render Pass Scope | Supported Queue Types |
|---|---|---|
| Primary Secondary | Both | Graphics |
See Also
cmdSetDepthCompareOpEXT Source #
Arguments
| :: forall io. MonadIO io | |
| => CommandBuffer |
|
| -> ("depthCompareOp" ::: CompareOp) |
|
| -> io () |
vkCmdSetDepthCompareOpEXT - Set depth comparison operator dynamically for a command buffer
Description
This command sets the depth comparison operator for subsequent drawing
commands when the graphics pipeline is created with
DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT
set in
PipelineDynamicStateCreateInfo::pDynamicStates.
Otherwise, this state is specified by the
PipelineDepthStencilStateCreateInfo::depthCompareOp
value used to create the currently active pipeline.
Valid Usage
- The extendedDynamicState feature must be enabled
Valid Usage (Implicit)
-
commandBuffermust be a validCommandBufferhandle
-
depthCompareOpmust be a validCompareOpvalue -
commandBuffermust be in the recording state - The
CommandPoolthatcommandBufferwas allocated from must support graphics operations
Host Synchronization
- Host access to
commandBuffermust be externally synchronized
- Host access to the
CommandPoolthatcommandBufferwas allocated from must be externally synchronized
Command Properties
'
| Command Buffer Levels | Render Pass Scope | Supported Queue Types |
|---|---|---|
| Primary Secondary | Both | Graphics |
See Also
cmdSetDepthBoundsTestEnableEXT Source #
Arguments
| :: forall io. MonadIO io | |
| => CommandBuffer |
|
| -> ("depthBoundsTestEnable" ::: Bool) |
|
| -> io () |
vkCmdSetDepthBoundsTestEnableEXT - Set depth bounds test enable dynamically for a command buffer
Description
This command sets the depth bounds enable for subsequent drawing
commands when the graphics pipeline is created with
DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT
set in
PipelineDynamicStateCreateInfo::pDynamicStates.
Otherwise, this state is specified by the
PipelineDepthStencilStateCreateInfo::depthBoundsTestEnable
value used to create the currently active pipeline.
Valid Usage
- The extendedDynamicState feature must be enabled
Valid Usage (Implicit)
-
commandBuffermust be a validCommandBufferhandle
-
commandBuffermust be in the recording state - The
CommandPoolthatcommandBufferwas allocated from must support graphics operations
Host Synchronization
- Host access to
commandBuffermust be externally synchronized
- Host access to the
CommandPoolthatcommandBufferwas allocated from must be externally synchronized
Command Properties
'
| Command Buffer Levels | Render Pass Scope | Supported Queue Types |
|---|---|---|
| Primary Secondary | Both | Graphics |
See Also
cmdSetStencilTestEnableEXT Source #
Arguments
| :: forall io. MonadIO io | |
| => CommandBuffer |
|
| -> ("stencilTestEnable" ::: Bool) |
|
| -> io () |
vkCmdSetStencilTestEnableEXT - Set stencil test enable dynamically for a command buffer
Description
This command sets the stencil test enable for subsequent drawing
commands when the graphics pipeline is created with
DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT
set in
PipelineDynamicStateCreateInfo::pDynamicStates.
Otherwise, this state is specified by the
PipelineDepthStencilStateCreateInfo::stencilTestEnable
value used to create the currently active pipeline.
Valid Usage
- The extendedDynamicState feature must be enabled
Valid Usage (Implicit)
-
commandBuffermust be a validCommandBufferhandle
-
commandBuffermust be in the recording state - The
CommandPoolthatcommandBufferwas allocated from must support graphics operations
Host Synchronization
- Host access to
commandBuffermust be externally synchronized
- Host access to the
CommandPoolthatcommandBufferwas allocated from must be externally synchronized
Command Properties
'
| Command Buffer Levels | Render Pass Scope | Supported Queue Types |
|---|---|---|
| Primary Secondary | Both | Graphics |
See Also
Arguments
| :: forall io. MonadIO io | |
| => CommandBuffer |
|
| -> ("faceMask" ::: StencilFaceFlags) |
|
| -> ("failOp" ::: StencilOp) |
|
| -> ("passOp" ::: StencilOp) |
|
| -> ("depthFailOp" ::: StencilOp) |
|
| -> CompareOp |
|
| -> io () |
vkCmdSetStencilOpEXT - Set stencil operation dynamically for a command buffer
Description
This command sets the stencil operation for subsequent drawing commands
when the graphics pipeline is created with
DYNAMIC_STATE_STENCIL_OP_EXT set in
PipelineDynamicStateCreateInfo::pDynamicStates.
Otherwise, this state is specified by the corresponding
PipelineDepthStencilStateCreateInfo::failOp,
passOp, depthFailOp, and compareOp values used to create the
currently active pipeline, for both front and back faces.
Valid Usage
- The extendedDynamicState feature must be enabled
Valid Usage (Implicit)
-
commandBuffermust be a validCommandBufferhandle
-
faceMaskmust be a valid combination ofStencilFaceFlagBitsvalues -
faceMaskmust not be0 -
failOpmust be a validStencilOpvalue -
passOpmust be a validStencilOpvalue -
depthFailOpmust be a validStencilOpvalue -
compareOpmust be a validCompareOpvalue -
commandBuffermust be in the recording state - The
CommandPoolthatcommandBufferwas allocated from must support graphics operations
Host Synchronization
- Host access to
commandBuffermust be externally synchronized
- Host access to the
CommandPoolthatcommandBufferwas allocated from must be externally synchronized
Command Properties
'
| Command Buffer Levels | Render Pass Scope | Supported Queue Types |
|---|---|---|
| Primary Secondary | Both | Graphics |
See Also
VK_EXT_extended_dynamic_state,
CommandBuffer,
CompareOp,
StencilFaceFlags,
StencilOp
data PhysicalDeviceExtendedDynamicStateFeaturesEXT Source #
VkPhysicalDeviceExtendedDynamicStateFeaturesEXT - Structure describing what extended dynamic state can be used
Members
This structure describes the following feature:
Description
If the PhysicalDeviceExtendedDynamicStateFeaturesEXT structure is
included in the pNext chain of the
PhysicalDeviceFeatures2
structure passed to
getPhysicalDeviceFeatures2,
it is filled in to indicate whether each corresponding feature is
supported. PhysicalDeviceExtendedDynamicStateFeaturesEXT can also be
used in the pNext chain of DeviceCreateInfo to
selectively enable these features.
Valid Usage (Implicit)
See Also
Constructors
Instances
pattern EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION :: forall a. Integral a => a Source #
type EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME = "VK_EXT_extended_dynamic_state" Source #
pattern EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a Source #