Structures

VkPipelineRasterizationStateCreateInfo

Structure specifying parameters of a newly created pipeline rasterization state

The VkPipelineRasterizationStateCreateInfo structure is defined as:

typedef struct VkPipelineRasterizationStateCreateInfo {
    VkStructureType sType;
    const void* pNext;
    VkPipelineRasterizationStateCreateFlags flags;
    VkBool32 depthClampEnable;
    VkBool32 rasterizerDiscardEnable;
    VkPolygonMode polygonMode;
    VkCullModeFlags cullMode;
    VkFrontFace frontFace;
    VkBool32 depthBiasEnable;
    float depthBiasConstantFactor;
    float depthBiasClamp;
    float depthBiasSlopeFactor;
    float lineWidth;
} VkPipelineRasterizationStateCreateInfo;
  • sType is a VkStructureType value identifying this structure.
  • pNext is NULL or a pointer to a structure extending this structure.
  • flags is reserved for future use.
  • depthClampEnable controls whether to clamp the fragment’s depth values as described in Depth Test. If the pipeline is not created with VkPipelineRasterizationDepthClipStateCreateInfoEXT present then enabling depth clamp will also disable clipping primitives to the z planes of the frustum as described in Primitive Clipping. Otherwise depth clipping is controlled by the state set in VkPipelineRasterizationDepthClipStateCreateInfoEXT.
  • rasterizerDiscardEnable controls whether primitives are discarded immediately before the rasterization stage.
  • polygonMode is the triangle rendering mode. See VkPolygonMode.
  • cullMode is the triangle facing direction used for primitive culling. See VkCullModeFlagBits.
  • frontFace is a VkFrontFace value specifying the front-facing triangle orientation to be used for culling.
  • depthBiasEnable controls whether to bias fragment depth values.
  • depthBiasConstantFactor is a scalar factor controlling the constant depth value added to each fragment.
  • depthBiasClamp is the maximum (or minimum) depth bias of a fragment.
  • depthBiasSlopeFactor is a scalar factor applied to a fragment’s slope in depth bias calculations.
  • lineWidth is the width of rasterized line segments.

The application can also add a VkPipelineRasterizationStateRasterizationOrderAMD structure to the pNext chain of a VkPipelineRasterizationStateCreateInfo structure. This structure enables selecting the rasterization order to use when rendering with the corresponding graphics pipeline as described in Rasterization Order.

Valid Usage

VUID-VkPipelineRasterizationStateCreateInfo-depthClampEnable-00782

If the depthClamp feature is not enabled, depthClampEnable must be VK_FALSE

VUID-VkPipelineRasterizationStateCreateInfo-polygonMode-01507

If the [`fillModeNonSolid`](xref::features-fillModeNonSolid) feature is
not enabled, `polygonMode` :normative{type="must"} be `VK_POLYGON_MODE_FILL`

or VK_POLYGON_MODE_FILL_RECTANGLE_NV

VUID-VkPipelineRasterizationStateCreateInfo-polygonMode-01414

If the VK_NV_fill_rectangle extension is not enabled, polygonMode must not be VK_POLYGON_MODE_FILL_RECTANGLE_NV

VUID-VkPipelineRasterizationStateCreateInfo-pointPolygons-04458

If the VK_KHR_portability_subset extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::pointPolygons is VK_FALSE, and rasterizerDiscardEnable is VK_FALSE, polygonMode must not be VK_POLYGON_MODE_POINT