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

// Common Valid Usage
// Common to VkBufferImageCopy*, VkMemoryToImageCopy* and VkImageToMemoryCopy*
// structs
// This relies on additional attributes {bufferrowlength} and
// {bufferimageheight} set by the command which includes this file, specifying
// the type of the non-image target of the copy (which is either buffer* or
// memory*).

  * [[VUID-{refpage}-{bufferrowlength}-99101]]
    pname:{bufferrowlength} must: be `0`, or greater than or equal to the
    pname:width member of pname:imageExtent
  * [[VUID-{refpage}-{bufferimageheight}-99102]]
    pname:{bufferimageheight} must: be `0`, or greater than or equal to the
    pname:height member of pname:imageExtent
  * [[VUID-{refpage}-aspectMask-99103]]
    The pname:aspectMask member of pname:imageSubresource must: only have a
    single bit set
  * [[VUID-{refpage}-imageExtent-96659]]
    pname:imageExtent.width must: not be 0
  * [[VUID-{refpage}-imageExtent-96660]]
    pname:imageExtent.height must: not be 0
  * [[VUID-{refpage}-imageExtent-96661]]
    pname:imageExtent.depth must: not be 0
// Common Valid Usage
