// Copyright 2023-2024 The Khronos Group Inc.
//
// SPDX-License-Identifier: CC-BY-4.0

// Common Valid Usage
// Common to vk*Copy* commands that have image as source and/or destination.
// This relies on an additional attribute {imageparam} set by the command
// which includes this file, specifying the name of the source or
// destination image.
// Additionally, it relies on the {imagesubresource} attribute to specify the
// field in pRegions corresponding to {imageparam}

ifndef::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]
  * [[VUID-{refpage}-{imageparam}-97965]]
    If pname:{imageparam} is non-sparse then it must: be bound completely
    and contiguously to a single sname:VkDeviceMemory object
endif::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]
ifdef::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]
  * [[VUID-{refpage}-{imageparam}-97966]]
    If pname:{imageparam} is non-sparse then the image or the specified
    _disjoint_ plane must: be bound completely and contiguously to a single
    sname:VkDeviceMemory object
endif::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]
  * [[VUID-{refpage}-{imagesubresource}-97967]]
    The pname:{imagesubresource}.mipLevel member of each element of
    pname:pRegions must: be less than the pname:mipLevels specified in
    slink:VkImageCreateInfo when pname:{imageparam} was created
  * [[VUID-{refpage}-{imagesubresource}-97968]]
    The [eq]#pname:{imagesubresource}.baseArrayLayer {plus}
    pname:{imageSubresource}.layerCount# of each element of pname:pRegions
ifdef::VK_KHR_maintenance5[]
    , if pname:{imageSubresource}.layerCount is not
    ename:VK_REMAINING_ARRAY_LAYERS and <<features-maintenance5,
    pname:maintenance5>> is not enabled,
endif::VK_KHR_maintenance5[]
    must: be less than or equal to the pname:arrayLayers specified in
    slink:VkImageCreateInfo when pname:{imageparam} was created
ifdef::VK_EXT_fragment_density_map[]
  * [[VUID-{refpage}-{imageparam}-97969]]
    pname:{imageparam} must: not have been created with pname:flags
    containing ename:VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT
endif::VK_EXT_fragment_density_map[]
// Common Valid Usage
