VkPipelineRasterizationStateCreateInfo
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;
sTypeis a VkStructureType value identifying this structure.pNextisNULLor a pointer to a structure extending this structure.flagsis reserved for future use.depthClampEnablecontrols 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.rasterizerDiscardEnablecontrols whether primitives are discarded immediately before the rasterization stage.polygonModeis the triangle rendering mode. See VkPolygonMode.cullModeis the triangle facing direction used for primitive culling. See VkCullModeFlagBits.frontFaceis a VkFrontFace value specifying the front-facing triangle orientation to be used for culling.depthBiasEnablecontrols whether to bias fragment depth values.depthBiasConstantFactoris a scalar factor controlling the constant depth value added to each fragment.depthBiasClampis the maximum (or minimum) depth bias of a fragment.depthBiasSlopeFactoris a scalar factor applied to a fragment’s slope in depth bias calculations.lineWidthis 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
Valid Usage (Implicit)
VUID-VkPipelineRasterizationStateCreateInfo-sType-sType
sType must be VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO
VUID-VkPipelineRasterizationStateCreateInfo-pNext-pNext
Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkDepthBiasRepresentationInfoEXT, VkPipelineRasterizationConservativeStateCreateInfoEXT, VkPipelineRasterizationDepthClipStateCreateInfoEXT, VkPipelineRasterizationLineStateCreateInfo, VkPipelineRasterizationProvokingVertexStateCreateInfoEXT, VkPipelineRasterizationStateRasterizationOrderAMD, or VkPipelineRasterizationStateStreamCreateInfoEXT
VUID-VkPipelineRasterizationStateCreateInfo-sType-unique
The sType value of each structure in the pNext chain must be unique
VUID-VkPipelineRasterizationStateCreateInfo-polygonMode-parameter
polygonMode must be a valid VkPolygonMode value
VUID-VkPipelineRasterizationStateCreateInfo-cullMode-parameter
cullMode must be a valid combination of VkCullModeFlagBits values
VUID-VkPipelineRasterizationStateCreateInfo-frontFace-parameter
frontFace must be a valid VkFrontFace value