1{ 2 "version info": { 3 "schema version": 2, 4 "api version": "1.2.3", 5 "comment": "\"test build\"", 6 "date": "\"2100-11-22 00:33:44Z\"" 7 }, 8 "validation": { 9 "vkCmdCopyBufferToImage2": { 10 "core": [ 11 { 12 "vuid": "VUID-vkCmdCopyBufferToImage2-commandBuffer-91828", 13 "text": "If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>srcBuffer</code> <strong class=\"purple\">must</strong> not be a protected buffer", 14 "page": "vkspec" 15 }, 16 { 17 "vuid": "VUID-vkCmdCopyBufferToImage2-commandBuffer-91829", 18 "text": "If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstImage</code> <strong class=\"purple\">must</strong> not be a protected image", 19 "page": "vkspec" 20 }, 21 { 22 "vuid": "VUID-vkCmdCopyBufferToImage2-commandBuffer-91830", 23 "text": "If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstImage</code> <strong class=\"purple\">must</strong> not be an unprotected image", 24 "page": "vkspec" 25 }, 26 { 27 "vuid": "VUID-vkCmdCopyBufferToImage2-commandBuffer-97737", 28 "text": "If the queue family used to create the <a href=\"#VkCommandPool\">VkCommandPool</a> which <code>commandBuffer</code> was allocated from does not support <code>VK_QUEUE_GRAPHICS_BIT</code> or <code>VK_QUEUE_COMPUTE_BIT</code>, the <code>bufferOffset</code> member of any element of <code>pCopyBufferToImageInfo->pRegions</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>", 29 "page": "vkspec" 30 }, 31 { 32 "vuid": "VUID-vkCmdCopyBufferToImage2-imageOffset-97738", 33 "text": "The <code>imageOffset</code> and <code>imageExtent</code> members of each element of <code>pCopyBufferToImageInfo->pRegions</code> <strong class=\"purple\">must</strong> respect the image transfer granularity requirements of <code>commandBuffer</code>’s command pool’s queue family, as described in <a href=\"#VkQueueFamilyProperties\">VkQueueFamilyProperties</a>", 34 "page": "vkspec" 35 }, 36 { 37 "vuid": "VUID-vkCmdCopyBufferToImage2-commandBuffer-97739", 38 "text": "If the queue family used to create the <a href=\"#VkCommandPool\">VkCommandPool</a> which <code>commandBuffer</code> was allocated from does not support <code>VK_QUEUE_GRAPHICS_BIT</code>, for each element of <code>pCopyBufferToImageInfo->pRegions</code>, the <code>aspectMask</code> member of <code>imageSubresource</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> or <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>", 39 "page": "vkspec" 40 }, 41 { 42 "vuid": "VUID-vkCmdCopyBufferToImage2-commandBuffer-parameter", 43 "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle", 44 "page": "vkspec" 45 }, 46 { 47 "vuid": "VUID-vkCmdCopyBufferToImage2-pCopyBufferToImageInfo-parameter", 48 "text": "<code>pCopyBufferToImageInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkCopyBufferToImageInfo2\">VkCopyBufferToImageInfo2</a> structure", 49 "page": "vkspec" 50 }, 51 { 52 "vuid": "VUID-vkCmdCopyBufferToImage2-commandBuffer-recording", 53 "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>", 54 "page": "vkspec" 55 }, 56 { 57 "vuid": "VUID-vkCmdCopyBufferToImage2-commandBuffer-cmdpool", 58 "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support transfer, graphics, or compute operations", 59 "page": "vkspec" 60 }, 61 { 62 "vuid": "VUID-vkCmdCopyBufferToImage2-renderpass", 63 "text": "This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance", 64 "page": "vkspec" 65 }, 66 { 67 "vuid": "VUID-vkCmdCopyBufferToImage2-videocoding", 68 "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope", 69 "page": "vkspec" 70 } 71 ] 72 }, 73 "VkCopyBufferToImageInfo2": { 74 "core": [ 75 { 76 "vuid": "VUID-VkCopyBufferToImageInfo2-pRegions-94565", 77 "text": "Id velit ut tortor pretium viverra suspendisse potenti <code>pRegions</code> faucibus in ornare quam viverra orci sagittis eu volutpat <code>pNext</code> chain <code>imageSubresource</code> eu facilisis sed <strong class=\"purple\">must</strong> odio morbi quis commodo <code>dstImage</code>", 78 "page": "vkspec" 79 }, 80 { 81 "vuid": "VUID-VkCopyBufferToImageInfo2KHR-pRegions-94554", 82 "text": "Pharetra magna ac placerat vestibulum lectus mauris <code>pRegions</code> ac felis donec et odio pellentesque diam volutpat commodo sed <code>pNext</code> chain <strong class=\"purple\">must</strong> malesuada pellentesque elit <a href=\"#lorem-subchapter\">Lorem Subchapter</a> eget gravida cum sociis natoque <code>dstImage</code>", 83 "page": "vkspec" 84 }, 85 { 86 "vuid": "VUID-VkCopyBufferToImageInfo2-dstImage-97966", 87 "text": "If <code>dstImage</code> is non-sparse then the image or the specified <em>disjoint</em> plane <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object", 88 "page": "vkspec" 89 }, 90 { 91 "vuid": "VUID-VkCopyBufferToImageInfo2-imageSubresource-97967", 92 "text": "The <code>imageSubresource.mipLevel</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>dstImage</code> was created", 93 "page": "vkspec" 94 }, 95 { 96 "vuid": "VUID-VkCopyBufferToImageInfo2-imageSubresource-97968", 97 "text": "The <span class=\"eq\"><code>imageSubresource.baseArrayLayer</code> + <code>imageSubresource.layerCount</code></span> of each element of <code>pRegions</code> , if <code>imageSubresource.layerCount</code> is not <code>VK_REMAINING_ARRAY_LAYERS</code> and <a href=\"#features-maintenance5\"><code>maintenance5</code></a> is not enabled, <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>dstImage</code> was created", 98 "page": "vkspec" 99 }, 100 { 101 "vuid": "VUID-VkCopyBufferToImageInfo2-dstImage-97969", 102 "text": "<code>dstImage</code> <strong class=\"purple\">must</strong> not have been created with <code>flags</code> containing <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code>", 103 "page": "vkspec" 104 }, 105 { 106 "vuid": "VUID-VkCopyBufferToImageInfo2-bufferRowLength-99101", 107 "text": "<code>bufferRowLength</code> <strong class=\"purple\">must</strong> be <code>0</code>, or greater than or equal to the <code>width</code> member of <code>imageExtent</code>", 108 "page": "vkspec" 109 }, 110 { 111 "vuid": "VUID-VkCopyBufferToImageInfo2-bufferImageHeight-99102", 112 "text": "<code>bufferImageHeight</code> <strong class=\"purple\">must</strong> be <code>0</code>, or greater than or equal to the <code>height</code> member of <code>imageExtent</code>", 113 "page": "vkspec" 114 }, 115 { 116 "vuid": "VUID-VkCopyBufferToImageInfo2-aspectMask-99103", 117 "text": "The <code>aspectMask</code> member of <code>imageSubresource</code> <strong class=\"purple\">must</strong> only have a single bit set", 118 "page": "vkspec" 119 }, 120 { 121 "vuid": "VUID-VkCopyBufferToImageInfo2-imageExtent-96659", 122 "text": "<code>imageExtent.width</code> <strong class=\"purple\">must</strong> not be 0", 123 "page": "vkspec" 124 }, 125 { 126 "vuid": "VUID-VkCopyBufferToImageInfo2-imageExtent-96660", 127 "text": "<code>imageExtent.height</code> <strong class=\"purple\">must</strong> not be 0", 128 "page": "vkspec" 129 }, 130 { 131 "vuid": "VUID-VkCopyBufferToImageInfo2-imageExtent-96661", 132 "text": "<code>imageExtent.depth</code> <strong class=\"purple\">must</strong> not be 0", 133 "page": "vkspec" 134 }, 135 { 136 "vuid": "VUID-VkCopyBufferToImageInfo2-pRegions-96223", 137 "text": "Id leo in vitae turpis massa sed elementum <code>imageOffset.x</code> and <span class=\"eq\">(<code>imageExtent.width</code> + <code>imageOffset.x</code>)</span> <strong class=\"purple\">must</strong> gravida dictum fusce ut placerat orci nulla pellentesque dignissim enim <code>imageSubresource</code> of <code>dstImage</code>", 138 "page": "vkspec" 139 }, 140 { 141 "vuid": "VUID-VkCopyBufferToImageInfo2-sType-sType", 142 "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2</code>", 143 "page": "vkspec" 144 }, 145 { 146 "vuid": "VUID-VkCopyBufferToImageInfo2-pNext-pNext", 147 "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>", 148 "page": "vkspec" 149 }, 150 { 151 "vuid": "VUID-VkCopyBufferToImageInfo2-srcBuffer-parameter", 152 "text": "<code>srcBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle", 153 "page": "vkspec" 154 }, 155 { 156 "vuid": "VUID-VkCopyBufferToImageInfo2-dstImage-parameter", 157 "text": "<code>dstImage</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle", 158 "page": "vkspec" 159 }, 160 { 161 "vuid": "VUID-VkCopyBufferToImageInfo2-dstImageLayout-parameter", 162 "text": "<code>dstImageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value", 163 "page": "vkspec" 164 }, 165 { 166 "vuid": "VUID-VkCopyBufferToImageInfo2-pRegions-parameter", 167 "text": "<code>pRegions</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>regionCount</code> valid <a href=\"#VkBufferImageCopy2\">VkBufferImageCopy2</a> structures", 168 "page": "vkspec" 169 }, 170 { 171 "vuid": "VUID-VkCopyBufferToImageInfo2-regionCount-arraylength", 172 "text": "<code>regionCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>", 173 "page": "vkspec" 174 }, 175 { 176 "vuid": "VUID-VkCopyBufferToImageInfo2-commonparent", 177 "text": "Both of <code>dstImage</code>, and <code>srcBuffer</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>", 178 "page": "vkspec" 179 } 180 ] 181 }, 182 "VkBufferImageCopy2": { 183 "core": [ 184 { 185 "vuid": "VUID-VkBufferImageCopy2-bufferRowLength-99101", 186 "text": "<code>bufferRowLength</code> <strong class=\"purple\">must</strong> be <code>0</code>, or greater than or equal to the <code>width</code> member of <code>imageExtent</code>", 187 "page": "vkspec" 188 }, 189 { 190 "vuid": "VUID-VkBufferImageCopy2-bufferImageHeight-99102", 191 "text": "<code>bufferImageHeight</code> <strong class=\"purple\">must</strong> be <code>0</code>, or greater than or equal to the <code>height</code> member of <code>imageExtent</code>", 192 "page": "vkspec" 193 }, 194 { 195 "vuid": "VUID-VkBufferImageCopy2-aspectMask-99103", 196 "text": "The <code>aspectMask</code> member of <code>imageSubresource</code> <strong class=\"purple\">must</strong> only have a single bit set", 197 "page": "vkspec" 198 }, 199 { 200 "vuid": "VUID-VkBufferImageCopy2-imageExtent-96659", 201 "text": "<code>imageExtent.width</code> <strong class=\"purple\">must</strong> not be 0", 202 "page": "vkspec" 203 }, 204 { 205 "vuid": "VUID-VkBufferImageCopy2-imageExtent-96660", 206 "text": "<code>imageExtent.height</code> <strong class=\"purple\">must</strong> not be 0", 207 "page": "vkspec" 208 }, 209 { 210 "vuid": "VUID-VkBufferImageCopy2-imageExtent-96661", 211 "text": "<code>imageExtent.depth</code> <strong class=\"purple\">must</strong> not be 0", 212 "page": "vkspec" 213 }, 214 { 215 "vuid": "VUID-VkBufferImageCopy2-sType-sType", 216 "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2</code>", 217 "page": "vkspec" 218 }, 219 { 220 "vuid": "VUID-VkBufferImageCopy2-pNext-pNext", 221 "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkCopyCommandTransformInfoQCOM\">VkCopyCommandTransformInfoQCOM</a>", 222 "page": "vkspec" 223 }, 224 { 225 "vuid": "VUID-VkBufferImageCopy2-sType-unique", 226 "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique", 227 "page": "vkspec" 228 }, 229 { 230 "vuid": "VUID-VkBufferImageCopy2-imageSubresource-parameter", 231 "text": "<code>imageSubresource</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageSubresourceLayers\">VkImageSubresourceLayers</a> structure", 232 "page": "vkspec" 233 } 234 ] 235 }, 236 "vkCopyMemoryToImageEXT": { 237 "core": [ 238 { 239 "vuid": "VUID-vkCopyMemoryToImageEXT-hostImageCopy-99058", 240 "text": "Risus quis varius <a href=\"#features-hostImageCopy\"><code>hostImageCopy</code></a> quam quisque id diam vel", 241 "page": "vkspec" 242 }, 243 { 244 "vuid": "VUID-vkCopyMemoryToImageEXT-device-parameter", 245 "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle", 246 "page": "vkspec" 247 }, 248 { 249 "vuid": "VUID-vkCopyMemoryToImageEXT-pCopyMemoryToImageInfo-parameter", 250 "text": "<code>pCopyMemoryToImageInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkCopyMemoryToImageInfoEXT\">VkCopyMemoryToImageInfoEXT</a> structure", 251 "page": "vkspec" 252 } 253 ] 254 }, 255 "VkCopyMemoryToImageInfoEXT": { 256 "core": [ 257 { 258 "vuid": "VUID-VkCopyMemoryToImageInfoEXT-dstImage-97966", 259 "text": "If <code>dstImage</code> is non-sparse then the image or the specified <em>disjoint</em> plane <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object", 260 "page": "vkspec" 261 }, 262 { 263 "vuid": "VUID-VkCopyMemoryToImageInfoEXT-imageSubresource-97967", 264 "text": "The <code>imageSubresource.mipLevel</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>dstImage</code> was created", 265 "page": "vkspec" 266 }, 267 { 268 "vuid": "VUID-VkCopyMemoryToImageInfoEXT-imageSubresource-97968", 269 "text": "The <span class=\"eq\"><code>imageSubresource.baseArrayLayer</code> + <code>imageSubresource.layerCount</code></span> of each element of <code>pRegions</code> , if <code>imageSubresource.layerCount</code> is not <code>VK_REMAINING_ARRAY_LAYERS</code> and <a href=\"#features-maintenance5\"><code>maintenance5</code></a> is not enabled, <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>dstImage</code> was created", 270 "page": "vkspec" 271 }, 272 { 273 "vuid": "VUID-VkCopyMemoryToImageInfoEXT-dstImage-97969", 274 "text": "<code>dstImage</code> <strong class=\"purple\">must</strong> not have been created with <code>flags</code> containing <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code>", 275 "page": "vkspec" 276 }, 277 { 278 "vuid": "VUID-VkCopyMemoryToImageInfoEXT-dstImageLayout-99059", 279 "text": "<code>dstImageLayout</code> <strong class=\"purple\">must</strong> Lorem ipsum dolor sit amet, <code>dstImage</code> consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore <code>pRegions</code> et dolore magna aliqua", 280 "page": "vkspec" 281 }, 282 { 283 "vuid": "VUID-VkCopyMemoryToImageInfoEXT-sType-sType", 284 "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO_EXT</code>", 285 "page": "vkspec" 286 }, 287 { 288 "vuid": "VUID-VkCopyMemoryToImageInfoEXT-pNext-pNext", 289 "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>", 290 "page": "vkspec" 291 }, 292 { 293 "vuid": "VUID-VkCopyMemoryToImageInfoEXT-flags-parameter", 294 "text": "<code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkHostImageCopyFlagBitsEXT\">VkHostImageCopyFlagBitsEXT</a> values", 295 "page": "vkspec" 296 }, 297 { 298 "vuid": "VUID-VkCopyMemoryToImageInfoEXT-dstImage-parameter", 299 "text": "<code>dstImage</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle", 300 "page": "vkspec" 301 }, 302 { 303 "vuid": "VUID-VkCopyMemoryToImageInfoEXT-dstImageLayout-parameter", 304 "text": "<code>dstImageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value", 305 "page": "vkspec" 306 }, 307 { 308 "vuid": "VUID-VkCopyMemoryToImageInfoEXT-pRegions-parameter", 309 "text": "<code>pRegions</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>regionCount</code> valid <a href=\"#VkMemoryToImageCopyEXT\">VkMemoryToImageCopyEXT</a> structures", 310 "page": "vkspec" 311 }, 312 { 313 "vuid": "VUID-VkCopyMemoryToImageInfoEXT-regionCount-arraylength", 314 "text": "<code>regionCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>", 315 "page": "vkspec" 316 } 317 ] 318 }, 319 "VkMemoryToImageCopyEXT": { 320 "core": [ 321 { 322 "vuid": "VUID-VkMemoryToImageCopyEXT-pHostPointer-99061", 323 "text": "<code>pHostPointer</code> <strong class=\"purple\">must</strong> Nisl condimentum id venenatis a condimentum vitae", 324 "page": "vkspec" 325 }, 326 { 327 "vuid": "VUID-VkMemoryToImageCopyEXT-memoryRowLength-99101", 328 "text": "<code>memoryRowLength</code> <strong class=\"purple\">must</strong> be <code>0</code>, or greater than or equal to the <code>width</code> member of <code>imageExtent</code>", 329 "page": "vkspec" 330 }, 331 { 332 "vuid": "VUID-VkMemoryToImageCopyEXT-memoryImageHeight-99102", 333 "text": "<code>memoryImageHeight</code> <strong class=\"purple\">must</strong> be <code>0</code>, or greater than or equal to the <code>height</code> member of <code>imageExtent</code>", 334 "page": "vkspec" 335 }, 336 { 337 "vuid": "VUID-VkMemoryToImageCopyEXT-aspectMask-99103", 338 "text": "The <code>aspectMask</code> member of <code>imageSubresource</code> <strong class=\"purple\">must</strong> only have a single bit set", 339 "page": "vkspec" 340 }, 341 { 342 "vuid": "VUID-VkMemoryToImageCopyEXT-imageExtent-96659", 343 "text": "<code>imageExtent.width</code> <strong class=\"purple\">must</strong> not be 0", 344 "page": "vkspec" 345 }, 346 { 347 "vuid": "VUID-VkMemoryToImageCopyEXT-imageExtent-96660", 348 "text": "<code>imageExtent.height</code> <strong class=\"purple\">must</strong> not be 0", 349 "page": "vkspec" 350 }, 351 { 352 "vuid": "VUID-VkMemoryToImageCopyEXT-imageExtent-96661", 353 "text": "<code>imageExtent.depth</code> <strong class=\"purple\">must</strong> not be 0", 354 "page": "vkspec" 355 }, 356 { 357 "vuid": "VUID-VkMemoryToImageCopyEXT-sType-sType", 358 "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY_EXT</code>", 359 "page": "vkspec" 360 }, 361 { 362 "vuid": "VUID-VkMemoryToImageCopyEXT-pNext-pNext", 363 "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>", 364 "page": "vkspec" 365 }, 366 { 367 "vuid": "VUID-VkMemoryToImageCopyEXT-pHostPointer-parameter", 368 "text": "<code>pHostPointer</code> <strong class=\"purple\">must</strong> be a pointer value", 369 "page": "vkspec" 370 }, 371 { 372 "vuid": "VUID-VkMemoryToImageCopyEXT-imageSubresource-parameter", 373 "text": "<code>imageSubresource</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageSubresourceLayers\">VkImageSubresourceLayers</a> structure", 374 "page": "vkspec" 375 } 376 ] 377 } 378 } 379}