VkPartitionedAccelerationStructureUpdateInstanceDataNV
The VkPartitionedAccelerationStructureUpdateInstanceDataNV structure is defined as:
typedef struct VkPartitionedAccelerationStructureUpdateInstanceDataNV {
uint32_t instanceIndex;
uint32_t instanceContributionToHitGroupIndex;
VkDeviceAddress accelerationStructure;
} VkPartitionedAccelerationStructureUpdateInstanceDataNV;
instanceIndexis the index of the instance being updated.instanceContributionToHitGroupIndexis a 24-bit per instance value added in the indexing into the shader binding table to fetch the hit group to use.accelerationStructureis the device address of the bottom level acceleration structure or a clustered bottom level acceleration structure whose instance is being updated. The instance is disabled if the device address is0.
If the instance was originally disabled by specifying a 0 in
VkPartitionedAccelerationStructureWriteInstanceDataNV::accelerationStructure,
it can not be updated to a new acceleration structure as the instance may
have been permanently disabled by the implementation.
To avoid a refit, the new acceleration structure must be within the
bounding box specified by
VkPartitionedAccelerationStructureWriteInstanceDataNV::explicitAABB
when the instance was first created.
Valid Usage
VUID-VkPartitionedAccelerationStructureUpdateInstanceDataNV-instanceContributionToHitGroupIndex-10571
The most significant 8 bits of instanceContributionToHitGroupIndexmust be 0
VUID-VkPartitionedAccelerationStructureUpdateInstanceDataNV-None-10572
The instance must have either been created with flag
VK_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCE_FLAG_ENABLE_EXPLICIT_BOUNDING_BOX_NV
or did not have an acceleration structure assigned with
VkPartitionedAccelerationStructureWriteInstanceDataNV
VUID-VkPartitionedAccelerationStructureUpdateInstanceDataNV-instanceIndex-10573
instanceIndex must be less than
VkBuildPartitionedAccelerationStructureInfoNV::input::instanceCount