vkGetAccelerationStructureMemoryRequirementsNV
An acceleration structure has memory requirements for the structure object itself, scratch space for the build, and scratch space for the update.
Scratch space is allocated as a VkBuffer, so for
VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV
and
VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV
the pMemoryRequirements→alignment and
pMemoryRequirements→memoryTypeBits values returned by this call must
be filled with zero, and should be ignored by the application.
To query the memory requirements, call:
void vkGetAccelerationStructureMemoryRequirementsNV(
VkDevice device,
const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo,
VkMemoryRequirements2KHR* pMemoryRequirements);
deviceis the logical device on which the acceleration structure was created.pInfois a pointer to a VkAccelerationStructureMemoryRequirementsInfoNV structure specifying the acceleration structure to get memory requirements for.pMemoryRequirementsis a pointer to a VkMemoryRequirements2KHR structure in which the requested acceleration structure memory requirements are returned.
Valid Usage (Implicit)
VUID-vkGetAccelerationStructureMemoryRequirementsNV-device-parameter
device must be a valid VkDevice handle
VUID-vkGetAccelerationStructureMemoryRequirementsNV-pInfo-parameter
pInfo must be a valid pointer to a valid VkAccelerationStructureMemoryRequirementsInfoNV structure
VUID-vkGetAccelerationStructureMemoryRequirementsNV-pMemoryRequirements-parameter
pMemoryRequirements must be a valid pointer to a VkMemoryRequirements2KHR structure