Function Prototype

vkCmdSetDepthClampRangeEXT

Set the viewport depth clamp range dynamically for a command buffer
primary / secondary
both
graphics
state

To dynamically set the viewport depth clamp range parameters, call:

void vkCmdSetDepthClampRangeEXT(
    VkCommandBuffer commandBuffer,
    VkDepthClampModeEXT depthClampMode,
    const VkDepthClampRangeEXT* pDepthClampRange);
  • commandBuffer is the command buffer into which the command will be recorded.
  • depthClampMode determines how the clamp range is determined for each viewport.
  • pDepthClampRange sets the depth clamp range for all viewports if depthClampMode is VK_DEPTH_CLAMP_MODE_USER_DEFINED_RANGE_EXT.

This command sets the viewport depth clamp range for subsequent drawing commands when drawing using shader objects, or when the graphics pipeline is created with VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT set in VkPipelineDynamicStateCreateInfo::pDynamicStates. Otherwise, this state is specified by the VkPipelineViewportDepthClampControlCreateInfoEXT::depthClampMode value used to create the currently active pipeline.

Valid Usage

VUID-vkCmdSetDepthClampRangeEXT-pDepthClampRange-09647

If depthClampMode is VK_DEPTH_CLAMP_MODE_USER_DEFINED_RANGE_EXT, then pDepthClampRange must be a valid pointer to a valid VkDepthClampRangeEXT structure

Valid Usage (Implicit)

VUID-vkCmdSetDepthClampRangeEXT-pDepthClampRange-parameter

If pDepthClampRange is not NULL, pDepthClampRange must be a valid pointer to a valid VkDepthClampRangeEXT structure

VUID-vkCmdSetDepthClampRangeEXT-commandBuffer-cmdpool

The VkCommandPool that commandBuffer was allocated from must support graphics operations

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