Function Prototype

vkCmdSetFragmentShadingRateKHR

Set pipeline fragment shading rate and combiner operation dynamically for a command buffer
primary / secondary
both
graphics
state

To dynamically set the pipeline fragment shading rate and combiner operation, call:

void vkCmdSetFragmentShadingRateKHR(
    VkCommandBuffer           commandBuffer,
    const VkExtent2D*                           pFragmentSize,
    const VkFragmentShadingRateCombinerOpKHR    combinerOps[2]);

This command sets the pipeline fragment shading rate and combiner operation for subsequent drawing commands when drawing using shader objects, or when the graphics pipeline is created with VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR set in VkPipelineDynamicStateCreateInfo::pDynamicStates. Otherwise, this state is specified by the VkPipelineFragmentShadingRateStateCreateInfoKHR values used to create the currently active pipeline.

Valid Usage

VUID-vkCmdSetFragmentShadingRateKHR-primitiveFragmentShadingRate-04510

If the primitiveFragmentShadingRate feature is not enabled, combinerOps[0] must be VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR

VUID-vkCmdSetFragmentShadingRateKHR-attachmentFragmentShadingRate-04511

If the attachmentFragmentShadingRate feature is not enabled, combinerOps[1] must be VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR

VUID-vkCmdSetFragmentShadingRateKHR-fragmentSizeNonTrivialCombinerOps-04512

If the fragmentSizeNonTrivialCombinerOps limit is not supported, elements of combinerOps must be either VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR or VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR

VUID-vkCmdSetFragmentShadingRateKHR-pFragmentSize-04513

pFragmentSize→width must be greater than or equal to 1

VUID-vkCmdSetFragmentShadingRateKHR-pFragmentSize-04514

pFragmentSize→height must be greater than or equal to 1

VUID-vkCmdSetFragmentShadingRateKHR-pFragmentSize-04515

pFragmentSize→width must be a power-of-two value

VUID-vkCmdSetFragmentShadingRateKHR-pFragmentSize-04516

pFragmentSize→height must be a power-of-two value

VUID-vkCmdSetFragmentShadingRateKHR-pFragmentSize-04517

pFragmentSize→width must be less than or equal to 4

VUID-vkCmdSetFragmentShadingRateKHR-pFragmentSize-04518

pFragmentSize→height must be less than or equal to 4

Valid Usage (Implicit)

VUID-vkCmdSetFragmentShadingRateKHR-pFragmentSize-parameter

pFragmentSize must be a valid pointer to a valid VkExtent2D structure

VUID-vkCmdSetFragmentShadingRateKHR-commandBuffer-cmdpool

The VkCommandPool that commandBuffer was allocated from must support graphics operations

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