## C Specification

The VkAccelerationStructureInfoNV structure is defined as:

typedef struct VkAccelerationStructureInfoNV {
VkStructureType                        sType;
const void*                            pNext;
VkAccelerationStructureTypeNV          type;
VkBuildAccelerationStructureFlagsNV    flags;
uint32_t                               instanceCount;
uint32_t                               geometryCount;
const VkGeometryNV*                    pGeometries;
} VkAccelerationStructureInfoNV;

## Members

• sType is the type of this structure.

• pNext is NULL or a pointer to an extension-specific structure.

• type is a VkAccelerationStructureTypeNV value specifying the type of acceleration structure that will be created.

• flags is a bitmask of VkBuildAccelerationStructureFlagBitsNV specifying additional parameters of the acceleration structure.

• instanceCount specifies the number of instances that will be in the new acceleration structure.

• geometryCount specifies the number of geometries that will be in the new acceleration structure.

• pGeometries is an array of VkGeometryNV structures, which contain the scene data being passed into the acceleration structure.

## Description

VkAccelerationStructureInfoNV contains information that is used both for acceleration structure creation with vkCreateAccelerationStructureNV and in combination with the actual geometric data to build the acceleration structure with vkCmdBuildAccelerationStructureNV.

Valid Usage
• geometryCount must be less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxGeometryCount

• instanceCount must be less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxInstanceCount

• The total number of triangles in all geometries must be less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxTriangleCount

• If type is VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV then geometryCount must be 0

• If type is VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV then instanceCount must be 0

• If flags has the VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV bit set, then it must not have the VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV bit set

Valid Usage (Implicit)
• sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV

• pNext must be NULL

• type must be a valid VkAccelerationStructureTypeNV value

• flags must be a valid combination of VkBuildAccelerationStructureFlagBitsNV values

• If geometryCount is not 0, pGeometries must be a valid pointer to an array of geometryCount valid VkGeometryNV structures