vulkan-3.8.1: Bindings to the Vulkan graphics API.
Safe HaskellNone
LanguageHaskell2010

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

New Structures

New Enum Constants

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

Documentation

cmdSetCullModeEXT Source #

Arguments

:: forall io. MonadIO io 
=> CommandBuffer

commandBuffer is the command buffer into which the command will be recorded.

-> CullModeFlags

cullMode specifies the cull mode property to use for drawing.

-> io () 

vkCmdSetCullModeEXT - Set the cull mode property

Valid Usage

Valid Usage (Implicit)

Host Synchronization

  • Host access to commandBuffer must be externally synchronized
  • Host access to the CommandPool that commandBuffer 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

CommandBuffer, CullModeFlags

cmdSetFrontFaceEXT Source #

Arguments

:: forall io. MonadIO io 
=> CommandBuffer

commandBuffer is the command buffer into which the command will be recorded.

-> FrontFace

frontFace specifies the front face property to use for drawing.

-> io () 

vkCmdSetFrontFaceEXT - Set the front face property

Valid Usage

Valid Usage (Implicit)

Host Synchronization

  • Host access to commandBuffer must be externally synchronized
  • Host access to the CommandPool that commandBuffer 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

CommandBuffer, FrontFace

cmdSetPrimitiveTopologyEXT Source #

Arguments

:: forall io. MonadIO io 
=> CommandBuffer

commandBuffer is the command buffer into which the command will be recorded.

-> PrimitiveTopology 
-> io () 

vkCmdSetPrimitiveTopologyEXT - Set the primitive topology state

Valid Usage

Valid Usage (Implicit)

Host Synchronization

  • Host access to commandBuffer must be externally synchronized
  • Host access to the CommandPool that commandBuffer 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

CommandBuffer, PrimitiveTopology

cmdSetViewportWithCountEXT Source #

Arguments

:: forall io. MonadIO io 
=> CommandBuffer

commandBuffer is the command buffer into which the command will be recorded.

-> ("viewports" ::: Vector Viewport)

pViewports specifies the viewports to use for drawing.

-> io () 

vkCmdSetViewportWithCountEXT - Set the viewport count and viewports

Valid Usage

Valid Usage (Implicit)

  • pViewports must be a valid pointer to an array of viewportCount valid Viewport structures
  • commandBuffer must be in the recording state
  • The CommandPool that commandBuffer was allocated from must support graphics operations
  • viewportCount must be greater than 0

Host Synchronization

  • Host access to commandBuffer must be externally synchronized
  • Host access to the CommandPool that commandBuffer 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

CommandBuffer, Viewport

cmdSetScissorWithCountEXT Source #

Arguments

:: forall io. MonadIO io 
=> CommandBuffer

commandBuffer is the command buffer into which the command will be recorded.

-> ("scissors" ::: Vector Rect2D)

pScissors specifies the scissors to use for drawing.

-> io () 

vkCmdSetScissorWithCountEXT - Set the scissor count and scissors

Valid Usage

  • scissorCount must be between 1 and PhysicalDeviceLimits::maxViewports, inclusive
  • If the multiple viewports feature is not enabled, scissorCount must be 1
  • The x and y members of offset member of any element of pScissors must be greater than or equal to 0
  • Evaluation of (offset.x + extent.width) must not cause a signed integer addition overflow for any element of pScissors
  • Evaluation of (offset.y + extent.height) must not cause a signed integer addition overflow for any element of pScissors

Valid Usage (Implicit)

  • pScissors must be a valid pointer to an array of scissorCount Rect2D structures
  • commandBuffer must be in the recording state
  • The CommandPool that commandBuffer was allocated from must support graphics operations
  • scissorCount must be greater than 0

Host Synchronization

  • Host access to commandBuffer must be externally synchronized
  • Host access to the CommandPool that commandBuffer 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

CommandBuffer, Rect2D

cmdBindVertexBuffers2EXT Source #

Arguments

:: forall io. MonadIO io 
=> CommandBuffer

commandBuffer is the command buffer into which the command is recorded.

-> ("firstBinding" ::: Word32)

firstBinding is the index of the first vertex input binding whose state is updated by the command.

-> ("buffers" ::: Vector Buffer)

pBuffers is a pointer to an array of buffer handles.

-> ("offsets" ::: Vector DeviceSize)

pOffsets is a pointer to an array of buffer offsets.

-> ("sizes" ::: Vector DeviceSize)

pSizes is an optional array of the size in bytes of vertex data bound from pBuffers.

-> ("strides" ::: Vector DeviceSize)

pStrides is optional, and when not NULL is a pointer to an array of buffer strides.

-> 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

  • The sum of firstBinding and bindingCount must be less than or equal to PhysicalDeviceLimits::maxVertexInputBindings
  • All elements of pOffsets must be less than the size of the corresponding element in pBuffers
  • If pSizes is not NULL, all elements of pOffsets plus pSizes must be less than or equal to the size of the corresponding element in pBuffers
  • All elements of pBuffers must have been created with the BUFFER_USAGE_VERTEX_BUFFER_BIT flag
  • Each element of pBuffers that is non-sparse must be bound completely and contiguously to a single DeviceMemory object
  • If the nullDescriptor feature is not enabled, all elements of pBuffers must not be NULL_HANDLE
  • If an element of pBuffers is NULL_HANDLE, then the corresponding element of pOffsets must be zero
  • If the bound pipeline state object was created with the DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic state enabled then pStrides must not be NULL, otherwise pStrides must be NULL
  • If pStrides is not NULL each element of pStrides must be less than or equal to PhysicalDeviceLimits::maxVertexInputBindingStride
  • If pStrides is not NULL each element of pStrides 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)

  • pBuffers must be a valid pointer to an array of bindingCount valid Buffer handles
  • pOffsets must be a valid pointer to an array of bindingCount DeviceSize values
  • If pSizes is not NULL, pSizes must be a valid pointer to an array of bindingCount DeviceSize values
  • If pStrides is not NULL, pStrides must be a valid pointer to an array of bindingCount DeviceSize values
  • commandBuffer must be in the recording state
  • The CommandPool that commandBuffer was allocated from must support graphics operations
  • If any of pSizes, or pStrides are not NULL, bindingCount must be greater than 0
  • Both of commandBuffer, and the elements of pBuffers must have been created, allocated, or retrieved from the same Device

