C Specification

For a given primitive topology, the pipeline’s provoking vertex mode determines which vertex is the provoking vertex. To specify the provoking vertex mode, include a VkPipelineRasterizationProvokingVertexStateCreateInfoEXT structure in the VkPipelineRasterizationStateCreateInfo::pNext chain when creating the pipeline.

The VkPipelineRasterizationProvokingVertexStateCreateInfoEXT structure is defined as:

// Provided by VK_EXT_provoking_vertex
typedef struct VkPipelineRasterizationProvokingVertexStateCreateInfoEXT {
    VkStructureType             sType;
    const void*                 pNext;
    VkProvokingVertexModeEXT    provokingVertexMode;
} VkPipelineRasterizationProvokingVertexStateCreateInfoEXT;


  • sType is a VkStructureType value identifying this structure.

  • pNext is NULL or a pointer to a structure extending this structure.

  • provokingVertexMode is a VkProvokingVertexModeEXT value selecting the provoking vertex mode.


If this struct is not provided when creating the pipeline, the pipeline will use the VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT mode.

If the provokingVertexModePerPipeline limit is VK_FALSE, then all pipelines bound within a render pass instance must have the same provokingVertexMode.

Valid Usage
  • VUID-VkPipelineRasterizationProvokingVertexStateCreateInfoEXT-provokingVertexMode-04883
    If provokingVertexMode is VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT, then the provokingVertexLast feature must be enabled

Valid Usage (Implicit)
  • VUID-VkPipelineRasterizationProvokingVertexStateCreateInfoEXT-sType-sType

  • VUID-VkPipelineRasterizationProvokingVertexStateCreateInfoEXT-provokingVertexMode-parameter
    provokingVertexMode must be a valid VkProvokingVertexModeEXT value

See Also

Document Notes

For more information, see the Vulkan Specification

This page is extracted from the Vulkan Specification. Fixes and changes should be made to the Specification, not directly.

Copyright 2014-2024 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0