Top Description Fields Constructors Methods
org.lwjgl.vulkan

public Class EXTExtendedDynamicState2

extends Object
Class Inheritance
Imports
org.lwjgl.system.*

This extension adds some more dynamic state to support applications that need to reduce the number of pipeline state objects they compile and bind.
Promotion to Vulkan 1.3

This extension has been partially promoted. The dynamic state enumerants DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT, DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT, and DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT; and the corresponding entry points in this extension are included in core Vulkan 1.3, with the EXT suffix omitted. The enumerants and entry points for dynamic logic operation and patch control points are not promoted, nor is the feature structure. Extension interfaces that were promoted remain available as aliases of the core functionality.

VK_EXT_extended_dynamic_state2
Name String
VK_EXT_extended_dynamic_state2
Extension Type
Device extension
Registered Extension Number
378
Revision
1
Extension and Version Dependencies
VK_KHR_get_physical_device_properties2 or Version 1.1
Deprecation state
Contact
Other Extension Metadata
Last Modified Date
2021-04-12
Interactions and External Dependencies
  • Promoted to Vulkan 1.3 Core
IP Status
No known IP claims.
Contributors
  • Vikram Kushwaha, NVIDIA
  • Piers Daniell, NVIDIA
  • Jeff Bolz, NVIDIA

Field Summary

Modifier and TypeField and Description
public static final int
public static final int
VK_DYNAMIC_STATE_LOGIC_OP_EXT

Extends VkDynamicState.

public static final int
public static final int
public static final int
public static final String
public static final int
VK_EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION

The extension specification version.

public static final int

Constructor Summary

AccessConstructor and Description
protected

Method Summary

Modifier and TypeMethod and Description
public static void
vkCmdSetDepthBiasEnableEXT(VkCommandBuffer
the command buffer into which the command will be recorded.
commandBuffer
,
boolean
controls whether to bias fragment depth values.
depthBiasEnable
)

See CmdSetDepthBiasEnable.

public static void
vkCmdSetLogicOpEXT(VkCommandBuffer
the command buffer into which the command will be recorded.
commandBuffer
,
int
specifies the logical operation to apply for blend state.
logicOp
)

Select which logical operation to apply for blend state dynamically for a command buffer.

public static void
vkCmdSetPatchControlPointsEXT(VkCommandBuffer
the command buffer into which the command will be recorded.
commandBuffer
,
int
specifies the number of control points per patch.
patchControlPoints
)

Specify the number of control points per patch dynamically for a command buffer.

public static void
vkCmdSetPrimitiveRestartEnableEXT(VkCommandBuffer
the command buffer into which the command will be recorded.
commandBuffer
,
boolean
controls whether a special vertex index value is treated as restarting the assembly of primitives. It behaves in the same way as VkPipelineInputAssemblyStateCreateInfo::primitiveRestartEnable
primitiveRestartEnable
)

See CmdSetPrimitiveRestartEnable.

public static void
vkCmdSetRasterizerDiscardEnableEXT(VkCommandBuffer
the command buffer into which the command will be recorded.
commandBuffer
,
boolean
controls whether primitives are discarded immediately before the rasterization stage.
rasterizerDiscardEnable
)

See CmdSetRasterizerDiscardEnable.

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXTback to summary
public static final int VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT

Extends VkDynamicState.

Enum values:
VK_DYNAMIC_STATE_LOGIC_OP_EXTback to summary
public static final int VK_DYNAMIC_STATE_LOGIC_OP_EXT

Extends VkDynamicState.

Enum values:
VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXTback to summary
public static final int VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT

Extends VkDynamicState.

Enum values:
VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXTback to summary
public static final int VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT

Extends VkDynamicState.

Enum values:
VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXTback to summary
public static final int VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT

Extends VkDynamicState.

Enum values:
VK_EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAMEback to summary
public static final String VK_EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME

The extension name.

VK_EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSIONback to summary
public static final int VK_EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION

The extension specification version.

VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXTback to summary
public static final int VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT

Extends VkStructureType.

Constructor Detail

EXTExtendedDynamicState2back to summary
protected EXTExtendedDynamicState2()

Method Detail

vkCmdSetDepthBiasEnableEXTback to summary
public static void vkCmdSetDepthBiasEnableEXT(VkCommandBuffer commandBuffer, boolean depthBiasEnable)

See CmdSetDepthBiasEnable.

