C Specification

When shading rate image usage is enabled in the bound pipeline, the pipeline uses a shading rate image specified by the command:

// Provided by VK_NV_shading_rate_image
void vkCmdBindShadingRateImageNV(
    VkCommandBuffer                             commandBuffer,
    VkImageView                                 imageView,
    VkImageLayout                               imageLayout);


  • commandBuffer is the command buffer into which the command will be recorded.

  • imageView is an image view handle specifying the shading rate image. imageView may be set to VK_NULL_HANDLE, which is equivalent to specifying a view of an image filled with zero values.

  • imageLayout is the layout that the image subresources accessible from imageView will be in when the shading rate image is accessed.


Valid Usage
  • VUID-vkCmdBindShadingRateImageNV-None-02058
    The shadingRateImage feature must be enabled

  • VUID-vkCmdBindShadingRateImageNV-imageView-02059
    If imageView is not VK_NULL_HANDLE, it must be a valid VkImageView handle of type VK_IMAGE_VIEW_TYPE_2D or VK_IMAGE_VIEW_TYPE_2D_ARRAY

  • VUID-vkCmdBindShadingRateImageNV-imageView-02060
    If imageView is not VK_NULL_HANDLE, it must have a format of VK_FORMAT_R8_UINT

  • VUID-vkCmdBindShadingRateImageNV-imageView-02061
    If imageView is not VK_NULL_HANDLE, it must have been created with a usage value including VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV

  • VUID-vkCmdBindShadingRateImageNV-imageView-02062
    If imageView is not VK_NULL_HANDLE, imageLayout must match the actual VkImageLayout of each subresource accessible from imageView at the time the subresource is accessed

  • VUID-vkCmdBindShadingRateImageNV-imageLayout-02063

Valid Usage (Implicit)
  • VUID-vkCmdBindShadingRateImageNV-commandBuffer-parameter
    commandBuffer must be a valid VkCommandBuffer handle

  • VUID-vkCmdBindShadingRateImageNV-imageView-parameter
    If imageView is not VK_NULL_HANDLE, imageView must be a valid VkImageView handle

  • VUID-vkCmdBindShadingRateImageNV-imageLayout-parameter
    imageLayout must be a valid VkImageLayout value

  • VUID-vkCmdBindShadingRateImageNV-commandBuffer-recording
    commandBuffer must be in the recording state

  • VUID-vkCmdBindShadingRateImageNV-commandBuffer-cmdpool
    The VkCommandPool that commandBuffer was allocated from must support graphics operations

  • VUID-vkCmdBindShadingRateImageNV-videocoding
    This command must only be called outside of a video coding scope

  • VUID-vkCmdBindShadingRateImageNV-commonparent
    Both of commandBuffer, and imageView that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice

Host Synchronization
  • Host access to commandBuffer must be externally synchronized

  • Host access to the VkCommandPool that commandBuffer was allocated from must be externally synchronized

Command Properties
Command Buffer Levels Render Pass Scope Video Coding Scope Supported Queue Types





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 2014-2022 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0