Function Prototype

vkCmdSetPatchControlPointsEXT

Specify the number of control points per patch dynamically for a command buffer
primary / secondary
both
graphics
state

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

void vkCmdSetPatchControlPointsEXT(
    VkCommandBuffer commandBuffer,
    uint32_t patchControlPoints);
  • commandBuffer is the command buffer into which the command will be recorded.
  • patchControlPoints specifies the number of control points per patch.

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

VUID-vkCmdSetPatchControlPointsEXT-None-09422

At least one of the following must be true:

VUID-vkCmdSetPatchControlPointsEXT-patchControlPoints-04874

patchControlPoints must be greater than zero and less than or equal to VkPhysicalDeviceLimits::maxTessellationPatchSize

Valid Usage (Implicit)

VUID-vkCmdSetPatchControlPointsEXT-commandBuffer-cmdpool

The VkCommandPool that commandBuffer was allocated from must support graphics operations

VUID-vkCmdSetPatchControlPointsEXT-videocoding

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