Host Synchronization

  • Host access to commandBuffer must be externally synchronized
  • Host access to the CommandPool that commandBuffer 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

Buffer, CommandBuffer, DeviceSize

cmdSetDepthTestEnableEXT Source #

Arguments

:: forall io. MonadIO io 
=> CommandBuffer

commandBuffer is the command buffer into which the command will be recorded.

-> ("depthTestEnable" ::: Bool)

depthTestEnable specifies if the depth test is enabled.

-> 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

Valid Usage (Implicit)

  • commandBuffer must be in the recording state
  • The CommandPool that commandBuffer was allocated from must support graphics operations

Host Synchronization

  • Host access to commandBuffer must be externally synchronized
  • Host access to the CommandPool that commandBuffer 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

Bool32, CommandBuffer

cmdSetDepthWriteEnableEXT Source #

Arguments

:: forall io. MonadIO io 
=> CommandBuffer

commandBuffer is the command buffer into which the command will be recorded.

-> ("depthWriteEnable" ::: Bool)

depthWriteEnable specifies if depth writes are enabled.

-> 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

Valid Usage (Implicit)

  • commandBuffer must be in the recording state
  • The CommandPool that commandBuffer was allocated from must support graphics operations

Host Synchronization

  • Host access to commandBuffer must be externally synchronized
  • Host access to the CommandPool that commandBuffer 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

Bool32, CommandBuffer

cmdSetDepthCompareOpEXT Source #

Arguments

:: forall io. MonadIO io 
=> CommandBuffer

commandBuffer is the command buffer into which the command will be recorded.

-> ("depthCompareOp" ::: CompareOp)

depthCompareOp specifies the depth comparison operator.

-> 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

Valid Usage (Implicit)

  • depthCompareOp must be a valid CompareOp value
  • commandBuffer must be in the recording state
  • The CommandPool that commandBuffer was allocated from must support graphics operations

Host Synchronization

  • Host access to commandBuffer must be externally synchronized
  • Host access to the CommandPool that commandBuffer 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

CommandBuffer, CompareOp

cmdSetDepthBoundsTestEnableEXT Source #

Arguments

:: forall io. MonadIO io 
=> CommandBuffer

commandBuffer is the command buffer into which the command will be recorded.

-> ("depthBoundsTestEnable" ::: Bool)

depthBoundsTestEnable specifies if the depth bounds test is enabled.

-> 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

Valid Usage (Implicit)

  • commandBuffer must be in the recording state
  • The CommandPool that commandBuffer was allocated from must support graphics operations

Host Synchronization

  • Host access to commandBuffer must be externally synchronized
  • Host access to the CommandPool that commandBuffer 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

Bool32, CommandBuffer

cmdSetStencilTestEnableEXT Source #

Arguments

:: forall io. MonadIO io 
=> CommandBuffer

commandBuffer is the command buffer into which the command will be recorded.

-> ("stencilTestEnable" ::: Bool)

stencilTestEnable specifies if the stencil test is enabled.

-> 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

Valid Usage (Implicit)

  • commandBuffer must be in the recording state
  • The CommandPool that commandBuffer was allocated from must support graphics operations

Host Synchronization

  • Host access to commandBuffer must be externally synchronized
  • Host access to the CommandPool that commandBuffer 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

Bool32, CommandBuffer

cmdSetStencilOpEXT Source #

Arguments

:: forall io. MonadIO io 
=> CommandBuffer

commandBuffer is the command buffer into which the command will be recorded.

-> ("faceMask" ::: StencilFaceFlags)

faceMask is a bitmask of VkStencilFaceFlagBits specifying the set of stencil state for which to update the stencil operation.

-> ("failOp" ::: StencilOp)

failOp is a StencilOp value specifying the action performed on samples that fail the stencil test.

-> ("passOp" ::: StencilOp)

passOp is a StencilOp value specifying the action performed on samples that pass both the depth and stencil tests.

-> ("depthFailOp" ::: StencilOp)

depthFailOp is a StencilOp value specifying the action performed on samples that pass the stencil test and fail the depth test.

-> CompareOp

compareOp is a CompareOp value specifying the comparison operator used in the stencil test.

-> 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

Valid Usage (Implicit)

Host Synchronization

  • Host access to commandBuffer must be externally synchronized
  • Host access to the CommandPool that commandBuffer 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

CommandBuffer, CompareOp, StencilFaceFlags, StencilOp

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

Bool32, StructureType

Instances

Instances details
Eq PhysicalDeviceExtendedDynamicStateFeaturesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_extended_dynamic_state

Show PhysicalDeviceExtendedDynamicStateFeaturesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_extended_dynamic_state

Storable PhysicalDeviceExtendedDynamicStateFeaturesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_extended_dynamic_state

FromCStruct PhysicalDeviceExtendedDynamicStateFeaturesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_extended_dynamic_state

ToCStruct PhysicalDeviceExtendedDynamicStateFeaturesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_extended_dynamic_state

Zero PhysicalDeviceExtendedDynamicStateFeaturesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_extended_dynamic_state

type EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME = "VK_EXT_extended_dynamic_state" Source #