C Specification

The VkPipelineViewportStateCreateInfo structure is defined as:

// Provided by VK_VERSION_1_0
typedef struct VkPipelineViewportStateCreateInfo {
    VkStructureType                       sType;
    const void*                           pNext;
    VkPipelineViewportStateCreateFlags    flags;
    uint32_t                              viewportCount;
    const VkViewport*                     pViewports;
    uint32_t                              scissorCount;
    const VkRect2D*                       pScissors;
} VkPipelineViewportStateCreateInfo;

Members

  • sType is the type of this structure.

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

  • flags is reserved for future use.

  • viewportCount is the number of viewports used by the pipeline.

  • pViewports is a pointer to an array of VkViewport structures, defining the viewport transforms. If the viewport state is dynamic, this member is ignored.

  • scissorCount is the number of scissors and must match the number of viewports.

  • pScissors is a pointer to an array of VkRect2D structures defining the rectangular bounds of the scissor for the corresponding viewport. If the scissor state is dynamic, this member is ignored.

Description

Valid Usage
  • If the multiple viewports feature is not enabled, viewportCount must not be greater than 1

  • If the multiple viewports feature is not enabled, scissorCount must not be greater than 1

  • viewportCount must be less than or equal to VkPhysicalDeviceLimits::maxViewports

  • scissorCount must be less than or equal to VkPhysicalDeviceLimits::maxViewports

  • The x and y members of offset member of any element of pScissors must be greater than or equal to 0

  • Evaluation of (offset.x + extent.width) must not cause a signed integer addition overflow for any element of pScissors

  • Evaluation of (offset.y + extent.height) must not cause a signed integer addition overflow for any element of pScissors

  • If the graphics pipeline is being created without VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT and VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT set then scissorCount and viewportCount must be identical

  • If the graphics pipeline is being created with VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT set then viewportCount must be 0, otherwise it must be greater than 0

  • If the graphics pipeline is being created with VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT set then scissorCount must be 0, otherwise it must be greater than 0

  • If the viewportWScalingEnable member of a VkPipelineViewportWScalingStateCreateInfoNV structure included in the pNext chain is VK_TRUE, the viewportCount member of the VkPipelineViewportWScalingStateCreateInfoNV structure must be greater than or equal to VkPipelineViewportStateCreateInfo::viewportCount

Valid Usage (Implicit)

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 (c) 2014-2020 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0