// Common Valid Usage // Common to all dispatch and drawing commands * [[VUID-{refpage}-None-02690]] If a sname:VkImageView is sampled with ename:VK_FILTER_LINEAR as a result of this command, then the image view's <> must: contain ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT * [[VUID-{refpage}-None-02691]] If a sname:VkImageView is accessed using atomic operations as a result of this command, then the image view's <> must: contain ename:VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT ifdef::VK_IMG_filter_cubic,VK_EXT_filter_cubic[] * [[VUID-{refpage}-None-02692]] If a sname:VkImageView is sampled with ename:VK_FILTER_CUBIC_EXT as a result of this command, then the image view's <> must: contain ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT ifndef::VK_EXT_filter_cubic[] * [[VUID-{refpage}-None-02693]] Any slink:VkImageView being sampled with ename:VK_FILTER_CUBIC_EXT as a result of this command must: not have a elink:VkImageViewType of ename:VK_IMAGE_VIEW_TYPE_3D, ename:VK_IMAGE_VIEW_TYPE_CUBE, or ename:VK_IMAGE_VIEW_TYPE_CUBE_ARRAY endif::VK_EXT_filter_cubic[] ifdef::VK_EXT_filter_cubic[] * [[VUID-{refpage}-filterCubic-02694]] Any slink:VkImageView being sampled with ename:VK_FILTER_CUBIC_EXT as a result of this command must: have a elink:VkImageViewType and format that supports cubic filtering, as specified by sname:VkFilterCubicImageViewImageFormatPropertiesEXT::pname:filterCubic returned by fname:vkGetPhysicalDeviceImageFormatProperties2 * [[VUID-{refpage}-filterCubicMinmax-02695]] Any slink:VkImageView being sampled with ename:VK_FILTER_CUBIC_EXT with a reduction mode of either ename:VK_SAMPLER_REDUCTION_MODE_MIN_EXT or ename:VK_SAMPLER_REDUCTION_MODE_MAX_EXT as a result of this command must: have a elink:VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by sname:VkFilterCubicImageViewImageFormatPropertiesEXT::pname:filterCubicMinmax returned by fname:vkGetPhysicalDeviceImageFormatProperties2 endif::VK_EXT_filter_cubic[] endif::VK_IMG_filter_cubic,VK_EXT_filter_cubic[] ifdef::VK_NV_corner_sampled_image[] * [[VUID-{refpage}-flags-02696]] Any slink:VkImage created with a slink:VkImageCreateInfo::pname:flags containing ename:VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must: only be sampled using a elink:VkSamplerAddressMode of ename:VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE. endif::VK_NV_corner_sampled_image[] * [[VUID-{refpage}-None-02697]] For each set _n_ that is statically used by the sname:VkPipeline bound to the pipeline bind point used by this command, a descriptor set must: have been bound to _n_ at the same pipeline bind point, with a sname:VkPipelineLayout that is compatible for set _n_, with the sname:VkPipelineLayout used to create the current sname:VkPipeline, as described in <> * [[VUID-{refpage}-None-02698]] For each push constant that is statically used by the sname:VkPipeline bound to the pipeline bind point used by this command, a push constant value must: have been set for the same pipeline bind point, with a sname:VkPipelineLayout that is compatible for push constants, with the sname:VkPipelineLayout used to create the current sname:VkPipeline, as described in <> * [[VUID-{refpage}-None-02699]] Descriptors in each bound descriptor set, specified via fname:vkCmdBindDescriptorSets, must: be valid if they are statically used by the sname:VkPipeline bound to the pipeline bind point used by this command * [[VUID-{refpage}-None-02700]] A valid pipeline must: be bound to the pipeline bind point used by this command * [[VUID-{refpage}-commandBuffer-02701]] If the sname:VkPipeline object bound to the pipeline bind point used by this command requires any dynamic state, that state must: have been set for pname:commandBuffer * [[VUID-{refpage}-None-02702]] If the sname:VkPipeline object bound to the pipeline bind point used by this command accesses a sname:VkSampler object that uses unnormalized coordinates, that sampler must: not be used to sample from any sname:VkImage with a sname:VkImageView of the type ename:VK_IMAGE_VIEW_TYPE_3D, ename:VK_IMAGE_VIEW_TYPE_CUBE, ename:VK_IMAGE_VIEW_TYPE_1D_ARRAY, ename:VK_IMAGE_VIEW_TYPE_2D_ARRAY or ename:VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage * [[VUID-{refpage}-None-02703]] If the sname:VkPipeline object bound to the pipeline bind point used by this command accesses a sname:VkSampler object that uses unnormalized coordinates, that sampler must: not be used with any of the SPIR-V `OpImageSample*` or `OpImageSparseSample*` instructions with code:ImplicitLod, code:Dref or code:Proj in their name, in any shader stage * [[VUID-{refpage}-None-02704]] If the sname:VkPipeline object bound to the pipeline bind point used by this command accesses a sname:VkSampler object that uses unnormalized coordinates, that sampler must: not be used with any of the SPIR-V `OpImageSample*` or `OpImageSparseSample*` instructions that includes a LOD bias or any offset values, in any shader stage * [[VUID-{refpage}-None-02705]] If the <> feature is not enabled, and if the sname:VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, it must: not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point * [[VUID-{refpage}-None-02706]] If the <> feature is not enabled, and if the sname:VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, it must: not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point ifdef::VK_VERSION_1_1[] * [[VUID-{refpage}-commandBuffer-02707]] If pname:commandBuffer is an unprotected command buffer, any resource accessed by the sname:VkPipeline object bound to the pipeline bind point used by this command must: not be a protected resource endif::VK_VERSION_1_1[] // Common Valid Usage