C Specification

The VkBindAccelerationStructureMemoryInfoKHR structure is defined as:

// Provided by VK_KHR_ray_tracing
typedef struct VkBindAccelerationStructureMemoryInfoKHR {
    VkStructureType               sType;
    const void*                   pNext;
    VkAccelerationStructureKHR    accelerationStructure;
    VkDeviceMemory                memory;
    VkDeviceSize                  memoryOffset;
    uint32_t                      deviceIndexCount;
    const uint32_t*               pDeviceIndices;
} VkBindAccelerationStructureMemoryInfoKHR;

or the equivalent

// Provided by VK_NV_ray_tracing
typedef VkBindAccelerationStructureMemoryInfoKHR VkBindAccelerationStructureMemoryInfoNV;

Members

  • sType is the type of this structure.

  • pNext is NULL or a pointer to a structure extending this structure.

  • accelerationStructure is the acceleration structure to be attached to memory.

  • memory is a VkDeviceMemory object describing the device memory to attach.

  • memoryOffset is the start offset of the region of memory that is to be bound to the acceleration structure. The number of bytes returned in the VkMemoryRequirements::size member in memory, starting from memoryOffset bytes, will be bound to the specified acceleration structure.

  • deviceIndexCount is the number of elements in pDeviceIndices.

  • pDeviceIndices is a pointer to an array of device indices.

Description

Valid Usage
  • VUID-VkBindAccelerationStructureMemoryInfoKHR-accelerationStructure-02450
    accelerationStructure must not already be backed by a memory object

  • VUID-VkBindAccelerationStructureMemoryInfoKHR-memoryOffset-02451
    memoryOffset must be less than the size of memory

  • VUID-VkBindAccelerationStructureMemoryInfoKHR-memory-02593
    memory must have been allocated using one of the memory types allowed in the memoryTypeBits member of the VkMemoryRequirements structure returned from a call to vkGetAccelerationStructureMemoryRequirementsKHR with accelerationStructure and type of VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_KHR

  • VUID-VkBindAccelerationStructureMemoryInfoKHR-memoryOffset-02594
    memoryOffset must be an integer multiple of the alignment member of the VkMemoryRequirements structure returned from a call to vkGetAccelerationStructureMemoryRequirementsKHR with accelerationStructure and type of VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_KHR

  • VUID-VkBindAccelerationStructureMemoryInfoKHR-size-02595
    The size member of the VkMemoryRequirements structure returned from a call to vkGetAccelerationStructureMemoryRequirementsKHR with accelerationStructure and type of VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_KHR must be less than or equal to the size of memory minus memoryOffset

Valid Usage (Implicit)
  • VUID-VkBindAccelerationStructureMemoryInfoKHR-sType-sType
    sType must be VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_KHR

  • VUID-VkBindAccelerationStructureMemoryInfoKHR-pNext-pNext
    pNext must be NULL

  • VUID-VkBindAccelerationStructureMemoryInfoKHR-accelerationStructure-parameter
    accelerationStructure must be a valid VkAccelerationStructureKHR handle

  • VUID-VkBindAccelerationStructureMemoryInfoKHR-memory-parameter
    memory must be a valid VkDeviceMemory handle

  • VUID-VkBindAccelerationStructureMemoryInfoKHR-pDeviceIndices-parameter
    If deviceIndexCount is not 0, pDeviceIndices must be a valid pointer to an array of deviceIndexCount uint32_t values

  • VUID-VkBindAccelerationStructureMemoryInfoKHR-commonparent
    Both of accelerationStructure, and memory must have been created, allocated, or retrieved from the same VkDevice

See Also

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 (c) 2014-2020 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0