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

// Common Valid Usage
// Common to VkCmdCopyImageToBuffer* command buffer
ifdef::VK_VERSION_1_1[]
  * [[VUID-{refpage}-commandBuffer-01831]]
    If pname:commandBuffer is an unprotected command buffer and
    <<limits-protectedNoFault, pname:protectedNoFault>> is not supported,
    pname:srcImage must: not be a protected image
  * [[VUID-{refpage}-commandBuffer-01832]]
    If pname:commandBuffer is an unprotected command buffer and
    <<limits-protectedNoFault, pname:protectedNoFault>> is not supported,
    pname:dstBuffer must: not be a protected buffer
  * [[VUID-{refpage}-commandBuffer-01833]]
    If pname:commandBuffer is a protected command buffer and
    <<limits-protectedNoFault, pname:protectedNoFault>> is not supported,
    pname:dstBuffer must: not be an unprotected buffer
endif::VK_VERSION_1_1[]

// Common Valid Usage
