Class KHRAccelerationStructure
This extension adds new functionalities:
- Acceleration structure objects and build commands
- Structures to describe geometry inputs to acceleration structure builds
- Acceleration structure copy commands
- Name String
VK_KHR_acceleration_structure- Extension Type
- Device extension
- Registered Extension Number
- 151
- Revision
- 13
- Extension and Version Dependencies
- Version 1.1 and
VK_EXT_descriptor_indexingandVK_KHR_buffer_device_addressor Version 1.2 andVK_KHR_deferred_host_operations - API Interactions
- Interacts with VK_VERSION_1_2
- Interacts with VK_VERSION_1_3
- Interacts with VK_EXT_debug_report
- Interacts with VK_KHR_format_feature_flags2
- Contact
- Daniel Koch dgkoch
Other Extension Metadata
- Last Modified Date
- 2021-09-30
- Contributors
- Samuel Bourasseau, Adobe
- Matthäus Chajdas, AMD
- Greg Grebe, AMD
- Nicolai Hähnle, AMD
- Tobias Hector, AMD
- Dave Oldcorn, AMD
- Skyler Saleh, AMD
- Mathieu Robart, Arm
- Marius Bjorge, Arm
- Tom Olson, Arm
- Sebastian Tafuri, EA
- Henrik Rydgard, Embark
- Juan Cañada, Epic Games
- Patrick Kelly, Epic Games
- Yuriy O’Donnell, Epic Games
- Michael Doggett, Facebook/Oculus
- Ricardo Garcia, Igalia
- Andrew Garrard, Imagination
- Don Scorgie, Imagination
- Dae Kim, Imagination
- Joshua Barczak, Intel
- Slawek Grajewski, Intel
- Jeff Bolz, NVIDIA
- Pascal Gautron, NVIDIA
- Daniel Koch, NVIDIA
- Christoph Kubisch, NVIDIA
- Ashwin Lele, NVIDIA
- Robert Stepinski, NVIDIA
- Martin Stich, NVIDIA
- Nuno Subtil, NVIDIA
- Eric Werness, NVIDIA
- Jon Leech, Khronos
- Jeroen van Schijndel, OTOY
- Juul Joosten, OTOY
- Alex Bourd, Qualcomm
- Roman Larionov, Qualcomm
- David McAllister, Qualcomm
- Lewis Gordon, Samsung
- Ralph Potter, Samsung
- Jasper Bekkers, Traverse Research
- Jesse Barker, Unity
- Baldur Karlsson, Valve
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intVkAccelerationStructureBuildTypeKHR - Acceleration structure build typestatic final intVkAccelerationStructureBuildTypeKHR - Acceleration structure build typestatic final intVkAccelerationStructureBuildTypeKHR - Acceleration structure build typestatic final intVkAccelerationStructureCompatibilityKHR - Acceleration structure compatibilitystatic final intVkAccelerationStructureCompatibilityKHR - Acceleration structure compatibilitystatic final intVkAccelerationStructureCreateFlagBitsKHR - Bitmask specifying additional creation parameters for acceleration structurestatic final intVkAccelerationStructureTypeKHR - Type of acceleration structurestatic final intVkAccelerationStructureTypeKHR - Type of acceleration structurestatic final intVkAccelerationStructureTypeKHR - Type of acceleration structurestatic final intExtendsVkAccessFlagBits.static final intExtendsVkAccessFlagBits.static final intExtendsVkBufferUsageFlagBits.static final intExtendsVkBufferUsageFlagBits.static final intVkBuildAccelerationStructureFlagBitsKHR - Bitmask specifying additional parameters for acceleration structure buildsstatic final intVkBuildAccelerationStructureFlagBitsKHR - Bitmask specifying additional parameters for acceleration structure buildsstatic final intVkBuildAccelerationStructureFlagBitsKHR - Bitmask specifying additional parameters for acceleration structure buildsstatic final intVkBuildAccelerationStructureModeKHR - Enum specifying the type of build operation to performstatic final intVkBuildAccelerationStructureModeKHR - Enum specifying the type of build operation to performstatic final intVkBuildAccelerationStructureFlagBitsKHR - Bitmask specifying additional parameters for acceleration structure buildsstatic final intVkBuildAccelerationStructureFlagBitsKHR - Bitmask specifying additional parameters for acceleration structure buildsstatic final intVkCopyAccelerationStructureModeKHR - Acceleration structure copy modestatic final intVkCopyAccelerationStructureModeKHR - Acceleration structure copy modestatic final intExtendsVkCopyAccelerationStructureModeKHR.static final intExtendsVkCopyAccelerationStructureModeKHR.static final intExtendsVkDebugReportObjectTypeEXT.static final intExtendsVkDescriptorType.static final longExtendsVkFormatFeatureFlagBits2.static final intExtendsVkFormatFeatureFlagBits.static final intVkGeometryInstanceFlagBitsKHR - Instance flag bitsstatic final intVkGeometryInstanceFlagBitsKHR - Instance flag bitsstatic final intVkGeometryInstanceFlagBitsKHR - Instance flag bitsstatic final intVkGeometryInstanceFlagBitsKHR - Instance flag bitsstatic final intVkGeometryInstanceFlagBitsKHR - Instance flag bitsstatic final intVkGeometryFlagBitsKHR - Bitmask specifying additional parameters for a geometrystatic final intVkGeometryFlagBitsKHR - Bitmask specifying additional parameters for a geometrystatic final intVkGeometryTypeKHR - Enum specifying which type of geometry is providedstatic final intVkGeometryTypeKHR - Enum specifying which type of geometry is providedstatic final intVkGeometryTypeKHR - Enum specifying which type of geometry is providedstatic final intExtendsVkIndexType.static final StringThe extension name.static final intThe extension specification version.static final intExtendsVkObjectType.static final intExtendsVkPipelineStageFlagBits.static final intExtendsVkQueryType.static final intExtendsVkQueryType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType. -
Method Summary
Modifier and TypeMethodDescriptionstatic intnvkBuildAccelerationStructuresKHR(org.lwjgl.vulkan.VkDevice device, long deferredOperation, int infoCount, long pInfos, long ppBuildRangeInfos) Unsafe version of:BuildAccelerationStructuresKHRstatic voidnvkCmdBuildAccelerationStructuresIndirectKHR(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, int infoCount, long pInfos, long pIndirectDeviceAddresses, long pIndirectStrides, long ppMaxPrimitiveCounts) Unsafe version of:CmdBuildAccelerationStructuresIndirectKHRstatic voidnvkCmdBuildAccelerationStructuresKHR(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, int infoCount, long pInfos, long ppBuildRangeInfos) Unsafe version of:CmdBuildAccelerationStructuresKHRstatic voidnvkCmdCopyAccelerationStructureKHR(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, long pInfo) Unsafe version of:CmdCopyAccelerationStructureKHRstatic voidnvkCmdCopyAccelerationStructureToMemoryKHR(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, long pInfo) Unsafe version of:CmdCopyAccelerationStructureToMemoryKHRstatic voidnvkCmdCopyMemoryToAccelerationStructureKHR(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, long pInfo) Unsafe version of:CmdCopyMemoryToAccelerationStructureKHRstatic voidnvkCmdWriteAccelerationStructuresPropertiesKHR(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, int accelerationStructureCount, long pAccelerationStructures, int queryType, long queryPool, int firstQuery) Unsafe version of:CmdWriteAccelerationStructuresPropertiesKHRstatic intnvkCopyAccelerationStructureKHR(org.lwjgl.vulkan.VkDevice device, long deferredOperation, long pInfo) Unsafe version of:CopyAccelerationStructureKHRstatic intnvkCopyAccelerationStructureToMemoryKHR(org.lwjgl.vulkan.VkDevice device, long deferredOperation, long pInfo) Unsafe version of:CopyAccelerationStructureToMemoryKHRstatic intnvkCopyMemoryToAccelerationStructureKHR(org.lwjgl.vulkan.VkDevice device, long deferredOperation, long pInfo) Unsafe version of:CopyMemoryToAccelerationStructureKHRstatic intnvkCreateAccelerationStructureKHR(org.lwjgl.vulkan.VkDevice device, long pCreateInfo, long pAllocator, long pAccelerationStructure) Unsafe version of:CreateAccelerationStructureKHRstatic voidnvkDestroyAccelerationStructureKHR(org.lwjgl.vulkan.VkDevice device, long accelerationStructure, long pAllocator) Unsafe version of:DestroyAccelerationStructureKHRstatic voidnvkGetAccelerationStructureBuildSizesKHR(org.lwjgl.vulkan.VkDevice device, int buildType, long pBuildInfo, long pMaxPrimitiveCounts, long pSizeInfo) Unsafe version of:GetAccelerationStructureBuildSizesKHRstatic longnvkGetAccelerationStructureDeviceAddressKHR(org.lwjgl.vulkan.VkDevice device, long pInfo) Unsafe version of:GetAccelerationStructureDeviceAddressKHRstatic voidnvkGetDeviceAccelerationStructureCompatibilityKHR(org.lwjgl.vulkan.VkDevice device, long pVersionInfo, long pCompatibility) Unsafe version of:GetDeviceAccelerationStructureCompatibilityKHRstatic intnvkWriteAccelerationStructuresPropertiesKHR(org.lwjgl.vulkan.VkDevice device, int accelerationStructureCount, long pAccelerationStructures, int queryType, long dataSize, long pData, long stride) Unsafe version of:WriteAccelerationStructuresPropertiesKHRstatic intvkBuildAccelerationStructuresKHR(org.lwjgl.vulkan.VkDevice device, long deferredOperation, VkAccelerationStructureBuildGeometryInfoKHR.Buffer pInfos, org.lwjgl.PointerBuffer ppBuildRangeInfos) Build an acceleration structure on the host.static voidvkCmdBuildAccelerationStructuresIndirectKHR(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, VkAccelerationStructureBuildGeometryInfoKHR.Buffer pInfos, long[] pIndirectDeviceAddresses, int[] pIndirectStrides, org.lwjgl.PointerBuffer ppMaxPrimitiveCounts) Array version of:CmdBuildAccelerationStructuresIndirectKHRstatic voidvkCmdBuildAccelerationStructuresIndirectKHR(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, VkAccelerationStructureBuildGeometryInfoKHR.Buffer pInfos, LongBuffer pIndirectDeviceAddresses, IntBuffer pIndirectStrides, org.lwjgl.PointerBuffer ppMaxPrimitiveCounts) Build an acceleration structure with some parameters provided on the device.static voidvkCmdBuildAccelerationStructuresKHR(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, VkAccelerationStructureBuildGeometryInfoKHR.Buffer pInfos, org.lwjgl.PointerBuffer ppBuildRangeInfos) Build an acceleration structure.static voidvkCmdCopyAccelerationStructureKHR(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, VkCopyAccelerationStructureInfoKHR pInfo) Copy an acceleration structure.static voidvkCmdCopyAccelerationStructureToMemoryKHR(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, VkCopyAccelerationStructureToMemoryInfoKHR pInfo) Copy an acceleration structure to device memory.static voidvkCmdCopyMemoryToAccelerationStructureKHR(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, VkCopyMemoryToAccelerationStructureInfoKHR pInfo) Copy device memory to an acceleration structure.static voidvkCmdWriteAccelerationStructuresPropertiesKHR(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, long[] pAccelerationStructures, int queryType, long queryPool, int firstQuery) Array version of:CmdWriteAccelerationStructuresPropertiesKHRstatic voidvkCmdWriteAccelerationStructuresPropertiesKHR(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, LongBuffer pAccelerationStructures, int queryType, long queryPool, int firstQuery) Write acceleration structure result parameters to query results.static intvkCopyAccelerationStructureKHR(org.lwjgl.vulkan.VkDevice device, long deferredOperation, VkCopyAccelerationStructureInfoKHR pInfo) Copy an acceleration structure on the host.static intvkCopyAccelerationStructureToMemoryKHR(org.lwjgl.vulkan.VkDevice device, long deferredOperation, VkCopyAccelerationStructureToMemoryInfoKHR pInfo) Serialize an acceleration structure on the host.static intvkCopyMemoryToAccelerationStructureKHR(org.lwjgl.vulkan.VkDevice device, long deferredOperation, VkCopyMemoryToAccelerationStructureInfoKHR pInfo) Deserialize an acceleration structure on the host.static intvkCreateAccelerationStructureKHR(org.lwjgl.vulkan.VkDevice device, VkAccelerationStructureCreateInfoKHR pCreateInfo, @Nullable VkAllocationCallbacks pAllocator, long[] pAccelerationStructure) Array version of:CreateAccelerationStructureKHRstatic intvkCreateAccelerationStructureKHR(org.lwjgl.vulkan.VkDevice device, VkAccelerationStructureCreateInfoKHR pCreateInfo, @Nullable VkAllocationCallbacks pAllocator, LongBuffer pAccelerationStructure) Create a new acceleration structure object.static voidvkDestroyAccelerationStructureKHR(org.lwjgl.vulkan.VkDevice device, long accelerationStructure, @Nullable VkAllocationCallbacks pAllocator) Destroy an acceleration structure object.static voidvkGetAccelerationStructureBuildSizesKHR(org.lwjgl.vulkan.VkDevice device, int buildType, VkAccelerationStructureBuildGeometryInfoKHR pBuildInfo, int @Nullable [] pMaxPrimitiveCounts, VkAccelerationStructureBuildSizesInfoKHR pSizeInfo) Array version of:GetAccelerationStructureBuildSizesKHRstatic voidvkGetAccelerationStructureBuildSizesKHR(org.lwjgl.vulkan.VkDevice device, int buildType, VkAccelerationStructureBuildGeometryInfoKHR pBuildInfo, @Nullable IntBuffer pMaxPrimitiveCounts, VkAccelerationStructureBuildSizesInfoKHR pSizeInfo) Retrieve the required size for an acceleration structure.static longvkGetAccelerationStructureDeviceAddressKHR(org.lwjgl.vulkan.VkDevice device, VkAccelerationStructureDeviceAddressInfoKHR pInfo) Query an address of an acceleration structure.static voidvkGetDeviceAccelerationStructureCompatibilityKHR(org.lwjgl.vulkan.VkDevice device, VkAccelerationStructureVersionInfoKHR pVersionInfo, int[] pCompatibility) Array version of:GetDeviceAccelerationStructureCompatibilityKHRstatic voidvkGetDeviceAccelerationStructureCompatibilityKHR(org.lwjgl.vulkan.VkDevice device, VkAccelerationStructureVersionInfoKHR pVersionInfo, IntBuffer pCompatibility) Check if a serialized acceleration structure is compatible with the current device.static intvkWriteAccelerationStructuresPropertiesKHR(org.lwjgl.vulkan.VkDevice device, long[] pAccelerationStructures, int queryType, ByteBuffer pData, long stride) Array version of:WriteAccelerationStructuresPropertiesKHRstatic intvkWriteAccelerationStructuresPropertiesKHR(org.lwjgl.vulkan.VkDevice device, LongBuffer pAccelerationStructures, int queryType, ByteBuffer pData, long stride) Query acceleration structure meta-data on the host.
-
Field Details
-
VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION
public static final int VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSIONThe extension specification version.- See Also:
-
VK_KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME
The extension name.- See Also:
-
VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR
public static final int VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHRExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHRSTRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHRSTRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHRSTRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR
- See Also:
-
VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR
public static final int VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHRExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHRSTRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHRSTRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHRSTRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR
- See Also:
-
VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR
public static final int VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHRExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHRSTRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHRSTRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHRSTRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR
- See Also:
-
VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR
public static final int VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHRExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHRSTRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHRSTRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHRSTRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR
- See Also:
-
VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR
public static final int VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHRExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHRSTRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHRSTRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHRSTRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR
- See Also:
-
VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR
public static final int VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHRExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHRSTRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHRSTRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHRSTRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR
- See Also:
-
VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR
public static final int VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHRExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHRSTRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHRSTRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHRSTRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR
- See Also:
-
VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR
public static final int VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHRExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHRSTRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHRSTRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHRSTRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR
- See Also:
-
VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR
public static final int VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHRExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHRSTRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHRSTRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHRSTRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR
- See Also:
-
VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR
public static final int VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHRExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHRSTRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHRSTRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHRSTRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR
- See Also:
-
VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR
public static final int VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHRExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHRSTRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHRSTRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHRSTRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR
- See Also:
-
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR
public static final int VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHRExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHRSTRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHRSTRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHRSTRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR
- See Also:
-
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR
public static final int VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHRExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHRSTRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHRSTRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHRSTRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR
- See Also:
-
VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR
public static final int VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHRExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHRSTRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHRSTRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHRSTRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR
- See Also:
-
VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR
public static final int VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHRExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHRSTRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHRSTRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHRSTRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR
- See Also:
-
VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR
public static final int VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHRExtendsVkPipelineStageFlagBits.- See Also:
-
VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR
public static final int VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHRExtendsVkDescriptorType.- See Also:
-
VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR
public static final int VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHRExtendsVkAccessFlagBits.Enum values:
- See Also:
-
VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR
public static final int VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHRExtendsVkAccessFlagBits.Enum values:
- See Also:
-
VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR
public static final int VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHRExtendsVkQueryType.Enum values:
- See Also:
-
VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR
public static final int VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHRExtendsVkQueryType.Enum values:
- See Also:
-
VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR
public static final int VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHRExtendsVkObjectType.- See Also:
-
VK_INDEX_TYPE_NONE_KHR
public static final int VK_INDEX_TYPE_NONE_KHRExtendsVkIndexType.- See Also:
-
VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR
public static final int VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHRExtendsVkFormatFeatureFlagBits.- See Also:
-
VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR
public static final int VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHRExtendsVkBufferUsageFlagBits.Enum values:
- See Also:
-
VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR
public static final int VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHRExtendsVkBufferUsageFlagBits.Enum values:
- See Also:
-
VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR
public static final int VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHRExtendsVkCopyAccelerationStructureModeKHR.Enum values:
- See Also:
-
VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR
public static final int VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHRExtendsVkCopyAccelerationStructureModeKHR.Enum values:
- See Also:
-
VK_FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR
public static final long VK_FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHRExtendsVkFormatFeatureFlagBits2.- See Also:
-
VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT
public static final int VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXTExtendsVkDebugReportObjectTypeEXT.- See Also:
-
VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR
public static final int VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHRVkAccelerationStructureTypeKHR - Type of acceleration structureDescription
ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHRis a top-level acceleration structure containing instance data referring to bottom-level acceleration structures.ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHRis a bottom-level acceleration structure containing the AABBs or geometry to be intersected.ACCELERATION_STRUCTURE_TYPE_GENERIC_KHRis an acceleration structure whose type is determined at build time used for special circumstances. In these cases, the acceleration structure type is not known at creation time, but must be specified at build time as either top or bottom.
See Also
VkAccelerationStructureBuildGeometryInfoKHR,VkAccelerationStructureCreateInfoKHR,VkAccelerationStructureInfoNV- See Also:
-
VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR
public static final int VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHRVkAccelerationStructureTypeKHR - Type of acceleration structureDescription
ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHRis a top-level acceleration structure containing instance data referring to bottom-level acceleration structures.ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHRis a bottom-level acceleration structure containing the AABBs or geometry to be intersected.ACCELERATION_STRUCTURE_TYPE_GENERIC_KHRis an acceleration structure whose type is determined at build time used for special circumstances. In these cases, the acceleration structure type is not known at creation time, but must be specified at build time as either top or bottom.
See Also
VkAccelerationStructureBuildGeometryInfoKHR,VkAccelerationStructureCreateInfoKHR,VkAccelerationStructureInfoNV- See Also:
-
VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR
public static final int VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHRVkAccelerationStructureTypeKHR - Type of acceleration structureDescription
ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHRis a top-level acceleration structure containing instance data referring to bottom-level acceleration structures.ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHRis a bottom-level acceleration structure containing the AABBs or geometry to be intersected.ACCELERATION_STRUCTURE_TYPE_GENERIC_KHRis an acceleration structure whose type is determined at build time used for special circumstances. In these cases, the acceleration structure type is not known at creation time, but must be specified at build time as either top or bottom.
See Also
VkAccelerationStructureBuildGeometryInfoKHR,VkAccelerationStructureCreateInfoKHR,VkAccelerationStructureInfoNV- See Also:
-
VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR
public static final int VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHRVkBuildAccelerationStructureFlagBitsKHR - Bitmask specifying additional parameters for acceleration structure buildsDescription
BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHRspecifies that the specified acceleration structure can be updated with amodeofBUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHRinVkAccelerationStructureBuildGeometryInfoKHRor anupdateofTRUEinCmdBuildAccelerationStructureNV.BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHRspecifies that the specified acceleration structure can act as the source for a copy acceleration structure command withmodeofCOPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHRto produce a compacted acceleration structure.BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHRspecifies that the given acceleration structure build should prioritize trace performance over build time.BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHRspecifies that the given acceleration structure build should prioritize build time over trace performance.BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHRspecifies that this acceleration structure should minimize the size of the scratch memory and the final result acceleration structure, potentially at the expense of build time or trace performance.BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXTspecifies that the opacity micromaps associated with the specified acceleration structure may change with an acceleration structure update.BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXTspecifies that the data of the opacity micromaps associated with the specified acceleration structure may change with an acceleration structure update.BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXTspecifies that the specified acceleration structure may be referenced in an instance withGEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXTset.BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_KHRspecifies that the specified acceleration structure can be used when fetching the vertex positions of a hit triangle.BUILD_ACCELERATION_STRUCTURE_ALLOW_DISPLACEMENT_MICROMAP_UPDATE_NVspecifies that the displacement micromaps associated with the specified acceleration structure may change with an acceleration structure update.
Note
BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHRandBUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHRmay take more time and memory than a normal build, and so should only be used when those features are needed.Note
BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHRandBUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHRare allowed to be used together. In that case, the result of the compaction copy is used as the source of a build withmodeofBUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHRto perform the compacted update.- See Also:
-
VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR
public static final int VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHRVkBuildAccelerationStructureFlagBitsKHR - Bitmask specifying additional parameters for acceleration structure buildsDescription
BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHRspecifies that the specified acceleration structure can be updated with amodeofBUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHRinVkAccelerationStructureBuildGeometryInfoKHRor anupdateofTRUEinCmdBuildAccelerationStructureNV.BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHRspecifies that the specified acceleration structure can act as the source for a copy acceleration structure command withmodeofCOPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHRto produce a compacted acceleration structure.BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHRspecifies that the given acceleration structure build should prioritize trace performance over build time.BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHRspecifies that the given acceleration structure build should prioritize build time over trace performance.BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHRspecifies that this acceleration structure should minimize the size of the scratch memory and the final result acceleration structure, potentially at the expense of build time or trace performance.BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXTspecifies that the opacity micromaps associated with the specified acceleration structure may change with an acceleration structure update.BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXTspecifies that the data of the opacity micromaps associated with the specified acceleration structure may change with an acceleration structure update.BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXTspecifies that the specified acceleration structure may be referenced in an instance withGEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXTset.BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_KHRspecifies that the specified acceleration structure can be used when fetching the vertex positions of a hit triangle.BUILD_ACCELERATION_STRUCTURE_ALLOW_DISPLACEMENT_MICROMAP_UPDATE_NVspecifies that the displacement micromaps associated with the specified acceleration structure may change with an acceleration structure update.
Note
BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHRandBUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHRmay take more time and memory than a normal build, and so should only be used when those features are needed.Note
BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHRandBUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHRare allowed to be used together. In that case, the result of the compaction copy is used as the source of a build withmodeofBUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHRto perform the compacted update.- See Also:
-
VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR
public static final int VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHRVkBuildAccelerationStructureFlagBitsKHR - Bitmask specifying additional parameters for acceleration structure buildsDescription
BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHRspecifies that the specified acceleration structure can be updated with amodeofBUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHRinVkAccelerationStructureBuildGeometryInfoKHRor anupdateofTRUEinCmdBuildAccelerationStructureNV.BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHRspecifies that the specified acceleration structure can act as the source for a copy acceleration structure command withmodeofCOPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHRto produce a compacted acceleration structure.BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHRspecifies that the given acceleration structure build should prioritize trace performance over build time.BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHRspecifies that the given acceleration structure build should prioritize build time over trace performance.BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHRspecifies that this acceleration structure should minimize the size of the scratch memory and the final result acceleration structure, potentially at the expense of build time or trace performance.BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXTspecifies that the opacity micromaps associated with the specified acceleration structure may change with an acceleration structure update.BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXTspecifies that the data of the opacity micromaps associated with the specified acceleration structure may change with an acceleration structure update.BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXTspecifies that the specified acceleration structure may be referenced in an instance withGEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXTset.BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_KHRspecifies that the specified acceleration structure can be used when fetching the vertex positions of a hit triangle.BUILD_ACCELERATION_STRUCTURE_ALLOW_DISPLACEMENT_MICROMAP_UPDATE_NVspecifies that the displacement micromaps associated with the specified acceleration structure may change with an acceleration structure update.
Note
BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHRandBUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHRmay take more time and memory than a normal build, and so should only be used when those features are needed.Note
BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHRandBUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHRare allowed to be used together. In that case, the result of the compaction copy is used as the source of a build withmodeofBUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHRto perform the compacted update.- See Also:
-
VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR
public static final int VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHRVkBuildAccelerationStructureFlagBitsKHR - Bitmask specifying additional parameters for acceleration structure buildsDescription
BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHRspecifies that the specified acceleration structure can be updated with amodeofBUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHRinVkAccelerationStructureBuildGeometryInfoKHRor anupdateofTRUEinCmdBuildAccelerationStructureNV.BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHRspecifies that the specified acceleration structure can act as the source for a copy acceleration structure command withmodeofCOPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHRto produce a compacted acceleration structure.BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHRspecifies that the given acceleration structure build should prioritize trace performance over build time.BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHRspecifies that the given acceleration structure build should prioritize build time over trace performance.BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHRspecifies that this acceleration structure should minimize the size of the scratch memory and the final result acceleration structure, potentially at the expense of build time or trace performance.BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXTspecifies that the opacity micromaps associated with the specified acceleration structure may change with an acceleration structure update.BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXTspecifies that the data of the opacity micromaps associated with the specified acceleration structure may change with an acceleration structure update.BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXTspecifies that the specified acceleration structure may be referenced in an instance withGEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXTset.BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_KHRspecifies that the specified acceleration structure can be used when fetching the vertex positions of a hit triangle.BUILD_ACCELERATION_STRUCTURE_ALLOW_DISPLACEMENT_MICROMAP_UPDATE_NVspecifies that the displacement micromaps associated with the specified acceleration structure may change with an acceleration structure update.
Note
BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHRandBUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHRmay take more time and memory than a normal build, and so should only be used when those features are needed.Note
BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHRandBUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHRare allowed to be used together. In that case, the result of the compaction copy is used as the source of a build withmodeofBUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHRto perform the compacted update.- See Also:
-
VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR
public static final int VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHRVkBuildAccelerationStructureFlagBitsKHR - Bitmask specifying additional parameters for acceleration structure buildsDescription
BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHRspecifies that the specified acceleration structure can be updated with amodeofBUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHRinVkAccelerationStructureBuildGeometryInfoKHRor anupdateofTRUEinCmdBuildAccelerationStructureNV.BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHRspecifies that the specified acceleration structure can act as the source for a copy acceleration structure command withmodeofCOPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHRto produce a compacted acceleration structure.BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHRspecifies that the given acceleration structure build should prioritize trace performance over build time.BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHRspecifies that the given acceleration structure build should prioritize build time over trace performance.BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHRspecifies that this acceleration structure should minimize the size of the scratch memory and the final result acceleration structure, potentially at the expense of build time or trace performance.BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXTspecifies that the opacity micromaps associated with the specified acceleration structure may change with an acceleration structure update.BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXTspecifies that the data of the opacity micromaps associated with the specified acceleration structure may change with an acceleration structure update.BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXTspecifies that the specified acceleration structure may be referenced in an instance withGEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXTset.BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_KHRspecifies that the specified acceleration structure can be used when fetching the vertex positions of a hit triangle.BUILD_ACCELERATION_STRUCTURE_ALLOW_DISPLACEMENT_MICROMAP_UPDATE_NVspecifies that the displacement micromaps associated with the specified acceleration structure may change with an acceleration structure update.
Note
BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHRandBUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHRmay take more time and memory than a normal build, and so should only be used when those features are needed.Note
BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHRandBUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHRare allowed to be used together. In that case, the result of the compaction copy is used as the source of a build withmodeofBUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHRto perform the compacted update.- See Also:
-
VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR
public static final int VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHRVkBuildAccelerationStructureModeKHR - Enum specifying the type of build operation to performDescription
BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHRspecifies that the destination acceleration structure will be built using the specified geometries.BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHRspecifies that the destination acceleration structure will be built using data in a source acceleration structure, updated by the specified geometries.
See Also
- See Also:
-
VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR
public static final int VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHRVkBuildAccelerationStructureModeKHR - Enum specifying the type of build operation to performDescription
BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHRspecifies that the destination acceleration structure will be built using the specified geometries.BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHRspecifies that the destination acceleration structure will be built using data in a source acceleration structure, updated by the specified geometries.
See Also
- See Also:
-
VK_GEOMETRY_TYPE_TRIANGLES_KHR
public static final int VK_GEOMETRY_TYPE_TRIANGLES_KHRVkGeometryTypeKHR - Enum specifying which type of geometry is providedDescription
GEOMETRY_TYPE_TRIANGLES_KHRspecifies a geometry type consisting of triangles.GEOMETRY_TYPE_AABBS_KHRspecifies a geometry type consisting of axis-aligned bounding boxes.GEOMETRY_TYPE_INSTANCES_KHRspecifies a geometry type consisting of acceleration structure instances.
See Also
- See Also:
-
VK_GEOMETRY_TYPE_AABBS_KHR
public static final int VK_GEOMETRY_TYPE_AABBS_KHRVkGeometryTypeKHR - Enum specifying which type of geometry is providedDescription
GEOMETRY_TYPE_TRIANGLES_KHRspecifies a geometry type consisting of triangles.GEOMETRY_TYPE_AABBS_KHRspecifies a geometry type consisting of axis-aligned bounding boxes.GEOMETRY_TYPE_INSTANCES_KHRspecifies a geometry type consisting of acceleration structure instances.
See Also
- See Also:
-
VK_GEOMETRY_TYPE_INSTANCES_KHR
public static final int VK_GEOMETRY_TYPE_INSTANCES_KHRVkGeometryTypeKHR - Enum specifying which type of geometry is providedDescription
GEOMETRY_TYPE_TRIANGLES_KHRspecifies a geometry type consisting of triangles.GEOMETRY_TYPE_AABBS_KHRspecifies a geometry type consisting of axis-aligned bounding boxes.GEOMETRY_TYPE_INSTANCES_KHRspecifies a geometry type consisting of acceleration structure instances.
See Also
- See Also:
-
VK_GEOMETRY_OPAQUE_BIT_KHR
public static final int VK_GEOMETRY_OPAQUE_BIT_KHRVkGeometryFlagBitsKHR - Bitmask specifying additional parameters for a geometryDescription
GEOMETRY_OPAQUE_BIT_KHRspecifies that this geometry does not invoke the any-hit shaders even if present in a hit group.GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHRspecifies that the implementation must only call the any-hit shader a single time for each primitive in this geometry. If this bit is absent an implementation may invoke the any-hit shader more than once for this geometry.
- See Also:
-
VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR
public static final int VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHRVkGeometryFlagBitsKHR - Bitmask specifying additional parameters for a geometryDescription
GEOMETRY_OPAQUE_BIT_KHRspecifies that this geometry does not invoke the any-hit shaders even if present in a hit group.GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHRspecifies that the implementation must only call the any-hit shader a single time for each primitive in this geometry. If this bit is absent an implementation may invoke the any-hit shader more than once for this geometry.
- See Also:
-
VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR
public static final int VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHRVkAccelerationStructureBuildTypeKHR - Acceleration structure build typeDescription
ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHRrequests the memory requirement for operations performed by the host.ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHRrequests the memory requirement for operations performed by the device.ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHRrequests the memory requirement for operations performed by either the host, or the device.
See Also
GetAccelerationStructureBuildSizesKHR,GetMicromapBuildSizesEXT- See Also:
-
VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR
public static final int VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHRVkAccelerationStructureBuildTypeKHR - Acceleration structure build typeDescription
ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHRrequests the memory requirement for operations performed by the host.ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHRrequests the memory requirement for operations performed by the device.ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHRrequests the memory requirement for operations performed by either the host, or the device.
See Also
GetAccelerationStructureBuildSizesKHR,GetMicromapBuildSizesEXT- See Also:
-
VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR
public static final int VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHRVkAccelerationStructureBuildTypeKHR - Acceleration structure build typeDescription
ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHRrequests the memory requirement for operations performed by the host.ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHRrequests the memory requirement for operations performed by the device.ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHRrequests the memory requirement for operations performed by either the host, or the device.
See Also
GetAccelerationStructureBuildSizesKHR,GetMicromapBuildSizesEXT- See Also:
-
VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR
public static final int VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHRVkGeometryInstanceFlagBitsKHR - Instance flag bitsDescription
GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHRdisables face culling for this instance.GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHRspecifies that the facing determination for geometry in this instance is inverted. Because the facing is determined in object space, an instance transform does not change the winding, but a geometry transform does.GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHRcauses this instance to act as thoughGEOMETRY_OPAQUE_BIT_KHRwere specified on all geometries referenced by this instance. This behavior can be overridden by the SPIR-VNoOpaqueKHRray flag.GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHRcauses this instance to act as thoughGEOMETRY_OPAQUE_BIT_KHRwere not specified on all geometries referenced by this instance. This behavior can be overridden by the SPIR-VOpaqueKHRray flag.
GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHRandGEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHRmust not be used in the same flag.Enum values:
- See Also:
-
VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR
public static final int VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHRVkGeometryInstanceFlagBitsKHR - Instance flag bitsDescription
GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHRdisables face culling for this instance.GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHRspecifies that the facing determination for geometry in this instance is inverted. Because the facing is determined in object space, an instance transform does not change the winding, but a geometry transform does.GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHRcauses this instance to act as thoughGEOMETRY_OPAQUE_BIT_KHRwere specified on all geometries referenced by this instance. This behavior can be overridden by the SPIR-VNoOpaqueKHRray flag.GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHRcauses this instance to act as thoughGEOMETRY_OPAQUE_BIT_KHRwere not specified on all geometries referenced by this instance. This behavior can be overridden by the SPIR-VOpaqueKHRray flag.
GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHRandGEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHRmust not be used in the same flag.Enum values:
- See Also:
-
VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR
public static final int VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHRVkGeometryInstanceFlagBitsKHR - Instance flag bitsDescription
GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHRdisables face culling for this instance.GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHRspecifies that the facing determination for geometry in this instance is inverted. Because the facing is determined in object space, an instance transform does not change the winding, but a geometry transform does.GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHRcauses this instance to act as thoughGEOMETRY_OPAQUE_BIT_KHRwere specified on all geometries referenced by this instance. This behavior can be overridden by the SPIR-VNoOpaqueKHRray flag.GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHRcauses this instance to act as thoughGEOMETRY_OPAQUE_BIT_KHRwere not specified on all geometries referenced by this instance. This behavior can be overridden by the SPIR-VOpaqueKHRray flag.
GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHRandGEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHRmust not be used in the same flag.Enum values:
- See Also:
-
VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR
public static final int VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHRVkGeometryInstanceFlagBitsKHR - Instance flag bitsDescription
GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHRdisables face culling for this instance.GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHRspecifies that the facing determination for geometry in this instance is inverted. Because the facing is determined in object space, an instance transform does not change the winding, but a geometry transform does.GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHRcauses this instance to act as thoughGEOMETRY_OPAQUE_BIT_KHRwere specified on all geometries referenced by this instance. This behavior can be overridden by the SPIR-VNoOpaqueKHRray flag.GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHRcauses this instance to act as thoughGEOMETRY_OPAQUE_BIT_KHRwere not specified on all geometries referenced by this instance. This behavior can be overridden by the SPIR-VOpaqueKHRray flag.
GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHRandGEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHRmust not be used in the same flag.Enum values:
- See Also:
-
VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR
public static final int VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHRVkGeometryInstanceFlagBitsKHR - Instance flag bitsDescription
GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHRdisables face culling for this instance.GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHRspecifies that the facing determination for geometry in this instance is inverted. Because the facing is determined in object space, an instance transform does not change the winding, but a geometry transform does.GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHRcauses this instance to act as thoughGEOMETRY_OPAQUE_BIT_KHRwere specified on all geometries referenced by this instance. This behavior can be overridden by the SPIR-VNoOpaqueKHRray flag.GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHRcauses this instance to act as thoughGEOMETRY_OPAQUE_BIT_KHRwere not specified on all geometries referenced by this instance. This behavior can be overridden by the SPIR-VOpaqueKHRray flag.
GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHRandGEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHRmust not be used in the same flag.Enum values:
- See Also:
-
VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR
public static final int VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHRVkAccelerationStructureCreateFlagBitsKHR - Bitmask specifying additional creation parameters for acceleration structureDescription
ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHRspecifies that the acceleration structure’s address can be saved and reused on a subsequent run.ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXTspecifies that the acceleration structure can be used with descriptor buffers when capturing and replaying (e.g. for trace capture and replay), seeVkOpaqueCaptureDescriptorDataCreateInfoEXTfor more detail.ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NVspecifies that the acceleration structure will be used with motion information, seeVkAccelerationStructureMotionInfoNVfor more detail.
- See Also:
-
VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR
public static final int VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHRVkCopyAccelerationStructureModeKHR - Acceleration structure copy modeDescription
COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHRcreates a direct copy of the acceleration structure specified insrcinto the one specified bydst. Thedstacceleration structure must have been created with the same parameters assrc. Ifsrccontains references to other acceleration structures,dstwill reference the same acceleration structures.COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHRcreates a more compact version of an acceleration structuresrcintodst. The acceleration structuredstmust have been created with a size at least as large as that returned byCmdWriteAccelerationStructuresPropertiesNV,CmdWriteAccelerationStructuresPropertiesKHR, orWriteAccelerationStructuresPropertiesKHRafter the build of the acceleration structure specified bysrc. Ifsrccontains references to other acceleration structures,dstwill reference the same acceleration structures.COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHRserializes the acceleration structure to a semi-opaque format which can be reloaded on a compatible implementation.COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHRdeserializes the semi-opaque serialization format in the buffer to the acceleration structure.
See Also
VkCopyAccelerationStructureInfoKHR,VkCopyAccelerationStructureToMemoryInfoKHR,VkCopyMemoryToAccelerationStructureInfoKHR,CmdCopyAccelerationStructureNV- See Also:
-
VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR
public static final int VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHRVkCopyAccelerationStructureModeKHR - Acceleration structure copy modeDescription
COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHRcreates a direct copy of the acceleration structure specified insrcinto the one specified bydst. Thedstacceleration structure must have been created with the same parameters assrc. Ifsrccontains references to other acceleration structures,dstwill reference the same acceleration structures.COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHRcreates a more compact version of an acceleration structuresrcintodst. The acceleration structuredstmust have been created with a size at least as large as that returned byCmdWriteAccelerationStructuresPropertiesNV,CmdWriteAccelerationStructuresPropertiesKHR, orWriteAccelerationStructuresPropertiesKHRafter the build of the acceleration structure specified bysrc. Ifsrccontains references to other acceleration structures,dstwill reference the same acceleration structures.COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHRserializes the acceleration structure to a semi-opaque format which can be reloaded on a compatible implementation.COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHRdeserializes the semi-opaque serialization format in the buffer to the acceleration structure.
See Also
VkCopyAccelerationStructureInfoKHR,VkCopyAccelerationStructureToMemoryInfoKHR,VkCopyMemoryToAccelerationStructureInfoKHR,CmdCopyAccelerationStructureNV- See Also:
-
VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR
public static final int VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHRVkAccelerationStructureCompatibilityKHR - Acceleration structure compatibilityDescription
ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHRif thepVersionDataversion acceleration structure is compatible withdevice.ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHRif thepVersionDataversion acceleration structure is not compatible withdevice.
See Also
GetDeviceAccelerationStructureCompatibilityKHR,GetDeviceMicromapCompatibilityEXT- See Also:
-
VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR
public static final int VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHRVkAccelerationStructureCompatibilityKHR - Acceleration structure compatibilityDescription
ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHRif thepVersionDataversion acceleration structure is compatible withdevice.ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHRif thepVersionDataversion acceleration structure is not compatible withdevice.
See Also
GetDeviceAccelerationStructureCompatibilityKHR,GetDeviceMicromapCompatibilityEXT- See Also:
-
-
Method Details
-
nvkCreateAccelerationStructureKHR
public static int nvkCreateAccelerationStructureKHR(org.lwjgl.vulkan.VkDevice device, long pCreateInfo, long pAllocator, long pAccelerationStructure) Unsafe version of:CreateAccelerationStructureKHR -
vkCreateAccelerationStructureKHR
public static int vkCreateAccelerationStructureKHR(org.lwjgl.vulkan.VkDevice device, VkAccelerationStructureCreateInfoKHR pCreateInfo, @Nullable VkAllocationCallbacks pAllocator, LongBuffer pAccelerationStructure) Create a new acceleration structure object.C Specification
To create an acceleration structure, call:
VkResult vkCreateAccelerationStructureKHR( VkDevice device, const VkAccelerationStructureCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureKHR* pAccelerationStructure);Description
Similar to other objects in Vulkan, the acceleration structure creation merely creates an object with a specific “
shape”. The type and quantity of geometry that can be built into an acceleration structure is determined by the parameters ofVkAccelerationStructureCreateInfoKHR.The acceleration structure data is stored in the object referred to by
VkAccelerationStructureCreateInfoKHR::buffer. Once memory has been bound to that buffer, it must be populated by acceleration structure build or acceleration structure copy commands such asCmdBuildAccelerationStructuresKHR,BuildAccelerationStructuresKHR,CmdCopyAccelerationStructureKHR, andCopyAccelerationStructureKHR.Note
The expected usage for a trace capture/replay tool is that it will serialize and later deserialize the acceleration structure data using acceleration structure copy commands. During capture the tool will use
CopyAccelerationStructureToMemoryKHRorCmdCopyAccelerationStructureToMemoryKHRwith amodeofCOPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR, andCopyMemoryToAccelerationStructureKHRorCmdCopyMemoryToAccelerationStructureKHRwith amodeofCOPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHRduring replay.Note
Memory does not need to be bound to the underlying buffer when
CreateAccelerationStructureKHRis called.The input buffers passed to acceleration structure build commands will be referenced by the implementation for the duration of the command. After the command completes, the acceleration structure may hold a reference to any acceleration structure specified by an active instance contained therein. Apart from this referencing, acceleration structures must be fully self-contained. The application can reuse or free any memory which was used by the command as an input or as scratch without affecting the results of ray traversal.
Valid Usage
- The
VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructurefeature must be enabled - If
VkAccelerationStructureCreateInfoKHR::deviceAddressis not zero, theaccelerationStructureCaptureReplayfeature must be enabled - If
devicewas created with multiple physical devices, then thebufferDeviceAddressMultiDevicefeature must be enabled
Valid Usage (Implicit)
devicemust be a validVkDevicehandlepCreateInfomust be a valid pointer to a validVkAccelerationStructureCreateInfoKHRstructure- If
pAllocatoris notNULL,pAllocatormust be a valid pointer to a validVkAllocationCallbacksstructure pAccelerationStructuremust be a valid pointer to aVkAccelerationStructureKHRhandle
Return Codes
- On success, this command returns
- On failure, this command returns
See Also
- Parameters:
device- the logical device that creates the acceleration structure object.pCreateInfo- a pointer to aVkAccelerationStructureCreateInfoKHRstructure containing parameters affecting creation of the acceleration structure.pAllocator- controls host memory allocation as described in the Memory Allocation chapter.pAccelerationStructure- a pointer to aVkAccelerationStructureKHRhandle in which the resulting acceleration structure object is returned.
- The
-
nvkDestroyAccelerationStructureKHR
public static void nvkDestroyAccelerationStructureKHR(org.lwjgl.vulkan.VkDevice device, long accelerationStructure, long pAllocator) Unsafe version of:DestroyAccelerationStructureKHR -
vkDestroyAccelerationStructureKHR
public static void vkDestroyAccelerationStructureKHR(org.lwjgl.vulkan.VkDevice device, long accelerationStructure, @Nullable VkAllocationCallbacks pAllocator) Destroy an acceleration structure object.C Specification
To destroy an acceleration structure, call:
void vkDestroyAccelerationStructureKHR( VkDevice device, VkAccelerationStructureKHR accelerationStructure, const VkAllocationCallbacks* pAllocator);Valid Usage
- The
VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructurefeature must be enabled - All submitted commands that refer to
accelerationStructuremust have completed execution - If
VkAllocationCallbackswere provided whenaccelerationStructurewas created, a compatible set of callbacks must be provided here - If no
VkAllocationCallbackswere provided whenaccelerationStructurewas created,pAllocatormust beNULL
Valid Usage (Implicit)
devicemust be a validVkDevicehandle- If
accelerationStructureis notNULL_HANDLE,accelerationStructuremust be a validVkAccelerationStructureKHRhandle - If
pAllocatoris notNULL,pAllocatormust be a valid pointer to a validVkAllocationCallbacksstructure - If
accelerationStructureis a valid handle, it must have been created, allocated, or retrieved fromdevice
Host Synchronization
- Host access to
accelerationStructuremust be externally synchronized
See Also
- Parameters:
device- the logical device that destroys the acceleration structure.accelerationStructure- the acceleration structure to destroy.pAllocator- controls host memory allocation as described in the Memory Allocation chapter.
- The
-
nvkCmdBuildAccelerationStructuresKHR
public static void nvkCmdBuildAccelerationStructuresKHR(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, int infoCount, long pInfos, long ppBuildRangeInfos) Unsafe version of:CmdBuildAccelerationStructuresKHR- Parameters:
infoCount- the number of acceleration structures to build. It specifies the number of thepInfosstructures andppBuildRangeInfospointers that must be provided.
-
vkCmdBuildAccelerationStructuresKHR
public static void vkCmdBuildAccelerationStructuresKHR(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, VkAccelerationStructureBuildGeometryInfoKHR.Buffer pInfos, org.lwjgl.PointerBuffer ppBuildRangeInfos) Build an acceleration structure.C Specification
To build acceleration structures call:
void vkCmdBuildAccelerationStructuresKHR( VkCommandBuffer commandBuffer, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos);Description
The
vkCmdBuildAccelerationStructuresKHRcommand provides the ability to initiate multiple acceleration structures builds, however there is no ordering or synchronization implied between any of the individual acceleration structure builds.Note
This means that an application cannot build a top-level acceleration structure in the same
CmdBuildAccelerationStructuresKHRcall as the associated bottom-level or instance acceleration structures are being built. There also cannot be any memory aliasing between any acceleration structure memories or scratch memories being used by any of the builds.Accesses to the acceleration structure scratch buffers as identified by the
VkAccelerationStructureBuildGeometryInfoKHR::scratchDatabuffer device addresses must be synchronized with thePIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHRpipeline stage and an access type of (ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR|ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR). Accesses to eachVkAccelerationStructureBuildGeometryInfoKHR::srcAccelerationStructureandVkAccelerationStructureBuildGeometryInfoKHR::dstAccelerationStructuremust be synchronized with thePIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHRpipeline stage and an access type ofACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHRorACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR, as appropriate.Accesses to other input buffers as identified by any used values of
VkAccelerationStructureGeometryMotionTrianglesDataNV::vertexData,VkAccelerationStructureGeometryTrianglesDataKHR::vertexData,VkAccelerationStructureGeometryTrianglesDataKHR::indexData,VkAccelerationStructureGeometryTrianglesDataKHR::transformData,VkAccelerationStructureGeometryAabbsDataKHR::data, andVkAccelerationStructureGeometryInstancesDataKHR::datamust be synchronized with thePIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHRpipeline stage and an access type ofACCESS_SHADER_READ_BIT.Valid Usage
- The
VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructurefeature must be enabled
- The
modemember of each element ofpInfosmust be a validVkBuildAccelerationStructureModeKHRvalue - If the
srcAccelerationStructuremember of any element ofpInfosis notNULL_HANDLE, thesrcAccelerationStructuremember must be a validVkAccelerationStructureKHRhandle - For each element of
pInfos, if itsmodemember isBUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, itssrcAccelerationStructuremember must not beNULL_HANDLE - The
srcAccelerationStructuremember of any element ofpInfosmust not be the same acceleration structure as thedstAccelerationStructuremember of any other element ofpInfos - The
dstAccelerationStructuremember of any element ofpInfosmust not be the same acceleration structure as thedstAccelerationStructuremember of any other element ofpInfos - The
dstAccelerationStructuremember of any element ofpInfosmust be a validVkAccelerationStructureKHRhandle - For each element of
pInfos, if itstypemember isACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR, itsdstAccelerationStructuremember must have been created with a value ofVkAccelerationStructureCreateInfoKHR::typeequal to eitherACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHRorACCELERATION_STRUCTURE_TYPE_GENERIC_KHR - For each element of
pInfos, if itstypemember isACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR, itsdstAccelerationStructuremember must have been created with a value ofVkAccelerationStructureCreateInfoKHR::typeequal to eitherACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHRorACCELERATION_STRUCTURE_TYPE_GENERIC_KHR - For each element of
pInfos, if itsmodemember isBUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, inactive primitives in itssrcAccelerationStructuremember must not be made active - For each element of
pInfos, if itsmodemember isBUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, active primitives in itssrcAccelerationStructuremember must not be made inactive - The
dstAccelerationStructuremember of any element ofpInfosmust not be referenced by thegeometry.instances.datamember of any element ofpGeometriesorppGeometrieswith ageometryTypeofGEOMETRY_TYPE_INSTANCES_KHRin any other element ofpInfos - The range of memory backing the
dstAccelerationStructuremember of any element ofpInfosthat is accessed by this command must not overlap the memory backing thesrcAccelerationStructuremember of any other element ofpInfoswith amodeequal toBUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, which is accessed by this command - The range of memory backing the
dstAccelerationStructuremember of any element ofpInfosthat is accessed by this command must not overlap the memory backing thedstAccelerationStructuremember of any other element ofpInfos, which is accessed by this command - The range of memory backing the
dstAccelerationStructuremember of any element ofpInfosthat is accessed by this command must not overlap the memory backing thescratchDatamember of any element ofpInfos(including the same element), which is accessed by this command - The range of memory backing the
scratchDatamember of any element ofpInfosthat is accessed by this command must not overlap the memory backing thescratchDatamember of any other element ofpInfos, which is accessed by this command - The range of memory backing the
scratchDatamember of any element ofpInfosthat is accessed by this command must not overlap the memory backing thesrcAccelerationStructuremember of any element ofpInfoswith amodeequal toBUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR(including the same element), which is accessed by this command - The range of memory backing the
dstAccelerationStructuremember of any element ofpInfosthat is accessed by this command must not overlap the memory backing any acceleration structure referenced by thegeometry.instances.datamember of any element ofpGeometriesorppGeometrieswith ageometryTypeofGEOMETRY_TYPE_INSTANCES_KHRin any other element ofpInfos, which is accessed by this command - For each element of
pInfos, if itsmodemember isBUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, itssrcAccelerationStructuremember must have previously been constructed withBUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHRset inVkAccelerationStructureBuildGeometryInfoKHR::flagsin the build - For each element of
pInfos, if itsmodemember isBUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, itssrcAccelerationStructureanddstAccelerationStructuremembers must either be the sameVkAccelerationStructureKHR, or not have any memory aliasing - For each element of
pInfos, if itsmodemember isBUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, itsgeometryCountmember must have the same value which was specified whensrcAccelerationStructurewas last built - For each element of
pInfos, if itsmodemember isBUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, itsflagsmember must have the same value which was specified whensrcAccelerationStructurewas last built - For each element of
pInfos, if itsmodemember isBUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, itstypemember must have the same value which was specified whensrcAccelerationStructurewas last built - For each element of
pInfos, if itsmodemember isBUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for eachVkAccelerationStructureGeometryKHRstructure referred to by itspGeometriesorppGeometriesmembers, itsgeometryTypemember must have the same value which was specified whensrcAccelerationStructurewas last built - For each element of
pInfos, if itsmodemember isBUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for eachVkAccelerationStructureGeometryKHRstructure referred to by itspGeometriesorppGeometriesmembers, itsflagsmember must have the same value which was specified whensrcAccelerationStructurewas last built - For each element of
pInfos, if itsmodemember isBUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for eachVkAccelerationStructureGeometryKHRstructure referred to by itspGeometriesorppGeometriesmembers, ifgeometryTypeisGEOMETRY_TYPE_TRIANGLES_KHR, itsgeometry.triangles.vertexFormatmember must have the same value which was specified whensrcAccelerationStructurewas last built - For each element of
pInfos, if itsmodemember isBUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for eachVkAccelerationStructureGeometryKHRstructure referred to by itspGeometriesorppGeometriesmembers, ifgeometryTypeisGEOMETRY_TYPE_TRIANGLES_KHR, itsgeometry.triangles.maxVertexmember must have the same value which was specified whensrcAccelerationStructurewas last built - For each element of
pInfos, if itsmodemember isBUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for eachVkAccelerationStructureGeometryKHRstructure referred to by itspGeometriesorppGeometriesmembers, ifgeometryTypeisGEOMETRY_TYPE_TRIANGLES_KHR, itsgeometry.triangles.indexTypemember must have the same value which was specified whensrcAccelerationStructurewas last built - For each element of
pInfos, if itsmodemember isBUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for eachVkAccelerationStructureGeometryKHRstructure referred to by itspGeometriesorppGeometriesmembers, ifgeometryTypeisGEOMETRY_TYPE_TRIANGLES_KHR, if itsgeometry.triangles.transformDataaddress wasNULLwhensrcAccelerationStructurewas last built, then it must beNULL - For each element of
pInfos, if itsmodemember isBUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for eachVkAccelerationStructureGeometryKHRstructure referred to by itspGeometriesorppGeometriesmembers, ifgeometryTypeisGEOMETRY_TYPE_TRIANGLES_KHR, if itsgeometry.triangles.transformDataaddress was notNULLwhensrcAccelerationStructurewas last built, then it must not beNULL - For each element of
pInfos, if itsmodemember isBUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for eachVkAccelerationStructureGeometryKHRstructure referred to by itspGeometriesorppGeometriesmembers, ifgeometryTypeisGEOMETRY_TYPE_TRIANGLES_KHR, andgeometry.triangles.indexTypeis notINDEX_TYPE_NONE_KHR, then the value of each index referenced must be the same as the corresponding index value whensrcAccelerationStructurewas last built - For each element of
pInfos, if itsmodemember isBUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for eachVkAccelerationStructureGeometryKHRstructure referred to by itspGeometriesorppGeometriesmembers, theprimitiveCountmember of its correspondingVkAccelerationStructureBuildRangeInfoKHRstructure must have the same value which was specified whensrcAccelerationStructurewas last built - For each element of
pInfos[i].pGeometriesorpInfos[i].ppGeometrieswith ageometryTypeofGEOMETRY_TYPE_INSTANCES_KHR, the correspondingppBuildRangeInfos[i][j].primitiveCountmust be less than or equal toVkPhysicalDeviceAccelerationStructurePropertiesKHR::maxInstanceCount
- For each element of
pInfos, thebufferused to create itsdstAccelerationStructuremember must be bound to device memory - For each element of
pInfos, if itsmodemember isBUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHRthebufferused to create itssrcAccelerationStructuremember must be bound to device memory - For each element of
pInfos, thebufferused to create each acceleration structure referenced by thegeometry.instances.datamember of any element ofpGeometriesorppGeometrieswith ageometryTypeofGEOMETRY_TYPE_INSTANCES_KHRmust be bound to device memory - If
pInfos[i].modeisBUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR, all addresses betweenpInfos[i].scratchData.deviceAddressandpInfos[i].scratchData.deviceAddress+ N - 1 must be in the buffer device address range of the same buffer, where N is given by thebuildScratchSizemember of theVkAccelerationStructureBuildSizesInfoKHRstructure returned from a call toGetAccelerationStructureBuildSizesKHRwith an identicalVkAccelerationStructureBuildGeometryInfoKHRstructure and primitive count - If
pInfos[i].modeisBUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, all addresses betweenpInfos[i].scratchData.deviceAddressandpInfos[i].scratchData.deviceAddress+ N - 1 must be in the buffer device address range of the same buffer, where N is given by theupdateScratchSizemember of theVkAccelerationStructureBuildSizesInfoKHRstructure returned from a call toGetAccelerationStructureBuildSizesKHRwith an identicalVkAccelerationStructureBuildGeometryInfoKHRstructure and primitive count - The buffers from which the buffer device addresses for all of the
geometry.triangles.vertexData,geometry.triangles.indexData,geometry.triangles.transformData,geometry.aabbs.data, andgeometry.instances.datamembers of allpInfos[i].pGeometriesandpInfos[i].ppGeometriesare queried must have been created with theBUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHRusage flag - The buffer from which the buffer device address
pInfos[i].scratchData.deviceAddressis queried must have been created withBUFFER_USAGE_STORAGE_BUFFER_BITusage flag - For each element of
pInfos, itsscratchData.deviceAddressmember must be a valid device address obtained fromGetBufferDeviceAddress - For each element of
pInfos, ifscratchData.deviceAddressis the address of a non-sparse buffer then it must be bound completely and contiguously to a singleVkDeviceMemoryobject - For each element of
pInfos, itsscratchData.deviceAddressmember must be a multiple ofVkPhysicalDeviceAccelerationStructurePropertiesKHR::minAccelerationStructureScratchOffsetAlignment - For any element of
pInfos[i].pGeometriesorpInfos[i].ppGeometrieswith ageometryTypeofGEOMETRY_TYPE_TRIANGLES_KHR,geometry.triangles.vertexData.deviceAddressmust be a valid device address obtained fromGetBufferDeviceAddress - For any element of
pInfos[i].pGeometriesorpInfos[i].ppGeometrieswith ageometryTypeofGEOMETRY_TYPE_TRIANGLES_KHR, ifgeometry.triangles.vertexData.deviceAddressis the address of a non-sparse buffer then it must be bound completely and contiguously to a singleVkDeviceMemoryobject - For any element of
pInfos[i].pGeometriesorpInfos[i].ppGeometrieswith ageometryTypeofGEOMETRY_TYPE_TRIANGLES_KHR,geometry.triangles.vertexData.deviceAddressmust be aligned to the size in bytes of the smallest component of the format invertexFormat - For any element of
pInfos[i].pGeometriesorpInfos[i].ppGeometrieswith ageometryTypeofGEOMETRY_TYPE_TRIANGLES_KHR, ifgeometry.triangles.indexTypeis notINDEX_TYPE_NONE_KHR,geometry.triangles.indexData.deviceAddressmust be a valid device address obtained fromGetBufferDeviceAddress - For any element of
pInfos[i].pGeometriesorpInfos[i].ppGeometrieswith ageometryTypeofGEOMETRY_TYPE_TRIANGLES_KHR, ifgeometry.triangles.indexTypeis notINDEX_TYPE_NONE_KHR, ifgeometry.triangles.indexData.deviceAddressis the address of a non-sparse buffer then it must be bound completely and contiguously to a singleVkDeviceMemoryobject - For any element of
pInfos[i].pGeometriesorpInfos[i].ppGeometrieswith ageometryTypeofGEOMETRY_TYPE_TRIANGLES_KHR, and withgeometry.triangles.indexTypenot equal toINDEX_TYPE_NONE_KHR,geometry.triangles.indexData.deviceAddressmust be aligned to the size in bytes of the type inindexType - For any element of
pInfos[i].pGeometriesorpInfos[i].ppGeometrieswith ageometryTypeofGEOMETRY_TYPE_TRIANGLES_KHR, ifgeometry.triangles.transformData.deviceAddressis not 0, it must be a valid device address obtained fromGetBufferDeviceAddress - For any element of
pInfos[i].pGeometriesorpInfos[i].ppGeometrieswith ageometryTypeofGEOMETRY_TYPE_TRIANGLES_KHR, ifgeometry.triangles.transformData.deviceAddressis the address of a non-sparse buffer then it must be bound completely and contiguously to a singleVkDeviceMemoryobject - For any element of
pInfos[i].pGeometriesorpInfos[i].ppGeometrieswith ageometryTypeofGEOMETRY_TYPE_TRIANGLES_KHR, ifgeometry.triangles.transformData.deviceAddressis not 0, it must be aligned to 16 bytes - For any element of
pInfos[i].pGeometriesorpInfos[i].ppGeometrieswith ageometryTypeofGEOMETRY_TYPE_AABBS_KHR,geometry.aabbs.data.deviceAddressmust be a valid device address obtained fromGetBufferDeviceAddress - For any element of
pInfos[i].pGeometriesorpInfos[i].ppGeometrieswith ageometryTypeofGEOMETRY_TYPE_AABBS_KHR, ifgeometry.aabbs.data.deviceAddressis the address of a non-sparse buffer then it must be bound completely and contiguously to a singleVkDeviceMemoryobject - For any element of
pInfos[i].pGeometriesorpInfos[i].ppGeometrieswith ageometryTypeofGEOMETRY_TYPE_AABBS_KHR,geometry.aabbs.data.deviceAddressmust be aligned to 8 bytes - For any element of
pInfos[i].pGeometriesorpInfos[i].ppGeometrieswith ageometryTypeofGEOMETRY_TYPE_INSTANCES_KHR, ifgeometry.arrayOfPointersisFALSE,geometry.instances.data.deviceAddressmust be aligned to 16 bytes - For any element of
pInfos[i].pGeometriesorpInfos[i].ppGeometrieswith ageometryTypeofGEOMETRY_TYPE_INSTANCES_KHR, ifgeometry.arrayOfPointersisTRUE,geometry.instances.data.deviceAddressmust be aligned to 8 bytes - For any element of
pInfos[i].pGeometriesorpInfos[i].ppGeometrieswith ageometryTypeofGEOMETRY_TYPE_INSTANCES_KHR, ifgeometry.arrayOfPointersisTRUE, each element ofgeometry.instances.data.deviceAddressin device memory must be aligned to 16 bytes - For any element of
pInfos[i].pGeometriesorpInfos[i].ppGeometrieswith ageometryTypeofGEOMETRY_TYPE_INSTANCES_KHR,geometry.instances.data.deviceAddressmust be a valid device address obtained fromGetBufferDeviceAddress - For any element of
pInfos[i].pGeometriesorpInfos[i].ppGeometrieswith ageometryTypeofGEOMETRY_TYPE_INSTANCES_KHR, ifgeometry.instances.data.deviceAddressis the address of a non-sparse buffer then it must be bound completely and contiguously to a singleVkDeviceMemoryobject - For any element of
pInfos[i].pGeometriesorpInfos[i].ppGeometrieswith ageometryTypeofGEOMETRY_TYPE_INSTANCES_KHR, eachVkAccelerationStructureInstanceKHR::accelerationStructureReferencevalue ingeometry.instances.data.deviceAddressmust be a valid device address containing a value obtained fromGetAccelerationStructureDeviceAddressKHRor 0 commandBuffermust not be a protected command buffer
- For each
pInfos[i],dstAccelerationStructuremust have been created with a value ofVkAccelerationStructureCreateInfoKHR::sizegreater than or equal to either:- the memory size required by the build operation, as returned by
GetAccelerationStructureBuildSizesKHRwithpBuildInfo = pInfos[i]and with each element of thepMaxPrimitiveCountsarray greater than or equal to the equivalentppBuildRangeInfos[i][j].primitiveCountvalues forjin[0,pInfos[i].geometryCount)or, - the result of querying the corresponding
QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR, if updating a compacted acceleration structure
- the memory size required by the build operation, as returned by
- Each element of
ppBuildRangeInfos[i] must be a valid pointer to an array ofpInfos[i].geometryCountVkAccelerationStructureBuildRangeInfoKHRstructures
Valid Usage (Implicit)
commandBuffermust be a validVkCommandBufferhandlepInfosmust be a valid pointer to an array ofinfoCountvalidVkAccelerationStructureBuildGeometryInfoKHRstructuresppBuildRangeInfosmust be a valid pointer to an array ofinfoCountVkAccelerationStructureBuildRangeInfoKHRstructurescommandBuffermust be in the recording state- The
VkCommandPoolthatcommandBufferwas allocated from must support compute operations - This command must only be called outside of a render pass instance
- This command must only be called outside of a video coding scope
infoCountmust be greater than 0
Host Synchronization
- Host access to
commandBuffermust be externally synchronized - Host access to the
VkCommandPoolthatcommandBufferwas allocated from must be externally synchronized
Command Properties
Command Buffer Levels Render Pass Scope Video Coding Scope Supported Queue Types Command Type Primary Secondary Outside Outside Compute Action See Also
VkAccelerationStructureBuildGeometryInfoKHR,VkAccelerationStructureBuildRangeInfoKHR- Parameters:
commandBuffer- the command buffer into which the command will be recorded.pInfos- a pointer to an array ofinfoCountVkAccelerationStructureBuildGeometryInfoKHRstructures defining the geometry used to build each acceleration structure.ppBuildRangeInfos- a pointer to an array ofinfoCountpointers to arrays ofVkAccelerationStructureBuildRangeInfoKHRstructures. EachppBuildRangeInfos[i] is a pointer to an array ofpInfos[i].geometryCountVkAccelerationStructureBuildRangeInfoKHRstructures defining dynamic offsets to the addresses where geometry data is stored, as defined bypInfos[i].
- The
-
nvkCmdBuildAccelerationStructuresIndirectKHR
public static void nvkCmdBuildAccelerationStructuresIndirectKHR(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, int infoCount, long pInfos, long pIndirectDeviceAddresses, long pIndirectStrides, long ppMaxPrimitiveCounts) Unsafe version of:CmdBuildAccelerationStructuresIndirectKHR- Parameters:
infoCount- the number of acceleration structures to build.
-
vkCmdBuildAccelerationStructuresIndirectKHR
public static void vkCmdBuildAccelerationStructuresIndirectKHR(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, VkAccelerationStructureBuildGeometryInfoKHR.Buffer pInfos, LongBuffer pIndirectDeviceAddresses, IntBuffer pIndirectStrides, org.lwjgl.PointerBuffer ppMaxPrimitiveCounts) Build an acceleration structure with some parameters provided on the device.C Specification
To build acceleration structures with some parameters sourced on the device call:
void vkCmdBuildAccelerationStructuresIndirectKHR( VkCommandBuffer commandBuffer, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkDeviceAddress* pIndirectDeviceAddresses, const uint32_t* pIndirectStrides, const uint32_t* const* ppMaxPrimitiveCounts);Description
Accesses to acceleration structures, scratch buffers, vertex buffers, index buffers, and instance buffers must be synchronized as with vkCmdBuildAccelerationStructuresKHR.
Accesses to any element of
pIndirectDeviceAddressesmust be synchronized with thePIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHRpipeline stage and an access type ofACCESS_INDIRECT_COMMAND_READ_BIT.Valid Usage
- The
VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructureIndirectBuildfeature must be enabled
- The
modemember of each element ofpInfosmust be a validVkBuildAccelerationStructureModeKHRvalue - If the
srcAccelerationStructuremember of any element ofpInfosis notNULL_HANDLE, thesrcAccelerationStructuremember must be a validVkAccelerationStructureKHRhandle - For each element of
pInfos, if itsmodemember isBUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, itssrcAccelerationStructuremember must not beNULL_HANDLE - The
srcAccelerationStructuremember of any element ofpInfosmust not be the same acceleration structure as thedstAccelerationStructuremember of any other element ofpInfos - The
dstAccelerationStructuremember of any element ofpInfosmust not be the same acceleration structure as thedstAccelerationStructuremember of any other element ofpInfos - The
dstAccelerationStructuremember of any element ofpInfosmust be a validVkAccelerationStructureKHRhandle - For each element of
pInfos, if itstypemember isACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR, itsdstAccelerationStructuremember must have been created with a value ofVkAccelerationStructureCreateInfoKHR::typeequal to eitherACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHRorACCELERATION_STRUCTURE_TYPE_GENERIC_KHR - For each element of
pInfos, if itstypemember isACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR, itsdstAccelerationStructuremember must have been created with a value ofVkAccelerationStructureCreateInfoKHR::typeequal to eitherACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHRorACCELERATION_STRUCTURE_TYPE_GENERIC_KHR - For each element of
pInfos, if itsmodemember isBUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, inactive primitives in itssrcAccelerationStructuremember must not be made active - For each element of
pInfos, if itsmodemember isBUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, active primitives in itssrcAccelerationStructuremember must not be made inactive - The
dstAccelerationStructuremember of any element ofpInfosmust not be referenced by thegeometry.instances.datamember of any element ofpGeometriesorppGeometrieswith ageometryTypeofGEOMETRY_TYPE_INSTANCES_KHRin any other element ofpInfos - The range of memory backing the
dstAccelerationStructuremember of any element ofpInfosthat is accessed by this command must not overlap the memory backing thesrcAccelerationStructuremember of any other element ofpInfoswith amodeequal toBUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, which is accessed by this command - The range of memory backing the
dstAccelerationStructuremember of any element ofpInfosthat is accessed by this command must not overlap the memory backing thedstAccelerationStructuremember of any other element ofpInfos, which is accessed by this command - The range of memory backing the
dstAccelerationStructuremember of any element ofpInfosthat is accessed by this command must not overlap the memory backing thescratchDatamember of any element ofpInfos(including the same element), which is accessed by this command - The range of memory backing the
scratchDatamember of any element ofpInfosthat is accessed by this command must not overlap the memory backing thescratchDatamember of any other element ofpInfos, which is accessed by this command - The range of memory backing the
scratchDatamember of any element ofpInfosthat is accessed by this command must not overlap the memory backing thesrcAccelerationStructuremember of any element ofpInfoswith amodeequal toBUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR(including the same element), which is accessed by this command - The range of memory backing the
dstAccelerationStructuremember of any element ofpInfosthat is accessed by this command must not overlap the memory backing any acceleration structure referenced by thegeometry.instances.datamember of any element ofpGeometriesorppGeometrieswith ageometryTypeofGEOMETRY_TYPE_INSTANCES_KHRin any other element ofpInfos, which is accessed by this command - For each element of
pInfos, if itsmodemember isBUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, itssrcAccelerationStructuremember must have previously been constructed withBUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHRset inVkAccelerationStructureBuildGeometryInfoKHR::flagsin the build - For each element of
pInfos, if itsmodemember isBUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, itssrcAccelerationStructureanddstAccelerationStructuremembers must either be the sameVkAccelerationStructureKHR, or not have any memory aliasing - For each element of
pInfos, if itsmodemember isBUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, itsgeometryCountmember must have the same value which was specified whensrcAccelerationStructurewas last built - For each element of
pInfos, if itsmodemember isBUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, itsflagsmember must have the same value which was specified whensrcAccelerationStructurewas last built - For each element of
pInfos, if itsmodemember isBUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, itstypemember must have the same value which was specified whensrcAccelerationStructurewas last built - For each element of
pInfos, if itsmodemember isBUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for eachVkAccelerationStructureGeometryKHRstructure referred to by itspGeometriesorppGeometriesmembers, itsgeometryTypemember must have the same value which was specified whensrcAccelerationStructurewas last built - For each element of
pInfos, if itsmodemember isBUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for eachVkAccelerationStructureGeometryKHRstructure referred to by itspGeometriesorppGeometriesmembers, itsflagsmember must have the same value which was specified whensrcAccelerationStructurewas last built - For each element of
pInfos, if itsmodemember isBUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for eachVkAccelerationStructureGeometryKHRstructure referred to by itspGeometriesorppGeometriesmembers, ifgeometryTypeisGEOMETRY_TYPE_TRIANGLES_KHR, itsgeometry.triangles.vertexFormatmember must have the same value which was specified whensrcAccelerationStructurewas last built - For each element of
pInfos, if itsmodemember isBUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for eachVkAccelerationStructureGeometryKHRstructure referred to by itspGeometriesorppGeometriesmembers, ifgeometryTypeisGEOMETRY_TYPE_TRIANGLES_KHR, itsgeometry.triangles.maxVertexmember must have the same value which was specified whensrcAccelerationStructurewas last built - For each element of
pInfos, if itsmodemember isBUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for eachVkAccelerationStructureGeometryKHRstructure referred to by itspGeometriesorppGeometriesmembers, ifgeometryTypeisGEOMETRY_TYPE_TRIANGLES_KHR, itsgeometry.triangles.indexTypemember must have the same value which was specified whensrcAccelerationStructurewas last built - For each element of
pInfos, if itsmodemember isBUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for eachVkAccelerationStructureGeometryKHRstructure referred to by itspGeometriesorppGeometriesmembers, ifgeometryTypeisGEOMETRY_TYPE_TRIANGLES_KHR, if itsgeometry.triangles.transformDataaddress wasNULLwhensrcAccelerationStructurewas last built, then it must beNULL - For each element of
pInfos, if itsmodemember isBUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for eachVkAccelerationStructureGeometryKHRstructure referred to by itspGeometriesorppGeometriesmembers, ifgeometryTypeisGEOMETRY_TYPE_TRIANGLES_KHR, if itsgeometry.triangles.transformDataaddress was notNULLwhensrcAccelerationStructurewas last built, then it must not beNULL - For each element of
pInfos, if itsmodemember isBUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for eachVkAccelerationStructureGeometryKHRstructure referred to by itspGeometriesorppGeometriesmembers, ifgeometryTypeisGEOMETRY_TYPE_TRIANGLES_KHR, andgeometry.triangles.indexTypeis notINDEX_TYPE_NONE_KHR, then the value of each index referenced must be the same as the corresponding index value whensrcAccelerationStructurewas last built - For each element of
pInfos, if itsmodemember isBUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for eachVkAccelerationStructureGeometryKHRstructure referred to by itspGeometriesorppGeometriesmembers, theprimitiveCountmember of its correspondingVkAccelerationStructureBuildRangeInfoKHRstructure must have the same value which was specified whensrcAccelerationStructurewas last built - For each element of
pInfos[i].pGeometriesorpInfos[i].ppGeometrieswith ageometryTypeofGEOMETRY_TYPE_INSTANCES_KHR, the correspondingppMaxPrimitiveCounts[i][j] must be less than or equal toVkPhysicalDeviceAccelerationStructurePropertiesKHR::maxInstanceCount
- For each element of
pInfos, thebufferused to create itsdstAccelerationStructuremember must be bound to device memory - For each element of
pInfos, if itsmodemember isBUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHRthebufferused to create itssrcAccelerationStructuremember must be bound to device memory - For each element of
pInfos, thebufferused to create each acceleration structure referenced by thegeometry.instances.datamember of any element ofpGeometriesorppGeometrieswith ageometryTypeofGEOMETRY_TYPE_INSTANCES_KHRmust be bound to device memory - If
pInfos[i].modeisBUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR, all addresses betweenpInfos[i].scratchData.deviceAddressandpInfos[i].scratchData.deviceAddress+ N - 1 must be in the buffer device address range of the same buffer, where N is given by thebuildScratchSizemember of theVkAccelerationStructureBuildSizesInfoKHRstructure returned from a call toGetAccelerationStructureBuildSizesKHRwith an identicalVkAccelerationStructureBuildGeometryInfoKHRstructure and primitive count - If
pInfos[i].modeisBUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, all addresses betweenpInfos[i].scratchData.deviceAddressandpInfos[i].scratchData.deviceAddress+ N - 1 must be in the buffer device address range of the same buffer, where N is given by theupdateScratchSizemember of theVkAccelerationStructureBuildSizesInfoKHRstructure returned from a call toGetAccelerationStructureBuildSizesKHRwith an identicalVkAccelerationStructureBuildGeometryInfoKHRstructure and primitive count - The buffers from which the buffer device addresses for all of the
geometry.triangles.vertexData,geometry.triangles.indexData,geometry.triangles.transformData,geometry.aabbs.data, andgeometry.instances.datamembers of allpInfos[i].pGeometriesandpInfos[i].ppGeometriesare queried must have been created with theBUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHRusage flag - The buffer from which the buffer device address
pInfos[i].scratchData.deviceAddressis queried must have been created withBUFFER_USAGE_STORAGE_BUFFER_BITusage flag - For each element of
pInfos, itsscratchData.deviceAddressmember must be a valid device address obtained fromGetBufferDeviceAddress - For each element of
pInfos, ifscratchData.deviceAddressis the address of a non-sparse buffer then it must be bound completely and contiguously to a singleVkDeviceMemoryobject - For each element of
pInfos, itsscratchData.deviceAddressmember must be a multiple ofVkPhysicalDeviceAccelerationStructurePropertiesKHR::minAccelerationStructureScratchOffsetAlignment - For any element of
pInfos[i].pGeometriesorpInfos[i].ppGeometrieswith ageometryTypeofGEOMETRY_TYPE_TRIANGLES_KHR,geometry.triangles.vertexData.deviceAddressmust be a valid device address obtained fromGetBufferDeviceAddress - For any element of
pInfos[i].pGeometriesorpInfos[i].ppGeometrieswith ageometryTypeofGEOMETRY_TYPE_TRIANGLES_KHR, ifgeometry.triangles.vertexData.deviceAddressis the address of a non-sparse buffer then it must be bound completely and contiguously to a singleVkDeviceMemoryobject - For any element of
pInfos[i].pGeometriesorpInfos[i].ppGeometrieswith ageometryTypeofGEOMETRY_TYPE_TRIANGLES_KHR,geometry.triangles.vertexData.deviceAddressmust be aligned to the size in bytes of the smallest component of the format invertexFormat - For any element of
pInfos[i].pGeometriesorpInfos[i].ppGeometrieswith ageometryTypeofGEOMETRY_TYPE_TRIANGLES_KHR, ifgeometry.triangles.indexTypeis notINDEX_TYPE_NONE_KHR,geometry.triangles.indexData.deviceAddressmust be a valid device address obtained fromGetBufferDeviceAddress - For any element of
pInfos[i].pGeometriesorpInfos[i].ppGeometrieswith ageometryTypeofGEOMETRY_TYPE_TRIANGLES_KHR, ifgeometry.triangles.indexTypeis notINDEX_TYPE_NONE_KHR, ifgeometry.triangles.indexData.deviceAddressis the address of a non-sparse buffer then it must be bound completely and contiguously to a singleVkDeviceMemoryobject - For any element of
pInfos[i].pGeometriesorpInfos[i].ppGeometrieswith ageometryTypeofGEOMETRY_TYPE_TRIANGLES_KHR, and withgeometry.triangles.indexTypenot equal toINDEX_TYPE_NONE_KHR,geometry.triangles.indexData.deviceAddressmust be aligned to the size in bytes of the type inindexType - For any element of
pInfos[i].pGeometriesorpInfos[i].ppGeometrieswith ageometryTypeofGEOMETRY_TYPE_TRIANGLES_KHR, ifgeometry.triangles.transformData.deviceAddressis not 0, it must be a valid device address obtained fromGetBufferDeviceAddress - For any element of
pInfos[i].pGeometriesorpInfos[i].ppGeometrieswith ageometryTypeofGEOMETRY_TYPE_TRIANGLES_KHR, ifgeometry.triangles.transformData.deviceAddressis the address of a non-sparse buffer then it must be bound completely and contiguously to a singleVkDeviceMemoryobject - For any element of
pInfos[i].pGeometriesorpInfos[i].ppGeometrieswith ageometryTypeofGEOMETRY_TYPE_TRIANGLES_KHR, ifgeometry.triangles.transformData.deviceAddressis not 0, it must be aligned to 16 bytes - For any element of
pInfos[i].pGeometriesorpInfos[i].ppGeometrieswith ageometryTypeofGEOMETRY_TYPE_AABBS_KHR,geometry.aabbs.data.deviceAddressmust be a valid device address obtained fromGetBufferDeviceAddress - For any element of
pInfos[i].pGeometriesorpInfos[i].ppGeometrieswith ageometryTypeofGEOMETRY_TYPE_AABBS_KHR, ifgeometry.aabbs.data.deviceAddressis the address of a non-sparse buffer then it must be bound completely and contiguously to a singleVkDeviceMemoryobject - For any element of
pInfos[i].pGeometriesorpInfos[i].ppGeometrieswith ageometryTypeofGEOMETRY_TYPE_AABBS_KHR,geometry.aabbs.data.deviceAddressmust be aligned to 8 bytes - For any element of
pInfos[i].pGeometriesorpInfos[i].ppGeometrieswith ageometryTypeofGEOMETRY_TYPE_INSTANCES_KHR, ifgeometry.arrayOfPointersisFALSE,geometry.instances.data.deviceAddressmust be aligned to 16 bytes - For any element of
pInfos[i].pGeometriesorpInfos[i].ppGeometrieswith ageometryTypeofGEOMETRY_TYPE_INSTANCES_KHR, ifgeometry.arrayOfPointersisTRUE,geometry.instances.data.deviceAddressmust be aligned to 8 bytes - For any element of
pInfos[i].pGeometriesorpInfos[i].ppGeometrieswith ageometryTypeofGEOMETRY_TYPE_INSTANCES_KHR, ifgeometry.arrayOfPointersisTRUE, each element ofgeometry.instances.data.deviceAddressin device memory must be aligned to 16 bytes - For any element of
pInfos[i].pGeometriesorpInfos[i].ppGeometrieswith ageometryTypeofGEOMETRY_TYPE_INSTANCES_KHR,geometry.instances.data.deviceAddressmust be a valid device address obtained fromGetBufferDeviceAddress - For any element of
pInfos[i].pGeometriesorpInfos[i].ppGeometrieswith ageometryTypeofGEOMETRY_TYPE_INSTANCES_KHR, ifgeometry.instances.data.deviceAddressis the address of a non-sparse buffer then it must be bound completely and contiguously to a singleVkDeviceMemoryobject - For any element of
pInfos[i].pGeometriesorpInfos[i].ppGeometrieswith ageometryTypeofGEOMETRY_TYPE_INSTANCES_KHR, eachVkAccelerationStructureInstanceKHR::accelerationStructureReferencevalue ingeometry.instances.data.deviceAddressmust be a valid device address containing a value obtained fromGetAccelerationStructureDeviceAddressKHRor 0 commandBuffermust not be a protected command buffer- For any element of
pIndirectDeviceAddresses, if the buffer from which it was queried is non-sparse then it must be bound completely and contiguously to a singleVkDeviceMemoryobject - For any element of
pIndirectDeviceAddresses[i], all device addresses betweenpIndirectDeviceAddresses[i] andpIndirectDeviceAddresses[i] + (pInfos[i].geometryCount × pIndirectStrides[i]) - 1must be in the buffer device address range of the same buffer - For any element of
pIndirectDeviceAddresses, the buffer from which it was queried must have been created with theBUFFER_USAGE_INDIRECT_BUFFER_BITbit set - Each element of
pIndirectDeviceAddressesmust be a multiple of 4 - Each element of
pIndirectStridesmust be a multiple of 4 - Each
VkAccelerationStructureBuildRangeInfoKHRstructure referenced by any element ofpIndirectDeviceAddressesmust be a validVkAccelerationStructureBuildRangeInfoKHRstructure pInfos[i].dstAccelerationStructuremust have been created with a value ofVkAccelerationStructureCreateInfoKHR::sizegreater than or equal to the memory size required by the build operation, as returned byGetAccelerationStructureBuildSizesKHRwithpBuildInfo = pInfos[i]andpMaxPrimitiveCounts = ppMaxPrimitiveCounts[i]- Each
ppMaxPrimitiveCounts[i][j] must be greater than or equal to theprimitiveCountvalue specified by theVkAccelerationStructureBuildRangeInfoKHRstructure located atpIndirectDeviceAddresses[i] + (j × pIndirectStrides[i])
Valid Usage (Implicit)
commandBuffermust be a validVkCommandBufferhandlepInfosmust be a valid pointer to an array ofinfoCountvalidVkAccelerationStructureBuildGeometryInfoKHRstructurespIndirectDeviceAddressesmust be a valid pointer to an array ofinfoCountVkDeviceAddressvaluespIndirectStridesmust be a valid pointer to an array ofinfoCountuint32_tvaluesppMaxPrimitiveCountsmust be a valid pointer to an array ofinfoCountuint32_tvaluescommandBuffermust be in the recording state- The
VkCommandPoolthatcommandBufferwas allocated from must support compute operations - This command must only be called outside of a render pass instance
- This command must only be called outside of a video coding scope
infoCountmust be greater than 0
Host Synchronization
- Host access to
commandBuffermust be externally synchronized - Host access to the
VkCommandPoolthatcommandBufferwas allocated from must be externally synchronized
Command Properties
Command Buffer Levels Render Pass Scope Video Coding Scope Supported Queue Types Command Type Primary Secondary Outside Outside Compute Action See Also
- Parameters:
commandBuffer- the command buffer into which the command will be recorded.pInfos- a pointer to an array ofinfoCountVkAccelerationStructureBuildGeometryInfoKHRstructures defining the geometry used to build each acceleration structure.pIndirectDeviceAddresses- a pointer to an array ofinfoCountbuffer device addresses which point topInfos[i].geometryCountVkAccelerationStructureBuildRangeInfoKHRstructures defining dynamic offsets to the addresses where geometry data is stored, as defined bypInfos[i].pIndirectStrides- a pointer to an array ofinfoCountbyte strides between elements ofpIndirectDeviceAddresses.ppMaxPrimitiveCounts- a pointer to an array ofinfoCountpointers to arrays ofpInfos[i].geometryCountvalues indicating the maximum number of primitives that will be built by this command for each geometry.
- The
-
nvkBuildAccelerationStructuresKHR
public static int nvkBuildAccelerationStructuresKHR(org.lwjgl.vulkan.VkDevice device, long deferredOperation, int infoCount, long pInfos, long ppBuildRangeInfos) Unsafe version of:BuildAccelerationStructuresKHR- Parameters:
infoCount- the number of acceleration structures to build. It specifies the number of thepInfosstructures andppBuildRangeInfospointers that must be provided.
-
vkBuildAccelerationStructuresKHR
public static int vkBuildAccelerationStructuresKHR(org.lwjgl.vulkan.VkDevice device, long deferredOperation, VkAccelerationStructureBuildGeometryInfoKHR.Buffer pInfos, org.lwjgl.PointerBuffer ppBuildRangeInfos) Build an acceleration structure on the host.C Specification
To build acceleration structures on the host, call:
VkResult vkBuildAccelerationStructuresKHR( VkDevice device, VkDeferredOperationKHR deferredOperation, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos);Description
This command fulfills the same task as
CmdBuildAccelerationStructuresKHRbut is executed by the host.The
vkBuildAccelerationStructuresKHRcommand provides the ability to initiate multiple acceleration structures builds, however there is no ordering or synchronization implied between any of the individual acceleration structure builds.Note
This means that an application cannot build a top-level acceleration structure in the same
BuildAccelerationStructuresKHRcall as the associated bottom-level or instance acceleration structures are being built. There also cannot be any memory aliasing between any acceleration structure memories or scratch memories being used by any of the builds.Valid Usage
- The
VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructureHostCommandsfeature must be enabled
- The
modemember of each element ofpInfosmust be a validVkBuildAccelerationStructureModeKHRvalue - If the
srcAccelerationStructuremember of any element ofpInfosis notNULL_HANDLE, thesrcAccelerationStructuremember must be a validVkAccelerationStructureKHRhandle - For each element of
pInfos, if itsmodemember isBUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, itssrcAccelerationStructuremember must not beNULL_HANDLE - The
srcAccelerationStructuremember of any element ofpInfosmust not be the same acceleration structure as thedstAccelerationStructuremember of any other element ofpInfos - The
dstAccelerationStructuremember of any element ofpInfosmust not be the same acceleration structure as thedstAccelerationStructuremember of any other element ofpInfos - The
dstAccelerationStructuremember of any element ofpInfosmust be a validVkAccelerationStructureKHRhandle - For each element of
pInfos, if itstypemember isACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR, itsdstAccelerationStructuremember must have been created with a value ofVkAccelerationStructureCreateInfoKHR::typeequal to eitherACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHRorACCELERATION_STRUCTURE_TYPE_GENERIC_KHR - For each element of
pInfos, if itstypemember isACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR, itsdstAccelerationStructuremember must have been created with a value ofVkAccelerationStructureCreateInfoKHR::typeequal to eitherACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHRorACCELERATION_STRUCTURE_TYPE_GENERIC_KHR - For each element of
pInfos, if itsmodemember isBUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, inactive primitives in itssrcAccelerationStructuremember must not be made active - For each element of
pInfos, if itsmodemember isBUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, active primitives in itssrcAccelerationStructuremember must not be made inactive - The
dstAccelerationStructuremember of any element ofpInfosmust not be referenced by thegeometry.instances.datamember of any element ofpGeometriesorppGeometrieswith ageometryTypeofGEOMETRY_TYPE_INSTANCES_KHRin any other element ofpInfos - The range of memory backing the
dstAccelerationStructuremember of any element ofpInfosthat is accessed by this command must not overlap the memory backing thesrcAccelerationStructuremember of any other element ofpInfoswith amodeequal toBUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, which is accessed by this command - The range of memory backing the
dstAccelerationStructuremember of any element ofpInfosthat is accessed by this command must not overlap the memory backing thedstAccelerationStructuremember of any other element ofpInfos, which is accessed by this command - The range of memory backing the
dstAccelerationStructuremember of any element ofpInfosthat is accessed by this command must not overlap the memory backing thescratchDatamember of any element ofpInfos(including the same element), which is accessed by this command - The range of memory backing the
scratchDatamember of any element ofpInfosthat is accessed by this command must not overlap the memory backing thescratchDatamember of any other element ofpInfos, which is accessed by this command - The range of memory backing the
scratchDatamember of any element ofpInfosthat is accessed by this command must not overlap the memory backing thesrcAccelerationStructuremember of any element ofpInfoswith amodeequal toBUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR(including the same element), which is accessed by this command - The range of memory backing the
dstAccelerationStructuremember of any element ofpInfosthat is accessed by this command must not overlap the memory backing any acceleration structure referenced by thegeometry.instances.datamember of any element ofpGeometriesorppGeometrieswith ageometryTypeofGEOMETRY_TYPE_INSTANCES_KHRin any other element ofpInfos, which is accessed by this command - For each element of
pInfos, if itsmodemember isBUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, itssrcAccelerationStructuremember must have previously been constructed withBUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHRset inVkAccelerationStructureBuildGeometryInfoKHR::flagsin the build - For each element of
pInfos, if itsmodemember isBUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, itssrcAccelerationStructureanddstAccelerationStructuremembers must either be the sameVkAccelerationStructureKHR, or not have any memory aliasing - For each element of
pInfos, if itsmodemember isBUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, itsgeometryCountmember must have the same value which was specified whensrcAccelerationStructurewas last built - For each element of
pInfos, if itsmodemember isBUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, itsflagsmember must have the same value which was specified whensrcAccelerationStructurewas last built - For each element of
pInfos, if itsmodemember isBUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, itstypemember must have the same value which was specified whensrcAccelerationStructurewas last built - For each element of
pInfos, if itsmodemember isBUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for eachVkAccelerationStructureGeometryKHRstructure referred to by itspGeometriesorppGeometriesmembers, itsgeometryTypemember must have the same value which was specified whensrcAccelerationStructurewas last built - For each element of
pInfos, if itsmodemember isBUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for eachVkAccelerationStructureGeometryKHRstructure referred to by itspGeometriesorppGeometriesmembers, itsflagsmember must have the same value which was specified whensrcAccelerationStructurewas last built - For each element of
pInfos, if itsmodemember isBUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for eachVkAccelerationStructureGeometryKHRstructure referred to by itspGeometriesorppGeometriesmembers, ifgeometryTypeisGEOMETRY_TYPE_TRIANGLES_KHR, itsgeometry.triangles.vertexFormatmember must have the same value which was specified whensrcAccelerationStructurewas last built - For each element of
pInfos, if itsmodemember isBUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for eachVkAccelerationStructureGeometryKHRstructure referred to by itspGeometriesorppGeometriesmembers, ifgeometryTypeisGEOMETRY_TYPE_TRIANGLES_KHR, itsgeometry.triangles.maxVertexmember must have the same value which was specified whensrcAccelerationStructurewas last built - For each element of
pInfos, if itsmodemember isBUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for eachVkAccelerationStructureGeometryKHRstructure referred to by itspGeometriesorppGeometriesmembers, ifgeometryTypeisGEOMETRY_TYPE_TRIANGLES_KHR, itsgeometry.triangles.indexTypemember must have the same value which was specified whensrcAccelerationStructurewas last built - For each element of
pInfos, if itsmodemember isBUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for eachVkAccelerationStructureGeometryKHRstructure referred to by itspGeometriesorppGeometriesmembers, ifgeometryTypeisGEOMETRY_TYPE_TRIANGLES_KHR, if itsgeometry.triangles.transformDataaddress wasNULLwhensrcAccelerationStructurewas last built, then it must beNULL - For each element of
pInfos, if itsmodemember isBUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for eachVkAccelerationStructureGeometryKHRstructure referred to by itspGeometriesorppGeometriesmembers, ifgeometryTypeisGEOMETRY_TYPE_TRIANGLES_KHR, if itsgeometry.triangles.transformDataaddress was notNULLwhensrcAccelerationStructurewas last built, then it must not beNULL - For each element of
pInfos, if itsmodemember isBUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for eachVkAccelerationStructureGeometryKHRstructure referred to by itspGeometriesorppGeometriesmembers, ifgeometryTypeisGEOMETRY_TYPE_TRIANGLES_KHR, andgeometry.triangles.indexTypeis notINDEX_TYPE_NONE_KHR, then the value of each index referenced must be the same as the corresponding index value whensrcAccelerationStructurewas last built - For each element of
pInfos, if itsmodemember isBUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for eachVkAccelerationStructureGeometryKHRstructure referred to by itspGeometriesorppGeometriesmembers, theprimitiveCountmember of its correspondingVkAccelerationStructureBuildRangeInfoKHRstructure must have the same value which was specified whensrcAccelerationStructurewas last built - For each element of
pInfos[i].pGeometriesorpInfos[i].ppGeometrieswith ageometryTypeofGEOMETRY_TYPE_INSTANCES_KHR, the correspondingppBuildRangeInfos[i][j].primitiveCountmust be less than or equal toVkPhysicalDeviceAccelerationStructurePropertiesKHR::maxInstanceCount
- For each
pInfos[i],dstAccelerationStructuremust have been created with a value ofVkAccelerationStructureCreateInfoKHR::sizegreater than or equal to either:- the memory size required by the build operation, as returned by
GetAccelerationStructureBuildSizesKHRwithpBuildInfo = pInfos[i]and with each element of thepMaxPrimitiveCountsarray greater than or equal to the equivalentppBuildRangeInfos[i][j].primitiveCountvalues forjin[0,pInfos[i].geometryCount)or, - the result of querying the corresponding
QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR, if updating a compacted acceleration structure
- the memory size required by the build operation, as returned by
- Each element of
ppBuildRangeInfos[i] must be a valid pointer to an array ofpInfos[i].geometryCountVkAccelerationStructureBuildRangeInfoKHRstructures
- Any previous deferred operation that was associated with
deferredOperationmust be complete - For each element of
pInfos, thebufferused to create itsdstAccelerationStructuremember must be bound to host-visible device memory - For each element of
pInfos, if itsmodemember isBUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHRthebufferused to create itssrcAccelerationStructuremember must be bound to host-visible device memory - For each element of
pInfos, thebufferused to create each acceleration structure referenced by thegeometry.instances.datamember of any element ofpGeometriesorppGeometrieswith ageometryTypeofGEOMETRY_TYPE_INSTANCES_KHRmust be bound to host-visible device memory - If
pInfos[i].modeisBUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR, all addresses betweenpInfos[i].scratchData.hostAddressandpInfos[i].scratchData.hostAddress+ N - 1 must be valid host memory, where N is given by thebuildScratchSizemember of theVkAccelerationStructureBuildSizesInfoKHRstructure returned from a call toGetAccelerationStructureBuildSizesKHRwith an identicalVkAccelerationStructureBuildGeometryInfoKHRstructure and primitive count - If
pInfos[i].modeisBUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, all addresses betweenpInfos[i].scratchData.hostAddressandpInfos[i].scratchData.hostAddress+ N - 1 must be valid host memory, where N is given by theupdateScratchSizemember of theVkAccelerationStructureBuildSizesInfoKHRstructure returned from a call toGetAccelerationStructureBuildSizesKHRwith an identicalVkAccelerationStructureBuildGeometryInfoKHRstructure and primitive count - For any element of
pInfos[i].pGeometriesorpInfos[i].ppGeometrieswith ageometryTypeofGEOMETRY_TYPE_TRIANGLES_KHR,geometry.triangles.vertexData.hostAddressmust be a valid host address - For any element of
pInfos[i].pGeometriesorpInfos[i].ppGeometrieswith ageometryTypeofGEOMETRY_TYPE_TRIANGLES_KHR, ifgeometry.triangles.indexTypeis notINDEX_TYPE_NONE_KHR,geometry.triangles.indexData.hostAddressmust be a valid host address - For any element of
pInfos[i].pGeometriesorpInfos[i].ppGeometrieswith ageometryTypeofGEOMETRY_TYPE_TRIANGLES_KHR, ifgeometry.triangles.transformData.hostAddressis not 0, it must be a valid host address - For any element of
pInfos[i].pGeometriesorpInfos[i].ppGeometrieswith ageometryTypeofGEOMETRY_TYPE_AABBS_KHR,geometry.aabbs.data.hostAddressmust be a valid host address - For each element of
pInfos, thebufferused to create itsdstAccelerationStructuremember must be bound to memory that was not allocated with multiple instances - For each element of
pInfos, if itsmodemember isBUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHRthebufferused to create itssrcAccelerationStructuremember must be bound to memory that was not allocated with multiple instances - For each element of
pInfos, thebufferused to create each acceleration structure referenced by thegeometry.instances.datamember of any element ofpGeometriesorppGeometrieswith ageometryTypeofGEOMETRY_TYPE_INSTANCES_KHRmust be bound to memory that was not allocated with multiple instances - For any element of
pInfos[i].pGeometriesorpInfos[i].ppGeometrieswith ageometryTypeofGEOMETRY_TYPE_INSTANCES_KHR,geometry.instances.data.hostAddressmust be a valid host address - For any element of
pInfos[i].pGeometriesorpInfos[i].ppGeometrieswith ageometryTypeofGEOMETRY_TYPE_INSTANCES_KHR, eachVkAccelerationStructureInstanceKHR::accelerationStructureReferencevalue ingeometry.instances.data.hostAddressmust be a validVkAccelerationStructureKHRobject - For any element of
pInfos[i].pGeometriesorpInfos[i].ppGeometrieswith ageometryTypeofGEOMETRY_TYPE_INSTANCES_KHRwithBUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NVset, eachaccelerationStructureReferencein any structure inVkAccelerationStructureMotionInstanceNVvalue ingeometry.instances.data.hostAddressmust be a validVkAccelerationStructureKHRobject
Valid Usage (Implicit)
devicemust be a validVkDevicehandle- If
deferredOperationis notNULL_HANDLE,deferredOperationmust be a validVkDeferredOperationKHRhandle pInfosmust be a valid pointer to an array ofinfoCountvalidVkAccelerationStructureBuildGeometryInfoKHRstructuresppBuildRangeInfosmust be a valid pointer to an array ofinfoCountVkAccelerationStructureBuildRangeInfoKHRstructuresinfoCountmust be greater than 0- If
deferredOperationis a valid handle, it must have been created, allocated, or retrieved fromdevice
Return Codes
- On success, this command returns
- On failure, this command returns
See Also
VkAccelerationStructureBuildGeometryInfoKHR,VkAccelerationStructureBuildRangeInfoKHR- Parameters:
device- theVkDevicefor which the acceleration structures are being built.deferredOperation- an optionalVkDeferredOperationKHRto request deferral for this command.pInfos- a pointer to an array ofinfoCountVkAccelerationStructureBuildGeometryInfoKHRstructures defining the geometry used to build each acceleration structure.ppBuildRangeInfos- a pointer to an array ofinfoCountpointers to arrays ofVkAccelerationStructureBuildRangeInfoKHRstructures. EachppBuildRangeInfos[i] is a pointer to an array ofpInfos[i].geometryCountVkAccelerationStructureBuildRangeInfoKHRstructures defining dynamic offsets to the addresses where geometry data is stored, as defined bypInfos[i].
- The
-
nvkCopyAccelerationStructureKHR
public static int nvkCopyAccelerationStructureKHR(org.lwjgl.vulkan.VkDevice device, long deferredOperation, long pInfo) Unsafe version of:CopyAccelerationStructureKHR -
vkCopyAccelerationStructureKHR
public static int vkCopyAccelerationStructureKHR(org.lwjgl.vulkan.VkDevice device, long deferredOperation, VkCopyAccelerationStructureInfoKHR pInfo) Copy an acceleration structure on the host.C Specification
To copy or compact an acceleration structure on the host, call:
VkResult vkCopyAccelerationStructureKHR( VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyAccelerationStructureInfoKHR* pInfo);Description
This command fulfills the same task as
CmdCopyAccelerationStructureKHRbut is executed by the host.Valid Usage
- The
VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructureHostCommandsfeature must be enabled
- Any previous deferred operation that was associated with
deferredOperationmust be complete - The
bufferused to createpInfo→srcmust be bound to host-visible device memory - The
bufferused to createpInfo→dstmust be bound to host-visible device memory - The
bufferused to createpInfo→srcmust be bound to memory that was not allocated with multiple instances - The
bufferused to createpInfo→dstmust be bound to memory that was not allocated with multiple instances
Valid Usage (Implicit)
devicemust be a validVkDevicehandle- If
deferredOperationis notNULL_HANDLE,deferredOperationmust be a validVkDeferredOperationKHRhandle pInfomust be a valid pointer to a validVkCopyAccelerationStructureInfoKHRstructure- If
deferredOperationis a valid handle, it must have been created, allocated, or retrieved fromdevice
Return Codes
- On success, this command returns
- On failure, this command returns
See Also
- Parameters:
device- the device which owns the acceleration structures.deferredOperation- an optionalVkDeferredOperationKHRto request deferral for this command.pInfo- a pointer to aVkCopyAccelerationStructureInfoKHRstructure defining the copy operation.
- The
-
nvkCopyAccelerationStructureToMemoryKHR
public static int nvkCopyAccelerationStructureToMemoryKHR(org.lwjgl.vulkan.VkDevice device, long deferredOperation, long pInfo) Unsafe version of:CopyAccelerationStructureToMemoryKHR -
vkCopyAccelerationStructureToMemoryKHR
public static int vkCopyAccelerationStructureToMemoryKHR(org.lwjgl.vulkan.VkDevice device, long deferredOperation, VkCopyAccelerationStructureToMemoryInfoKHR pInfo) Serialize an acceleration structure on the host.C Specification
To copy an acceleration structure to host accessible memory, call:
VkResult vkCopyAccelerationStructureToMemoryKHR( VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);Description
This command fulfills the same task as
CmdCopyAccelerationStructureToMemoryKHRbut is executed by the host.This command produces the same results as
CmdCopyAccelerationStructureToMemoryKHR, but writes its result directly to a host pointer, and is executed on the host rather than the device. The output may not necessarily be bit-for-bit identical, but it can be equally used by eitherCmdCopyMemoryToAccelerationStructureKHRorCopyMemoryToAccelerationStructureKHR.Valid Usage
- The
VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructureHostCommandsfeature must be enabled
- Any previous deferred operation that was associated with
deferredOperationmust be complete - The
bufferused to createpInfo→srcmust be bound to host-visible device memory pInfo→dst.hostAddressmust be a valid host pointerpInfo→dst.hostAddressmust be aligned to 16 bytes- The
bufferused to createpInfo→srcmust be bound to memory that was not allocated with multiple instances
Valid Usage (Implicit)
devicemust be a validVkDevicehandle- If
deferredOperationis notNULL_HANDLE,deferredOperationmust be a validVkDeferredOperationKHRhandle pInfomust be a valid pointer to a validVkCopyAccelerationStructureToMemoryInfoKHRstructure- If
deferredOperationis a valid handle, it must have been created, allocated, or retrieved fromdevice
Return Codes
- On success, this command returns
- On failure, this command returns
See Also
- Parameters:
device- the device which ownspInfo→src.deferredOperation- an optionalVkDeferredOperationKHRto request deferral for this command.pInfo- a pointer to aVkCopyAccelerationStructureToMemoryInfoKHRstructure defining the copy operation.
- The
-
nvkCopyMemoryToAccelerationStructureKHR
public static int nvkCopyMemoryToAccelerationStructureKHR(org.lwjgl.vulkan.VkDevice device, long deferredOperation, long pInfo) Unsafe version of:CopyMemoryToAccelerationStructureKHR -
vkCopyMemoryToAccelerationStructureKHR
public static int vkCopyMemoryToAccelerationStructureKHR(org.lwjgl.vulkan.VkDevice device, long deferredOperation, VkCopyMemoryToAccelerationStructureInfoKHR pInfo) Deserialize an acceleration structure on the host.C Specification
To copy host accessible memory to an acceleration structure, call:
VkResult vkCopyMemoryToAccelerationStructureKHR( VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);Description
This command fulfills the same task as
CmdCopyMemoryToAccelerationStructureKHRbut is executed by the host.This command can accept acceleration structures produced by either
CmdCopyAccelerationStructureToMemoryKHRorCopyAccelerationStructureToMemoryKHR.Valid Usage
- The
VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructureHostCommandsfeature must be enabled
- Any previous deferred operation that was associated with
deferredOperationmust be complete pInfo→src.hostAddressmust be a valid host pointerpInfo→src.hostAddressmust be aligned to 16 bytes- The
bufferused to createpInfo→dstmust be bound to host-visible device memory - The
bufferused to createpInfo→dstmust be bound to memory that was not allocated with multiple instances
Valid Usage (Implicit)
devicemust be a validVkDevicehandle- If
deferredOperationis notNULL_HANDLE,deferredOperationmust be a validVkDeferredOperationKHRhandle pInfomust be a valid pointer to a validVkCopyMemoryToAccelerationStructureInfoKHRstructure- If
deferredOperationis a valid handle, it must have been created, allocated, or retrieved fromdevice
Return Codes
- On success, this command returns
- On failure, this command returns
See Also
- Parameters:
device- the device which ownspInfo→dst.deferredOperation- an optionalVkDeferredOperationKHRto request deferral for this command.pInfo- a pointer to aVkCopyMemoryToAccelerationStructureInfoKHRstructure defining the copy operation.
- The
-
nvkWriteAccelerationStructuresPropertiesKHR
public static int nvkWriteAccelerationStructuresPropertiesKHR(org.lwjgl.vulkan.VkDevice device, int accelerationStructureCount, long pAccelerationStructures, int queryType, long dataSize, long pData, long stride) Unsafe version of:WriteAccelerationStructuresPropertiesKHR- Parameters:
accelerationStructureCount- the count of acceleration structures for which to query the property.dataSize- the size in bytes of the buffer pointed to bypData.
-
vkWriteAccelerationStructuresPropertiesKHR
public static int vkWriteAccelerationStructuresPropertiesKHR(org.lwjgl.vulkan.VkDevice device, LongBuffer pAccelerationStructures, int queryType, ByteBuffer pData, long stride) Query acceleration structure meta-data on the host.C Specification
To query acceleration structure size parameters on the host, call:
VkResult vkWriteAccelerationStructuresPropertiesKHR( VkDevice device, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, size_t dataSize, void* pData, size_t stride);Description
This command fulfills the same task as
CmdWriteAccelerationStructuresPropertiesKHRbut is executed by the host.Valid Usage
- The
VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructureHostCommandsfeature must be enabled
- All acceleration structures in
pAccelerationStructuresmust have been built prior to the execution of this command - All acceleration structures in
pAccelerationStructuresmust have been built withBUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHRifqueryTypeisQUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR queryTypemust beQUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR,QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR,QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR, orQUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR- If
queryTypeisQUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR, thenstridemust be a multiple of the size ofVkDeviceSize - If
queryTypeisQUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR, thenpDatamust point to aVkDeviceSize - If
queryTypeisQUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR, thenstridemust be a multiple of the size ofVkDeviceSize - If
queryTypeisQUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR, thenpDatamust point to aVkDeviceSize - If
queryTypeisQUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR, thenstridemust be a multiple of the size ofVkDeviceSize - If
queryTypeisQUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR, thenpDatamust point to aVkDeviceSize - If
queryTypeisQUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR, thenstridemust be a multiple of the size ofVkDeviceSize - If
queryTypeisQUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR, thenpDatamust point to aVkDeviceSize dataSizemust be greater than or equal toaccelerationStructureCount*stride- The
bufferused to create each acceleration structure inpAccelerationStructuresmust be bound to host-visible device memory - The
bufferused to create each acceleration structure inpAccelerationStructuresmust be bound to memory that was not allocated with multiple instances
Valid Usage (Implicit)
devicemust be a validVkDevicehandlepAccelerationStructuresmust be a valid pointer to an array ofaccelerationStructureCountvalidVkAccelerationStructureKHRhandlesqueryTypemust be a validVkQueryTypevaluepDatamust be a valid pointer to an array ofdataSizebytesaccelerationStructureCountmust be greater than 0dataSizemust be greater than 0- Each element of
pAccelerationStructuresmust have been created, allocated, or retrieved fromdevice
Return Codes
- On success, this command returns
- On failure, this command returns
- Parameters:
device- the device which owns the acceleration structures inpAccelerationStructures.pAccelerationStructures- a pointer to an array of existing previously built acceleration structures.queryType- aVkQueryTypevalue specifying the property to be queried.pData- a pointer to an application-allocated buffer where the results will be written.stride- the stride in bytes between results for individual queries withinpData.
- The
-
nvkCmdCopyAccelerationStructureKHR
public static void nvkCmdCopyAccelerationStructureKHR(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, long pInfo) Unsafe version of:CmdCopyAccelerationStructureKHR -
vkCmdCopyAccelerationStructureKHR
public static void vkCmdCopyAccelerationStructureKHR(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, VkCopyAccelerationStructureInfoKHR pInfo) Copy an acceleration structure.C Specification
To copy an acceleration structure call:
void vkCmdCopyAccelerationStructureKHR( VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureInfoKHR* pInfo);Description
This command copies the
pInfo→srcacceleration structure to thepInfo→dstacceleration structure in the manner specified bypInfo→mode.Accesses to
pInfo→srcandpInfo→dstmust be synchronized with thePIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHRpipeline stage or thePIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHRpipeline stage, and an access type ofACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHRorACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHRas appropriate.Valid Usage
- The
VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructurefeature must be enabled - The
bufferused to createpInfo→srcmust be bound to device memory - The
bufferused to createpInfo→dstmust be bound to device memory
Valid Usage (Implicit)
commandBuffermust be a validVkCommandBufferhandlepInfomust be a valid pointer to a validVkCopyAccelerationStructureInfoKHRstructurecommandBuffermust be in the recording state- The
VkCommandPoolthatcommandBufferwas allocated from must support compute operations - This command must only be called outside of a render pass instance
- This command must only be called outside of a video coding scope
Host Synchronization
- Host access to
commandBuffermust be externally synchronized - Host access to the
VkCommandPoolthatcommandBufferwas allocated from must be externally synchronized
Command Properties
Command Buffer Levels Render Pass Scope Video Coding Scope Supported Queue Types Command Type Primary Secondary Outside Outside Compute Action See Also
- Parameters:
commandBuffer- the command buffer into which the command will be recorded.pInfo- a pointer to aVkCopyAccelerationStructureInfoKHRstructure defining the copy operation.
- The
-
nvkCmdCopyAccelerationStructureToMemoryKHR
public static void nvkCmdCopyAccelerationStructureToMemoryKHR(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, long pInfo) Unsafe version of:CmdCopyAccelerationStructureToMemoryKHR -
vkCmdCopyAccelerationStructureToMemoryKHR
public static void vkCmdCopyAccelerationStructureToMemoryKHR(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, VkCopyAccelerationStructureToMemoryInfoKHR pInfo) Copy an acceleration structure to device memory.C Specification
To copy an acceleration structure to device memory call:
void vkCmdCopyAccelerationStructureToMemoryKHR( VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);Description
Accesses to
pInfo→srcmust be synchronized with thePIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHRpipeline stage or thePIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHRpipeline stage, and an access type ofACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR. Accesses to the buffer indicated bypInfo→dst.deviceAddressmust be synchronized with thePIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHRpipeline stage or thePIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHRpipeline stage, and an and an access type ofACCESS_TRANSFER_WRITE_BIT.This command produces the same results as
CopyAccelerationStructureToMemoryKHR, but writes its result to a device address, and is executed on the device rather than the host. The output may not necessarily be bit-for-bit identical, but it can be equally used by eitherCmdCopyMemoryToAccelerationStructureKHRorCopyMemoryToAccelerationStructureKHR.The defined header structure for the serialized data consists of:
UUID_SIZEbytes of data matchingVkPhysicalDeviceIDProperties::driverUUIDUUID_SIZEbytes of data identifying the compatibility for comparison usingGetDeviceAccelerationStructureCompatibilityKHR- A 64-bit integer of the total size matching the value queried using
QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR - A 64-bit integer of the deserialized size to be passed in to
VkAccelerationStructureCreateInfoKHR::size - A 64-bit integer of the count of the number of acceleration structure handles following. This value matches the value queried using
QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR. This will be zero for a bottom-level acceleration structure. For top-level acceleration structures this number is implementation-dependent; the number of and ordering of the handles may not match the instance descriptions which were used to build the acceleration structure.
The corresponding handles matching the values returned by
GetAccelerationStructureDeviceAddressKHRorGetAccelerationStructureHandleNVare tightly packed in the buffer following the count. The application is expected to store a mapping between those handles and the original application-generated bottom-level acceleration structures to provide when deserializing. The serialized data is written to the buffer (or read from the buffer) according to the host endianness.Valid Usage
- The
VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructurefeature must be enabled pInfo→dst.deviceAddressmust be a valid device address for a buffer bound to device memorypInfo→dst.deviceAddressmust be aligned to 256 bytes- If the buffer pointed to by
pInfo→dst.deviceAddressis non-sparse then it must be bound completely and contiguously to a singleVkDeviceMemoryobject - The
bufferused to createpInfo→srcmust be bound to device memory
Valid Usage (Implicit)
commandBuffermust be a validVkCommandBufferhandlepInfomust be a valid pointer to a validVkCopyAccelerationStructureToMemoryInfoKHRstructurecommandBuffermust be in the recording state- The
VkCommandPoolthatcommandBufferwas allocated from must support compute operations - This command must only be called outside of a render pass instance
- This command must only be called outside of a video coding scope
Host Synchronization
- Host access to
commandBuffermust be externally synchronized - Host access to the
VkCommandPoolthatcommandBufferwas allocated from must be externally synchronized
Command Properties
Command Buffer Levels Render Pass Scope Video Coding Scope Supported Queue Types Command Type Primary Secondary Outside Outside Compute Action See Also
- Parameters:
commandBuffer- the command buffer into which the command will be recorded.pInfo- an a pointer to aVkCopyAccelerationStructureToMemoryInfoKHRstructure defining the copy operation.
-
nvkCmdCopyMemoryToAccelerationStructureKHR
public static void nvkCmdCopyMemoryToAccelerationStructureKHR(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, long pInfo) Unsafe version of:CmdCopyMemoryToAccelerationStructureKHR -
vkCmdCopyMemoryToAccelerationStructureKHR
public static void vkCmdCopyMemoryToAccelerationStructureKHR(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, VkCopyMemoryToAccelerationStructureInfoKHR pInfo) Copy device memory to an acceleration structure.C Specification
To copy device memory to an acceleration structure call:
void vkCmdCopyMemoryToAccelerationStructureKHR( VkCommandBuffer commandBuffer, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);Description
Accesses to
pInfo→dstmust be synchronized with thePIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHRpipeline stage or thePIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHRpipeline stage, and an access type ofACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR. Accesses to the buffer indicated bypInfo→src.deviceAddressmust be synchronized with thePIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHRpipeline stage or thePIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHRpipeline stage, and an access type ofACCESS_TRANSFER_READ_BIT.This command can accept acceleration structures produced by either
CmdCopyAccelerationStructureToMemoryKHRorCopyAccelerationStructureToMemoryKHR.The structure provided as input to deserialize is as described in
CmdCopyAccelerationStructureToMemoryKHR, with any acceleration structure handles filled in with the newly-queried handles to bottom level acceleration structures created before deserialization. These do not need to be built at deserialize time, but must be created.Valid Usage
- The
VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructurefeature must be enabled pInfo→src.deviceAddressmust be a valid device address for a buffer bound to device memorypInfo→src.deviceAddressmust be aligned to 256 bytes- If the buffer pointed to by
pInfo→src.deviceAddressis non-sparse then it must be bound completely and contiguously to a singleVkDeviceMemoryobject - The
bufferused to createpInfo→dstmust be bound to device memory
Valid Usage (Implicit)
commandBuffermust be a validVkCommandBufferhandlepInfomust be a valid pointer to a validVkCopyMemoryToAccelerationStructureInfoKHRstructurecommandBuffermust be in the recording state- The
VkCommandPoolthatcommandBufferwas allocated from must support compute operations - This command must only be called outside of a render pass instance
- This command must only be called outside of a video coding scope
Host Synchronization
- Host access to
commandBuffermust be externally synchronized - Host access to the
VkCommandPoolthatcommandBufferwas allocated from must be externally synchronized
Command Properties
Command Buffer Levels Render Pass Scope Video Coding Scope Supported Queue Types Command Type Primary Secondary Outside Outside Compute Action See Also
- Parameters:
commandBuffer- the command buffer into which the command will be recorded.pInfo- a pointer to aVkCopyMemoryToAccelerationStructureInfoKHRstructure defining the copy operation.
- The
-
nvkGetAccelerationStructureDeviceAddressKHR
public static long nvkGetAccelerationStructureDeviceAddressKHR(org.lwjgl.vulkan.VkDevice device, long pInfo) Unsafe version of:GetAccelerationStructureDeviceAddressKHR -
vkGetAccelerationStructureDeviceAddressKHR
public static long vkGetAccelerationStructureDeviceAddressKHR(org.lwjgl.vulkan.VkDevice device, VkAccelerationStructureDeviceAddressInfoKHR pInfo) Query an address of an acceleration structure.C Specification
To query the 64-bit device address for an acceleration structure, call:
VkDeviceAddress vkGetAccelerationStructureDeviceAddressKHR( VkDevice device, const VkAccelerationStructureDeviceAddressInfoKHR* pInfo);Description
The 64-bit return value is an address of the acceleration structure, which can be used for device and shader operations that involve acceleration structures, such as ray traversal and acceleration structure building.
If the acceleration structure was created with a non-zero value of
VkAccelerationStructureCreateInfoKHR::deviceAddress, the return value will be the same address.If the acceleration structure was created with a
typeofACCELERATION_STRUCTURE_TYPE_GENERIC_KHR, the returned address must be consistent with the relative offset to other acceleration structures withtypeACCELERATION_STRUCTURE_TYPE_GENERIC_KHRallocated with the sameVkBuffer. That is, the difference in returned addresses between the two must be the same as the difference in offsets provided at acceleration structure creation.The returned address must be aligned to 256 bytes.
Note
The acceleration structure device address may be different from the buffer device address corresponding to the acceleration structure’s start offset in its storage buffer for acceleration structure types other than
ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR.Valid Usage
- The
VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructurefeature must be enabled - If
devicewas created with multiple physical devices, then thebufferDeviceAddressMultiDevicefeature must be enabled - If the buffer on which
pInfo→accelerationStructurewas placed is non-sparse then it must be bound completely and contiguously to a singleVkDeviceMemoryobject - The buffer on which
pInfo→accelerationStructurewas placed must have been created with theBUFFER_USAGE_SHADER_DEVICE_ADDRESS_BITusage flag
Valid Usage (Implicit)
devicemust be a validVkDevicehandlepInfomust be a valid pointer to a validVkAccelerationStructureDeviceAddressInfoKHRstructure
See Also
- Parameters:
device- the logical device that the acceleration structure was created on.pInfo- a pointer to aVkAccelerationStructureDeviceAddressInfoKHRstructure specifying the acceleration structure to retrieve an address for.
- The
-
nvkCmdWriteAccelerationStructuresPropertiesKHR
public static void nvkCmdWriteAccelerationStructuresPropertiesKHR(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, int accelerationStructureCount, long pAccelerationStructures, int queryType, long queryPool, int firstQuery) Unsafe version of:CmdWriteAccelerationStructuresPropertiesKHR- Parameters:
accelerationStructureCount- the count of acceleration structures for which to query the property.
-
vkCmdWriteAccelerationStructuresPropertiesKHR
public static void vkCmdWriteAccelerationStructuresPropertiesKHR(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, LongBuffer pAccelerationStructures, int queryType, long queryPool, int firstQuery) Write acceleration structure result parameters to query results.C Specification
To query acceleration structure size parameters call:
void vkCmdWriteAccelerationStructuresPropertiesKHR( VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery);Description
Accesses to any of the acceleration structures listed in
pAccelerationStructuresmust be synchronized with thePIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHRpipeline stage or thePIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHRpipeline stage, and an access type ofACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR.- If
queryTypeisQUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR, then the value written out is the number of bytes required by a compacted acceleration structure. - If
queryTypeisQUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR, then the value written out is the number of bytes required by a serialized acceleration structure.
Valid Usage
- The
VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructurefeature must be enabled queryPoolmust have been created with aqueryTypematchingqueryType- The queries identified by
queryPoolandfirstQuerymust be unavailable - The
bufferused to create each acceleration structure inpAccelerationStructuresmust be bound to device memory - The sum of
firstQueryplusaccelerationStructureCountmust be less than or equal to the number of queries inqueryPool
- All acceleration structures in
pAccelerationStructuresmust have been built prior to the execution of this command - All acceleration structures in
pAccelerationStructuresmust have been built withBUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHRifqueryTypeisQUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR queryTypemust beQUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR,QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR,QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR, orQUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR
Valid Usage (Implicit)
commandBuffermust be a validVkCommandBufferhandlepAccelerationStructuresmust be a valid pointer to an array ofaccelerationStructureCountvalidVkAccelerationStructureKHRhandlesqueryTypemust be a validVkQueryTypevaluequeryPoolmust be a validVkQueryPoolhandlecommandBuffermust be in the recording state- The
VkCommandPoolthatcommandBufferwas allocated from must support compute operations - This command must only be called outside of a render pass instance
- This command must only be called outside of a video coding scope
accelerationStructureCountmust be greater than 0- Each of
commandBuffer,queryPool, and the elements ofpAccelerationStructuresmust have been created, allocated, or retrieved from the sameVkDevice
Host Synchronization
- Host access to
commandBuffermust be externally synchronized - Host access to the
VkCommandPoolthatcommandBufferwas allocated from must be externally synchronized
Command Properties
Command Buffer Levels Render Pass Scope Video Coding Scope Supported Queue Types Command Type Primary Secondary Outside Outside Compute Action - Parameters:
commandBuffer- the command buffer into which the command will be recorded.pAccelerationStructures- a pointer to an array of existing previously built acceleration structures.queryType- aVkQueryTypevalue specifying the type of queries managed by the pool.queryPool- the query pool that will manage the results of the query.firstQuery- the first query index within the query pool that will contain theaccelerationStructureCountnumber of results.
- If
-
nvkGetDeviceAccelerationStructureCompatibilityKHR
public static void nvkGetDeviceAccelerationStructureCompatibilityKHR(org.lwjgl.vulkan.VkDevice device, long pVersionInfo, long pCompatibility) Unsafe version of:GetDeviceAccelerationStructureCompatibilityKHR -
vkGetDeviceAccelerationStructureCompatibilityKHR
public static void vkGetDeviceAccelerationStructureCompatibilityKHR(org.lwjgl.vulkan.VkDevice device, VkAccelerationStructureVersionInfoKHR pVersionInfo, IntBuffer pCompatibility) Check if a serialized acceleration structure is compatible with the current device.C Specification
To check if a serialized acceleration structure is compatible with the current device call:
void vkGetDeviceAccelerationStructureCompatibilityKHR( VkDevice device, const VkAccelerationStructureVersionInfoKHR* pVersionInfo, VkAccelerationStructureCompatibilityKHR* pCompatibility);Valid Usage
- The
VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructurefeature must be enabled
Valid Usage (Implicit)
devicemust be a validVkDevicehandlepVersionInfomust be a valid pointer to a validVkAccelerationStructureVersionInfoKHRstructurepCompatibilitymust be a valid pointer to aVkAccelerationStructureCompatibilityKHRvalue
See Also
- Parameters:
device- the device to check the version against.pVersionInfo- a pointer to aVkAccelerationStructureVersionInfoKHRstructure specifying version information to check against the device.pCompatibility- a pointer to aVkAccelerationStructureCompatibilityKHRvalue in which compatibility information is returned.
- The
-
nvkGetAccelerationStructureBuildSizesKHR
public static void nvkGetAccelerationStructureBuildSizesKHR(org.lwjgl.vulkan.VkDevice device, int buildType, long pBuildInfo, long pMaxPrimitiveCounts, long pSizeInfo) Unsafe version of:GetAccelerationStructureBuildSizesKHR -
vkGetAccelerationStructureBuildSizesKHR
public static void vkGetAccelerationStructureBuildSizesKHR(org.lwjgl.vulkan.VkDevice device, int buildType, VkAccelerationStructureBuildGeometryInfoKHR pBuildInfo, @Nullable IntBuffer pMaxPrimitiveCounts, VkAccelerationStructureBuildSizesInfoKHR pSizeInfo) Retrieve the required size for an acceleration structure.C Specification
To get the build sizes for an acceleration structure, call:
void vkGetAccelerationStructureBuildSizesKHR( VkDevice device, VkAccelerationStructureBuildTypeKHR buildType, const VkAccelerationStructureBuildGeometryInfoKHR* pBuildInfo, const uint32_t* pMaxPrimitiveCounts, VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo);Description
The
srcAccelerationStructure,dstAccelerationStructure, andmodemembers ofpBuildInfoare ignored. AnyVkDeviceOrHostAddressKHRorVkDeviceOrHostAddressConstKHRmembers ofpBuildInfoare ignored by this command, except that thehostAddressmember ofVkAccelerationStructureGeometryTrianglesDataKHR::transformDatawill be examined to check if it isNULL.An acceleration structure created with the
accelerationStructureSizereturned by this command supports any build or update with aVkAccelerationStructureBuildGeometryInfoKHRstructure and array ofVkAccelerationStructureBuildRangeInfoKHRstructures subject to the following properties:- The build command is a host build command, and
buildTypeisACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHRorACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR - The build command is a device build command, and
buildTypeisACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHRorACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR - For
VkAccelerationStructureBuildGeometryInfoKHR:- Its
type, andflagsmembers are equal topBuildInfo→typeandpBuildInfo→flags, respectively. geometryCountis less than or equal topBuildInfo→geometryCount.- For each element of either
pGeometriesorppGeometriesat a given index, itsgeometryTypemember is equal topBuildInfo→geometryType. - For each element of either
pGeometriesorppGeometriesat a given index, itsflagsmember is equal to the corresponding member of the same element inpBuildInfo. - For each element of either
pGeometriesorppGeometriesat a given index, with ageometryTypemember equal toGEOMETRY_TYPE_TRIANGLES_KHR, thevertexFormatandindexTypemembers ofgeometry.trianglesare equal to the corresponding members of the same element inpBuildInfo. - For each element of either
pGeometriesorppGeometriesat a given index, with ageometryTypemember equal toGEOMETRY_TYPE_TRIANGLES_KHR, themaxVertexmember ofgeometry.trianglesis less than or equal to the corresponding member of the same element inpBuildInfo. - For each element of either
pGeometriesorppGeometriesat a given index, with ageometryTypemember equal toGEOMETRY_TYPE_TRIANGLES_KHR, if the applicable address in thetransformDatamember ofgeometry.trianglesis notNULL, the correspondingtransformData.hostAddressparameter inpBuildInfois notNULL.
- Its
- For each
VkAccelerationStructureBuildRangeInfoKHRcorresponding to theVkAccelerationStructureBuildGeometryInfoKHR:- Its
primitiveCountmember is less than or equal to the corresponding element ofpMaxPrimitiveCounts. - For each element of either
pGeometriesorppGeometriesat a given index, with ageometryTypemember equal toGEOMETRY_TYPE_TRIANGLES_KHR, if thepNextchain containsVkAccelerationStructureTrianglesOpacityMicromapEXTthe corresponding member ofpBuildInfoalso containsVkAccelerationStructureTrianglesOpacityMicromapEXTand with an equivalentmicromap. - For each element of either
pGeometriesorppGeometriesat a given index, with ageometryTypemember equal toGEOMETRY_TYPE_TRIANGLES_KHR, if thepNextchain containsVkAccelerationStructureTrianglesDisplacementMicromapNVthe corresponding member ofpBuildInfoalso containsVkAccelerationStructureTrianglesDisplacementMicromapNVand with an equivalentmicromap.
- Its
Similarly, the
updateScratchSizevalue will support any build command specifying theBUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHRmodeunder the above conditions, and thebuildScratchSizevalue will support any build command specifying theBUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHRmodeunder the above conditions.Valid Usage
- The
VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructurefeature must be enabled - If
devicewas created with multiple physical devices, then thebufferDeviceAddressMultiDevicefeature must be enabled - If
pBuildInfo→geometryCountis not 0,pMaxPrimitiveCountsmust be a valid pointer to an array ofpBuildInfo→geometryCountuint32_tvalues - If
pBuildInfo→pGeometriesorpBuildInfo→ppGeometrieshas ageometryTypeofGEOMETRY_TYPE_INSTANCES_KHR, eachpMaxPrimitiveCounts[i] must be less than or equal toVkPhysicalDeviceAccelerationStructurePropertiesKHR::maxInstanceCount
Valid Usage (Implicit)
devicemust be a validVkDevicehandlebuildTypemust be a validVkAccelerationStructureBuildTypeKHRvaluepBuildInfomust be a valid pointer to a validVkAccelerationStructureBuildGeometryInfoKHRstructure- If
pMaxPrimitiveCountsis notNULL,pMaxPrimitiveCountsmust be a valid pointer to an array ofpBuildInfo→geometryCountuint32_tvalues pSizeInfomust be a valid pointer to aVkAccelerationStructureBuildSizesInfoKHRstructure
See Also
VkAccelerationStructureBuildGeometryInfoKHR,VkAccelerationStructureBuildSizesInfoKHR- Parameters:
device- the logical device that will be used for creating the acceleration structure.buildType- defines whether host or device operations (or both) are being queried for.pBuildInfo- a pointer to aVkAccelerationStructureBuildGeometryInfoKHRstructure describing parameters of a build operation.pMaxPrimitiveCounts- a pointer to an array ofpBuildInfo→geometryCountuint32_tvalues defining the number of primitives built into each geometry.pSizeInfo- a pointer to aVkAccelerationStructureBuildSizesInfoKHRstructure which returns the size required for an acceleration structure and the sizes required for the scratch buffers, given the build parameters.
- The build command is a host build command, and
-
vkCreateAccelerationStructureKHR
public static int vkCreateAccelerationStructureKHR(org.lwjgl.vulkan.VkDevice device, VkAccelerationStructureCreateInfoKHR pCreateInfo, @Nullable VkAllocationCallbacks pAllocator, long[] pAccelerationStructure) Array version of:CreateAccelerationStructureKHR -
vkCmdBuildAccelerationStructuresIndirectKHR
public static void vkCmdBuildAccelerationStructuresIndirectKHR(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, VkAccelerationStructureBuildGeometryInfoKHR.Buffer pInfos, long[] pIndirectDeviceAddresses, int[] pIndirectStrides, org.lwjgl.PointerBuffer ppMaxPrimitiveCounts) Array version of:CmdBuildAccelerationStructuresIndirectKHR -
vkWriteAccelerationStructuresPropertiesKHR
public static int vkWriteAccelerationStructuresPropertiesKHR(org.lwjgl.vulkan.VkDevice device, long[] pAccelerationStructures, int queryType, ByteBuffer pData, long stride) Array version of:WriteAccelerationStructuresPropertiesKHR -
vkCmdWriteAccelerationStructuresPropertiesKHR
public static void vkCmdWriteAccelerationStructuresPropertiesKHR(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, long[] pAccelerationStructures, int queryType, long queryPool, int firstQuery) Array version of:CmdWriteAccelerationStructuresPropertiesKHR -
vkGetDeviceAccelerationStructureCompatibilityKHR
public static void vkGetDeviceAccelerationStructureCompatibilityKHR(org.lwjgl.vulkan.VkDevice device, VkAccelerationStructureVersionInfoKHR pVersionInfo, int[] pCompatibility) Array version of:GetDeviceAccelerationStructureCompatibilityKHR -
vkGetAccelerationStructureBuildSizesKHR
public static void vkGetAccelerationStructureBuildSizesKHR(org.lwjgl.vulkan.VkDevice device, int buildType, VkAccelerationStructureBuildGeometryInfoKHR pBuildInfo, int @Nullable [] pMaxPrimitiveCounts, VkAccelerationStructureBuildSizesInfoKHR pSizeInfo) Array version of:GetAccelerationStructureBuildSizesKHR
-