Function Prototype

vkCmdSetViewportSwizzleNV

Specify the viewport swizzle state dynamically for a command buffer
primary / secondary
both
graphics
state

To dynamically set the viewport swizzle state, call:

void vkCmdSetViewportSwizzleNV(
    VkCommandBuffer commandBuffer,
    uint32_t firstViewport,
    uint32_t viewportCount,
    const VkViewportSwizzleNV* pViewportSwizzles);
  • 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.
  • pViewportSwizzles is a pointer to an array of VkViewportSwizzleNV structures specifying viewport swizzles.

This command sets the viewport swizzle state for subsequent drawing commands when drawing using shader objects, or when the graphics pipeline is created with VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV set in VkPipelineDynamicStateCreateInfo::pDynamicStates. Otherwise, this state is specified by the VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount, and VkPipelineViewportSwizzleStateCreateInfoNV::pViewportSwizzles values used to create the currently active pipeline.

Valid Usage

VUID-vkCmdSetViewportSwizzleNV-None-09423

At least one of the following must be true:

Valid Usage (Implicit)

VUID-vkCmdSetViewportSwizzleNV-pViewportSwizzles-parameter

pViewportSwizzles must be a valid pointer to an array of viewportCount valid VkViewportSwizzleNV structures

VUID-vkCmdSetViewportSwizzleNV-commandBuffer-cmdpool

The VkCommandPool that commandBuffer was allocated from must support graphics operations

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