Safe Haskell | None |
---|---|
Language | Haskell2010 |
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
cmdSetCullModeEXT
cmdSetDepthBoundsTestEnableEXT
cmdSetDepthCompareOpEXT
cmdSetDepthTestEnableEXT
cmdSetDepthWriteEnableEXT
cmdSetFrontFaceEXT
cmdSetPrimitiveTopologyEXT
cmdSetScissorWithCountEXT
cmdSetStencilOpEXT
cmdSetStencilTestEnableEXT
cmdSetViewportWithCountEXT
New Structures
New Enum Constants
EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION
Extending
DynamicState
:DYNAMIC_STATE_CULL_MODE_EXT
DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT
DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT
DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT
DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT
DYNAMIC_STATE_FRONT_FACE_EXT
DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT
DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT
DYNAMIC_STATE_STENCIL_OP_EXT
DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT
DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT
DYNAMIC_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
:: forall io. MonadIO io | |
=> CommandBuffer |
|
-> CullModeFlags |
|
-> io () |
vkCmdSetCullModeEXT - Set the cull mode property
Valid Usage
- The extendedDynamicState feature must be enabled
Valid Usage (Implicit)
-
commandBuffer
must be a validCommandBuffer
handle
-
cullMode
must be a valid combination ofCullModeFlagBits
values -
commandBuffer
must be in the recording state - The
CommandPool
thatcommandBuffer
was allocated from must support graphics operations
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized
- Host access to the
CommandPool
thatcommandBuffer
was allocated from must be externally synchronized
Command Properties
'
Command Buffer Levels | Render Pass Scope | Supported Queue Types | Pipeline Type |
---|---|---|---|
Primary Secondary | Both | Graphics |
See Also
:: forall io. MonadIO io | |
=> CommandBuffer |
|
-> FrontFace |
|
-> io () |
vkCmdSetFrontFaceEXT - Set the front face property
Valid Usage
- The extendedDynamicState feature must be enabled
Valid Usage (Implicit)
-
commandBuffer
must be a validCommandBuffer
handle
-
frontFace
must be a validFrontFace
value -
commandBuffer
must be in the recording state - The
CommandPool
thatcommandBuffer
was allocated from must support graphics operations
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized
- Host access to the
CommandPool
thatcommandBuffer
was allocated from must be externally synchronized
Command Properties
'
Command Buffer Levels | Render Pass Scope | Supported Queue Types | Pipeline Type |
---|---|---|---|
Primary Secondary | Both | Graphics |
See Also
cmdSetPrimitiveTopologyEXT Source #
:: forall io. MonadIO io | |
=> CommandBuffer |
|
-> PrimitiveTopology | |
-> io () |
vkCmdSetPrimitiveTopologyEXT - Set the primitive topology state
Valid Usage
- The extendedDynamicState feature must be enabled
Valid Usage (Implicit)
-
commandBuffer
must be a validCommandBuffer
handle
-
primitiveTopology
must be a validPrimitiveTopology
value -
commandBuffer
must be in the recording state - The
CommandPool
thatcommandBuffer
was allocated from must support graphics operations
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized
- Host access to the
CommandPool
thatcommandBuffer
was allocated from must be externally synchronized
Command Properties
'
Command Buffer Levels | Render Pass Scope | Supported Queue Types | Pipeline Type |
---|---|---|---|
Primary Secondary | Both | Graphics |
See Also
cmdSetViewportWithCountEXT Source #
:: forall io. MonadIO io | |
=> CommandBuffer |
|
-> ("viewports" ::: Vector Viewport) |
|
-> io () |
vkCmdSetViewportWithCountEXT - Set the viewport count and viewports
Valid Usage
- The extendedDynamicState feature must be enabled
-
viewportCount
must be between1
andPhysicalDeviceLimits
::maxViewports
, inclusive - If the
multiple viewports
feature is not enabled,
viewportCount
must be1
Valid Usage (Implicit)
-
commandBuffer
must be a validCommandBuffer
handle
-
pViewports
must be a valid pointer to an array ofviewportCount
validViewport
structures -
commandBuffer
must be in the recording state - The
CommandPool
thatcommandBuffer
was allocated from must support graphics operations -
viewportCount
must be greater than0
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized
- Host access to the
CommandPool
thatcommandBuffer
was allocated from must be externally synchronized
Command Properties
'
Command Buffer Levels | Render Pass Scope | Supported Queue Types | Pipeline Type |
---|---|---|---|
Primary Secondary | Both | Graphics |
See Also
cmdSetScissorWithCountEXT Source #
:: forall io. MonadIO io | |
=> CommandBuffer |
|
-> ("scissors" ::: Vector Rect2D) |
|
-> io () |
vkCmdSetScissorWithCountEXT - Set the scissor count and scissors
Valid Usage
- The extendedDynamicState feature must be enabled
-
scissorCount
must be between1
andPhysicalDeviceLimits
::maxViewports
, inclusive - If the
multiple viewports
feature is not enabled,
scissorCount
must be1
- The
x
andy
members ofoffset
member of any element ofpScissors
must 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
Valid Usage (Implicit)
-
commandBuffer
must be a validCommandBuffer
handle
-
pScissors
must be a valid pointer to an array ofscissorCount
Rect2D
structures -
commandBuffer
must be in the recording state - The
CommandPool
thatcommandBuffer
was allocated from must support graphics operations -
scissorCount
must be greater than0
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized
- Host access to the
CommandPool
thatcommandBuffer
was allocated from must be externally synchronized
Command Properties
'
Command Buffer Levels | Render Pass Scope | Supported Queue Types | Pipeline Type |
---|---|---|---|
Primary Secondary | Both | Graphics |
See Also
cmdBindVertexBuffers2EXT Source #
:: 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
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 draw commands.
If the bound pipeline state object was created with the
DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT
dynamic state enabled then pStrides
[i] specifies the distance in bytes
between two consecutive elements within the corresponding buffer. In
this case the
VertexInputBindingDescription
::stride
state
from the pipeline state object is ignored.
Valid Usage
-
firstBinding
must be less thanPhysicalDeviceLimits
::maxVertexInputBindings
- The sum of
firstBinding
andbindingCount
must be less than or equal toPhysicalDeviceLimits
::maxVertexInputBindings
- All elements of
pOffsets
must be less than the size of the corresponding element inpBuffers
- If
pSizes
is notNULL
, all elements ofpOffsets
pluspSizes
must be less than or equal to the size of the corresponding element inpBuffers
- All elements of
pBuffers
must have been created with theBUFFER_USAGE_VERTEX_BUFFER_BIT
flag - Each element of
pBuffers
that is non-sparse must be bound completely and contiguously to a singleDeviceMemory
object - If the
nullDescriptor
feature is not enabled, all elements of
pBuffers
must not beNULL_HANDLE
- If an element of
pBuffers
isNULL_HANDLE
, then the corresponding element ofpOffsets
must be zero - If the bound
pipeline state object was created with the
DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT
dynamic state enabled thenpStrides
must not beNULL
, otherwisepStrides
must beNULL
- If
pStrides
is notNULL
each element ofpStrides
must be less than or equal toPhysicalDeviceLimits
::maxVertexInputBindingStride
- If
pStrides
is notNULL
each element ofpStrides
must be greater than or equal to the maximum extent of of all vertex input attributes fetched from the corresponding binding, where the extent is calculated as the VkVertexInputAttributeDescription::offset plus VkVertexInputAttributeDescription::format size
Valid Usage (Implicit)
-
commandBuffer
must be a validCommandBuffer
handle
-
pBuffers
must be a valid pointer to an array ofbindingCount
validBuffer
handles -
pOffsets
must be a valid pointer to an array ofbindingCount
DeviceSize
values - If
pSizes
is notNULL
,pSizes
must be a valid pointer to an array ofbindingCount
DeviceSize
values - If
pStrides
is notNULL
,pStrides
must be a valid pointer to an array ofbindingCount
DeviceSize
values -
commandBuffer
must be in the recording state - The
CommandPool
thatcommandBuffer
was allocated from must support graphics operations - If any of
pSizes
, orpStrides
are notNULL
,bindingCount
must be greater than0
- Both of
commandBuffer
, and the elements ofpBuffers
must have been created, allocated, or retrieved from the sameDevice
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized
- Host access to the
CommandPool
thatcommandBuffer
was allocated from must be externally synchronized
Command Properties
'
Command Buffer Levels | Render Pass Scope | Supported Queue Types | Pipeline Type |
---|---|---|---|
Primary Secondary | Both | Graphics |
See Also
cmdSetDepthTestEnableEXT Source #
:: forall io. MonadIO io | |
=> CommandBuffer |
|
-> ("depthTestEnable" ::: Bool) |
|
-> io () |
vkCmdSetDepthTestEnableEXT - Set the depth test enable for a command buffer
Description
This command sets the state for a given draw when the graphics pipeline
is created with
DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT
set in
PipelineDynamicStateCreateInfo
::pDynamicStates
.
Valid Usage
- The extendedDynamicState feature must be enabled
Valid Usage (Implicit)
-
commandBuffer
must be a validCommandBuffer
handle
-
commandBuffer
must be in the recording state - The
CommandPool
thatcommandBuffer
was allocated from must support graphics operations
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized
- Host access to the
CommandPool
thatcommandBuffer
was allocated from must be externally synchronized
Command Properties
'
Command Buffer Levels | Render Pass Scope | Supported Queue Types | Pipeline Type |
---|---|---|---|
Primary Secondary | Both | Graphics |
See Also
cmdSetDepthWriteEnableEXT Source #
:: forall io. MonadIO io | |
=> CommandBuffer |
|
-> ("depthWriteEnable" ::: Bool) |
|
-> io () |
vkCmdSetDepthWriteEnableEXT - Set the depth write enable for the command buffer
Description
This command sets the state for a given draw when the graphics pipeline
is created with
DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT
set in
PipelineDynamicStateCreateInfo
::pDynamicStates
.
Valid Usage
- The extendedDynamicState feature must be enabled
Valid Usage (Implicit)
-
commandBuffer
must be a validCommandBuffer
handle
-
commandBuffer
must be in the recording state - The
CommandPool
thatcommandBuffer
was allocated from must support graphics operations
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized
- Host access to the
CommandPool
thatcommandBuffer
was allocated from must be externally synchronized
Command Properties
'
Command Buffer Levels | Render Pass Scope | Supported Queue Types | Pipeline Type |
---|---|---|---|
Primary Secondary | Both | Graphics |
See Also
cmdSetDepthCompareOpEXT Source #
:: forall io. MonadIO io | |
=> CommandBuffer |
|
-> ("depthCompareOp" ::: CompareOp) |
|
-> io () |
vkCmdSetDepthCompareOpEXT - Set the depth comparison operator for the command buffer
Description
This command sets the state for a given draw when the graphics pipeline
is created with
DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT
set in
PipelineDynamicStateCreateInfo
::pDynamicStates
.
Valid Usage
- The extendedDynamicState feature must be enabled
Valid Usage (Implicit)
-
commandBuffer
must be a validCommandBuffer
handle
-
depthCompareOp
must be a validCompareOp
value -
commandBuffer
must be in the recording state - The
CommandPool
thatcommandBuffer
was allocated from must support graphics operations
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized
- Host access to the
CommandPool
thatcommandBuffer
was allocated from must be externally synchronized
Command Properties
'
Command Buffer Levels | Render Pass Scope | Supported Queue Types | Pipeline Type |
---|---|---|---|
Primary Secondary | Both | Graphics |
See Also
cmdSetDepthBoundsTestEnableEXT Source #
:: forall io. MonadIO io | |
=> CommandBuffer |
|
-> ("depthBoundsTestEnable" ::: Bool) |
|
-> io () |
vkCmdSetDepthBoundsTestEnableEXT - Set the depth bounds test enable for a command buffer
Description
This command sets the state for a given draw when the graphics pipeline
is created with
DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT
set in
PipelineDynamicStateCreateInfo
::pDynamicStates
.
Valid Usage
- The extendedDynamicState feature must be enabled
Valid Usage (Implicit)
-
commandBuffer
must be a validCommandBuffer
handle
-
commandBuffer
must be in the recording state - The
CommandPool
thatcommandBuffer
was allocated from must support graphics operations
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized
- Host access to the
CommandPool
thatcommandBuffer
was allocated from must be externally synchronized
Command Properties
'
Command Buffer Levels | Render Pass Scope | Supported Queue Types | Pipeline Type |
---|---|---|---|
Primary Secondary | Both | Graphics |
See Also
cmdSetStencilTestEnableEXT Source #
:: forall io. MonadIO io | |
=> CommandBuffer |
|
-> ("stencilTestEnable" ::: Bool) |
|
-> io () |
vkCmdSetStencilTestEnableEXT - Set the stencil test enable for the command buffer
Description
This command sets the state for a given draw when the graphics pipeline
is created with
DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT
set in
PipelineDynamicStateCreateInfo
::pDynamicStates
.
Valid Usage
- The extendedDynamicState feature must be enabled
Valid Usage (Implicit)
-
commandBuffer
must be a validCommandBuffer
handle
-
commandBuffer
must be in the recording state - The
CommandPool
thatcommandBuffer
was allocated from must support graphics operations
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized
- Host access to the
CommandPool
thatcommandBuffer
was allocated from must be externally synchronized
Command Properties
'
Command Buffer Levels | Render Pass Scope | Supported Queue Types | Pipeline Type |
---|---|---|---|
Primary Secondary | Both | Graphics |
See Also
:: forall io. MonadIO io | |
=> CommandBuffer |
|
-> ("faceMask" ::: StencilFaceFlags) |
|
-> ("failOp" ::: StencilOp) |
|
-> ("passOp" ::: StencilOp) |
|
-> ("depthFailOp" ::: StencilOp) |
|
-> CompareOp |
|
-> io () |
vkCmdSetStencilOpEXT - Set the stencil operation for the command buffer
Description
This command sets the state for a given draw when the graphics pipeline
is created with
DYNAMIC_STATE_STENCIL_OP_EXT
set in
PipelineDynamicStateCreateInfo
::pDynamicStates
.
Valid Usage
- The extendedDynamicState feature must be enabled
Valid Usage (Implicit)
-
commandBuffer
must be a validCommandBuffer
handle
-
faceMask
must be a valid combination ofStencilFaceFlagBits
values -
faceMask
must not be0
-
failOp
must be a validStencilOp
value -
passOp
must be a validStencilOp
value -
depthFailOp
must be a validStencilOp
value -
compareOp
must be a validCompareOp
value -
commandBuffer
must be in the recording state - The
CommandPool
thatcommandBuffer
was allocated from must support graphics operations
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized
- Host access to the
CommandPool
thatcommandBuffer
was allocated from must be externally synchronized
Command Properties
'
Command Buffer Levels | Render Pass Scope | Supported Queue Types | Pipeline Type |
---|---|---|---|
Primary Secondary | Both | Graphics |
See Also
data PhysicalDeviceExtendedDynamicStateFeaturesEXT Source #
VkPhysicalDeviceExtendedDynamicStateFeaturesEXT - Structure describing what extended dynamic state can be used
Members
The members of the PhysicalDeviceExtendedDynamicStateFeaturesEXT
structure describe the following features:
Description
If the PhysicalDeviceExtendedDynamicStateFeaturesEXT
structure is
included in the pNext
chain of
PhysicalDeviceFeatures2
,
it is filled with values indicating whether the feature is supported.
PhysicalDeviceExtendedDynamicStateFeaturesEXT
can also be used in
the pNext
chain of DeviceCreateInfo
to enable
features.
Valid Usage (Implicit)
See Also
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 #