vkCreateAccelerationStructureNV(3)

# vkCreateAccelerationStructureNV(3) Manual Page

## Name

vkCreateAccelerationStructureNV - Create a new acceleration structure object

Loading… please wait.

## C Specification

To create acceleration structures, call:

    // Provided by VK_NV_ray_tracing
    VkResult vkCreateAccelerationStructureNV(
        VkDevice                                    device,
        const VkAccelerationStructureCreateInfoNV*  pCreateInfo,
        const VkAllocationCallbacks*                pAllocator,
        VkAccelerationStructureNV*                  pAccelerationStructure);

## Parameters

- `device` is the logical device that creates the buffer object.

- `pCreateInfo` is a pointer to a VkAccelerationStructureCreateInfoNV structure containing parameters affecting creation of the acceleration structure.

- `pAllocator` controls host memory allocation as described in the Memory Allocation chapter.

- `pAccelerationStructure` is a pointer to a VkAccelerationStructureNV handle in which the resulting acceleration structure object is returned.

## Description

Similarly to other objects in Vulkan, the acceleration structure creation merely creates an object with a specific “shape” as specified by the information in VkAccelerationStructureInfoNV and `compactedSize` in `pCreateInfo`.

Once memory has been bound to the acceleration structure using vkBindAccelerationStructureMemoryNV, that memory is populated by calls to vkCmdBuildAccelerationStructureNV and vkCmdCopyAccelerationStructureNV.

Acceleration structure creation uses the count and type information from the geometries, but does not use the data references in the structures.

Valid Usage (Implicit)

- VUID-vkCreateAccelerationStructureNV-device-parameter
  `device` must be a valid VkDevice handle

- VUID-vkCreateAccelerationStructureNV-pCreateInfo-parameter
  `pCreateInfo` must be a valid pointer to a valid VkAccelerationStructureCreateInfoNV structure

- VUID-vkCreateAccelerationStructureNV-pAllocator-parameter
  If `pAllocator` is not `NULL`, `pAllocator` must be a valid pointer to a valid VkAllocationCallbacks structure

- VUID-vkCreateAccelerationStructureNV-pAccelerationStructure-parameter
  `pAccelerationStructure` must be a valid pointer to a VkAccelerationStructureNV handle

Return Codes

On success, this command returns

  - `VK_SUCCESS`

On failure, this command returns

  - `VK_ERROR_OUT_OF_HOST_MEMORY`

## See Also

VK_NV_ray_tracing, VkAccelerationStructureCreateInfoNV, VkAccelerationStructureNV, VkAllocationCallbacks, VkDevice

## Document Notes

For more information, see the Vulkan Specification

This page is extracted from the Vulkan Specification. Fixes and changes should be made to the Specification, not directly.

## Copyright

Copyright 2014-2025 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0