summaryrefslogtreecommitdiff
path: root/chapters/commonvalidity/copy_bufferimage_to_imagebuffer_common.adoc
blob: b5899917da9771c5d9c18bb00fe1b8eb0e7dfa18 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
// Copyright 2020-2024 The Khronos Group Inc.
//
// SPDX-License-Identifier: CC-BY-4.0

// Common Valid Usage
// Common to commands copying from images to buffers, or buffers to images
// This relies on the following additional attributes set by the command which
// includes this file:
//
//  - {imageparam}, specifying the name of the source or destination image,
//  - {imagesubresource} specifying the field in pRegions corresponding to
//    {imageparam},
//  - {imageoffset} and {imageextents} specifying the fields in pRegions
//    corresponding to the offset and extent of the copy.

  * [[VUID-{refpage}-{imageparam}-07979]]
    If pname:{imageparam} is of type ename:VK_IMAGE_TYPE_1D, then for each
    element of pname:pRegions, pname:{imageoffset}.y must: be `0` and
    pname:{imageextent}.height must: be `1`
  * [[VUID-{refpage}-{imageoffset}-09104]]
    For each element of pname:pRegions, pname:{imageoffset}.z and
    [eq]#(pname:{imageextent}.depth {plus} pname:{imageoffset}.z)# must:
    both be greater than or equal to `0` and less than or equal to the depth
    of the specified pname:{imagesubresource} of pname:{imageparam}
  * [[VUID-{refpage}-{imageparam}-07980]]
    If pname:{imageparam} is of type ename:VK_IMAGE_TYPE_1D or
    ename:VK_IMAGE_TYPE_2D, then for each element of pname:pRegions,
    pname:{imageoffset}.z must: be `0` and pname:{imageextent}.depth must:
    be `1`
  * [[VUID-{refpage}-{imageparam}-07274]]
    For each element of pname:pRegions, pname:{imageoffset}.x must: be a
    multiple of the <<formats-compatibility-classes,texel block extent
    width>> of the elink:VkFormat of pname:{imageparam}
  * [[VUID-{refpage}-{imageparam}-07275]]
    For each element of pname:pRegions, pname:{imageoffset}.y must: be a
    multiple of the <<formats-compatibility-classes,texel block extent
    height>> of the elink:VkFormat of pname:{imageparam}
  * [[VUID-{refpage}-{imageparam}-07276]]
    For each element of pname:pRegions, pname:{imageoffset}.z must: be a
    multiple of the <<formats-compatibility-classes,texel block extent
    depth>> of the elink:VkFormat of pname:{imageparam}
  * [[VUID-{refpage}-{imageparam}-00207]]
    For each element of pname:pRegions, if the sum of pname:{imageoffset}.x
    and pname:extent.width does not equal the width of the subresource
    specified by pname:srcSubresource, pname:extent.width must: be a
    multiple of the <<formats-compatibility-classes,texel block extent
    width>> of the elink:VkFormat of pname:{imageparam}
  * [[VUID-{refpage}-{imageparam}-00208]]
    For each element of pname:pRegions, if the sum of pname:{imageoffset}.y
    and pname:extent.height does not equal the height of the subresource
    specified by pname:srcSubresource, pname:extent.height must: be a
    multiple of the <<formats-compatibility-classes,texel block extent
    height>> of the elink:VkFormat of pname:{imageparam}
  * [[VUID-{refpage}-{imageparam}-00209]]
    For each element of pname:pRegions, if the sum of pname:{imageoffset}.z
    and pname:extent.depth does not equal the depth of the subresource
    specified by pname:srcSubresource, pname:extent.depth must: be a
    multiple of the <<formats-compatibility-classes,texel block extent
    depth>> of the elink:VkFormat of pname:{imageparam}
  * [[VUID-{refpage}-{imagesubresource}-09105]]
    For each element of pname:pRegions, pname:{imagesubresource}.aspectMask
    must: specify aspects present in pname:{imageparam}
ifdef::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]
  * [[VUID-{refpage}-{imageparam}-07981]]
    If pname:{imageparam} has a
    <<formats-requiring-sampler-ycbcr-conversion, multi-planar image
    format>>, then for each element of pname:pRegions,
    pname:{imagesubresource}.aspectMask must: be a single valid
    <<formats-planes-image-aspect,multi-planar aspect mask>> bit
endif::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]
  * [[VUID-{refpage}-{imageparam}-07983]]
    If pname:{imageparam} is of type ename:VK_IMAGE_TYPE_3D, for each
    element of pname:pRegions, pname:{imagesubresource}.baseArrayLayer must:
    be `0` and pname:{imagesubresource}.layerCount must: be `1`
// Common Valid Usage