Function Prototype

vkCmdSetViewportWScalingNV

Set the viewport W scaling dynamically for a command buffer
primary / secondary
both
graphics
state

To dynamically set the viewport W scaling parameters, call:

void vkCmdSetViewportWScalingNV(
    VkCommandBuffer commandBuffer,
    uint32_t firstViewport,
    uint32_t viewportCount,
    const VkViewportWScalingNV* pViewportWScalings);
  • commandBuffer is the command buffer into which the command will be recorded.
  • firstViewport is the index of the first viewport whose parameters are updated by the command.
  • viewportCount is the number of viewports whose parameters are updated by the command.
  • pViewportWScalings is a pointer to an array of VkViewportWScalingNV structures specifying viewport parameters.

The viewport parameters taken from element i of pViewportWScalings replace the current state for the viewport index firstViewport + i, for i in [0, viewportCount).

This command sets the viewport W scaling for subsequent drawing commands when drawing using shader objects, or when the graphics pipeline is created with VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV set in VkPipelineDynamicStateCreateInfo::pDynamicStates. Otherwise, this state is specified by the VkPipelineViewportWScalingStateCreateInfoNV::pViewportWScalings values used to create the currently active pipeline.

Valid Usage

VUID-vkCmdSetViewportWScalingNV-firstViewport-01324

The sum of firstViewport and viewportCount must be between 1 and VkPhysicalDeviceLimits::maxViewports, inclusive

Valid Usage (Implicit)

VUID-vkCmdSetViewportWScalingNV-pViewportWScalings-parameter

pViewportWScalings must be a valid pointer to an array of viewportCount VkViewportWScalingNV structures

VUID-vkCmdSetViewportWScalingNV-commandBuffer-cmdpool

The VkCommandPool that commandBuffer was allocated from must support graphics operations

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