// Copyright 2020-2024 The Khronos Group Inc. // // SPDX-License-Identifier: CC-BY-4.0 // Common Valid Usage // Common to VkCmdCopyBufferToImage* command buffer ifdef::VK_VERSION_1_1[] * [[VUID-{refpage}-commandBuffer-91828]] If pname:commandBuffer is an unprotected command buffer and <> is not supported, pname:srcBuffer must: not be a protected buffer * [[VUID-{refpage}-commandBuffer-91829]] If pname:commandBuffer is an unprotected command buffer and <> is not supported, pname:dstImage must: not be a protected image * [[VUID-{refpage}-commandBuffer-91830]] If pname:commandBuffer is a protected command buffer and <> is not supported, pname:dstImage must: not be an unprotected image endif::VK_VERSION_1_1[] * [[VUID-{refpage}-commandBuffer-97737]] If the queue family used to create the slink:VkCommandPool which pname:commandBuffer was allocated from does not support ename:VK_QUEUE_GRAPHICS_BIT or ename:VK_QUEUE_COMPUTE_BIT, the pname:bufferOffset member of any element of {regionsparam} must: be a multiple of `4` * [[VUID-{refpage}-imageOffset-97738]] The pname:imageOffset and pname:imageExtent members of each element of {regionsparam} must: respect the image transfer granularity requirements of pname:commandBuffer's command pool's queue family, as described in slink:VkQueueFamilyProperties * [[VUID-{refpage}-commandBuffer-97739]] If the queue family used to create the slink:VkCommandPool which pname:commandBuffer was allocated from does not support ename:VK_QUEUE_GRAPHICS_BIT, for each element of {regionsparam}, the pname:aspectMask member of pname:imageSubresource must: not be ename:VK_IMAGE_ASPECT_DEPTH_BIT or ename:VK_IMAGE_ASPECT_STENCIL_BIT // Common Valid Usage