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

// Common Valid Usage
// Common to acceleration structure build commands
  * [[VUID-{refpage}-pInfos-03675]]
    For each pname:pInfos[i], pname:dstAccelerationStructure must: have been
    created with a value of
    slink:VkAccelerationStructureCreateInfoKHR::pname:size greater than or
    equal to the memory size required by the build operation, as returned by
    flink:vkGetAccelerationStructureBuildSizesKHR with [eq]#pname:pBuildInfo
    = pname:pInfos[i]# and with each element of the
    pname:pMaxPrimitiveCounts array greater than or equal to the equivalent
    pname:ppBuildRangeInfos[i][j].pname:primitiveCount values for code:j in
    [eq]#[0,pname:pInfos[i].pname:geometryCount)#
  * [[VUID-{refpage}-ppBuildRangeInfos-03676]]
    Each element of pname:ppBuildRangeInfos[i] must: be a valid pointer to
    an array of pname:pInfos[i].pname:geometryCount
    sname:VkAccelerationStructureBuildRangeInfoKHR structures
// Common Valid Usage
