// Copyright 2020-2021 The Khronos Group Inc.
//
// SPDX-License-Identifier: CC-BY-4.0

// Common Valid Usage
// Common to VkImageCopy* struct
ifndef::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]
  * [[VUID-{refpage}-aspectMask-00137]]
    The pname:aspectMask member of pname:srcSubresource and
    pname:dstSubresource must: match
endif::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]
ifndef::VK_VERSION_1_1,VK_KHR_maintenance1[]
  * [[VUID-{refpage}-layerCount-00138]]
    The pname:layerCount member of pname:srcSubresource and
    pname:dstSubresource must: match
endif::VK_VERSION_1_1,VK_KHR_maintenance1[]
ifdef::VK_VERSION_1_1,VK_KHR_maintenance1[]
  * [[VUID-{refpage}-extent-00140]]
    The number of slices of the pname:extent (for 3D) or layers of the
    pname:srcSubresource (for non-3D) must: match the number of slices of
    the pname:extent (for 3D) or layers of the pname:dstSubresource (for
    non-3D)
endif::VK_VERSION_1_1,VK_KHR_maintenance1[]
// Common Valid Usage
