VkAccelerationStructureInfoNV
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;
sType
is a VkStructureType value identifying this structure.pNext
isNULL
or a pointer to a structure extending this 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 a pointer to an array ofgeometryCount
VkGeometryNV structures containing the scene data being passed into the acceleration structure.
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
VUID-VkAccelerationStructureInfoNV-geometryCount-02422
geometryCount
must be less than or equal to
VkPhysicalDeviceRayTracingPropertiesNV::maxGeometryCount
VUID-VkAccelerationStructureInfoNV-instanceCount-02423
instanceCount
must be less than or equal to
VkPhysicalDeviceRayTracingPropertiesNV::maxInstanceCount
VUID-VkAccelerationStructureInfoNV-maxTriangleCount-02424
The total number of triangles in all geometries must be less than or
equal to
VkPhysicalDeviceRayTracingPropertiesNV::maxTriangleCount
VUID-VkAccelerationStructureInfoNV-type-02425
If type
is VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV
then
geometryCount
must be 0
VUID-VkAccelerationStructureInfoNV-type-02426
If type
is VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV
then instanceCount
must be 0
VUID-VkAccelerationStructureInfoNV-type-02786
If type
is VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV
then the geometryType
member of each geometry in pGeometries
must be the same
VUID-VkAccelerationStructureInfoNV-type-04623
type
must not be VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR
VUID-VkAccelerationStructureInfoNV-flags-02592
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
VUID-VkAccelerationStructureInfoNV-scratch-02781
scratch
must have been created with
VK_BUFFER_USAGE_RAY_TRACING_BIT_NV
usage flag
VUID-VkAccelerationStructureInfoNV-instanceData-02782
If instanceData
is not VK_NULL_HANDLE, instanceData
must have been created with VK_BUFFER_USAGE_RAY_TRACING_BIT_NV
usage flag
Valid Usage (Implicit)
VUID-VkAccelerationStructureInfoNV-sType-sType
sType
must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV
VUID-VkAccelerationStructureInfoNV-pNext-pNext
pNext
must be NULL
VUID-VkAccelerationStructureInfoNV-type-parameter
type
must be a valid VkAccelerationStructureTypeNV value
VUID-VkAccelerationStructureInfoNV-flags-parameter
flags
must be a valid combination of VkBuildAccelerationStructureFlagBitsNV values
VUID-VkAccelerationStructureInfoNV-pGeometries-parameter
If geometryCount
is not 0
, pGeometries
must be a valid pointer to an array of geometryCount
valid VkGeometryNV structures