Parameters
commandBuffer:VkCommandBuffer

the command buffer into which the command will be recorded.

depthBiasEnable:boolean

controls whether to bias fragment depth values.

vkCmdSetLogicOpEXTback to summary
public static void vkCmdSetLogicOpEXT(VkCommandBuffer commandBuffer, int logicOp)

Select which logical operation to apply for blend state dynamically for a command buffer.

C Specification

To dynamically set the logical operation to apply for blend state, call:


void vkCmdSetLogicOpEXT(
    VkCommandBuffer                             commandBuffer,
    VkLogicOp                                   logicOp);
Description

This command sets the logical operation for blend state for subsequent drawing commands when drawing using shader objects, or when the graphics pipeline is created with DYNAMIC_STATE_LOGIC_OP_EXT set in VkPipelineDynamicStateCreateInfo::pDynamicStates. Otherwise, this state is specified by the VkPipelineColorBlendStateCreateInfo::logicOp value used to create the currently active pipeline.

Valid Usage
Valid Usage (Implicit)
  • commandBuffer must be a valid VkCommandBuffer handle
  • logicOp must be a valid VkLogicOp value
  • commandBuffer must be in the recording state
  • The VkCommandPool that commandBuffer was allocated from must support graphics operations
  • This command must only be called outside of a video coding scope
Host Synchronization
  • Host access to commandBuffer must be externally synchronized
  • Host access to the VkCommandPool that commandBuffer was allocated from must be externally synchronized
Command Properties
Command Buffer LevelsRender Pass ScopeVideo Coding ScopeSupported Queue TypesCommand Type
Primary SecondaryBothOutsideGraphicsState
Parameters
commandBuffer:VkCommandBuffer

the command buffer into which the command will be recorded.

logicOp:int

specifies the logical operation to apply for blend state.

vkCmdSetPatchControlPointsEXTback to summary
public static void vkCmdSetPatchControlPointsEXT(VkCommandBuffer commandBuffer, int patchControlPoints)

Specify the number of control points per patch dynamically for a command buffer.

C Specification

To dynamically set the number of control points per patch, call:


void vkCmdSetPatchControlPointsEXT(
    VkCommandBuffer                             commandBuffer,
    uint32_t                                    patchControlPoints);
Description

This command sets the number of control points per patch for subsequent drawing commands when drawing using shader objects, or when the graphics pipeline is created with DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT set in VkPipelineDynamicStateCreateInfo::pDynamicStates. Otherwise, this state is specified by the VkPipelineTessellationStateCreateInfo::patchControlPoints value used to create the currently active pipeline.

Valid Usage
Valid Usage (Implicit)
  • commandBuffer must be a valid VkCommandBuffer handle
  • commandBuffer must be in the recording state
  • The VkCommandPool that commandBuffer was allocated from must support graphics operations
  • This command must only be called outside of a video coding scope
Host Synchronization
  • Host access to commandBuffer must be externally synchronized
  • Host access to the VkCommandPool that commandBuffer was allocated from must be externally synchronized
Command Properties
Command Buffer LevelsRender Pass ScopeVideo Coding ScopeSupported Queue TypesCommand Type
Primary SecondaryBothOutsideGraphicsState
Parameters
commandBuffer:VkCommandBuffer

the command buffer into which the command will be recorded.

patchControlPoints:int

specifies the number of control points per patch.

vkCmdSetPrimitiveRestartEnableEXTback to summary
public static void vkCmdSetPrimitiveRestartEnableEXT(VkCommandBuffer commandBuffer, boolean primitiveRestartEnable)

See CmdSetPrimitiveRestartEnable.

Parameters
commandBuffer:VkCommandBuffer

the command buffer into which the command will be recorded.

primitiveRestartEnable:boolean

controls whether a special vertex index value is treated as restarting the assembly of primitives. It behaves in the same way as VkPipelineInputAssemblyStateCreateInfo::primitiveRestartEnable

vkCmdSetRasterizerDiscardEnableEXTback to summary
public static void vkCmdSetRasterizerDiscardEnableEXT(VkCommandBuffer commandBuffer, boolean rasterizerDiscardEnable)

See CmdSetRasterizerDiscardEnable.

Parameters
commandBuffer:VkCommandBuffer

the command buffer into which the command will be recorded.

rasterizerDiscardEnable:boolean

controls whether primitives are discarded immediately before the rasterization stage.