vulkan-3.8.1: Bindings to the Vulkan graphics API.
Safe HaskellNone
LanguageHaskell2010

Vulkan.Extensions.VK_KHR_acceleration_structure

Description

Name

VK_KHR_acceleration_structure - device extension

VK_KHR_acceleration_structure

Name String
VK_KHR_acceleration_structure
Extension Type
Device extension
Registered Extension Number
151
Revision
11
Extension and Version Dependencies
  • Requires Vulkan 1.1
  • Requires VK_EXT_descriptor_indexing
  • Requires VK_KHR_buffer_device_address
  • Requires VK_KHR_deferred_host_operations
Contact

Other Extension Metadata

Last Modified Date
2020-11-12
Contributors
  • 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

Description

In order to be efficient, rendering techniques such as ray tracing need a quick way to identify which primitives may be intersected by a ray traversing the geometries. Acceleration structures are the most common way to represent the geometry spatially sorted, in order to quickly identify such potential intersections.

This extension adds new functionalities:

  • Acceleration structure objects and build commands
  • Structures to describe geometry inputs to acceleration structure builds
  • Acceleration structure copy commands

New Object Types

New Commands

New Structures

New Unions

New Enums

New Bitmasks

New Enum Constants

Issues

  1. How does this extension differ from VK_NV_ray_tracing?

DISCUSSION:

The following is a summary of the main functional differences between VK_KHR_acceleration_structure and VK_NV_ray_tracing:

  1. Can you give a more detailed comparision of differences and similarities between VK_NV_ray_tracing and VK_KHR_acceleration_structure?

DISCUSSION:

The following is a more detailed comparision of which commands, structures, and enums are aliased, changed, or removed.

  1. What are the changes between the public provisional (VK_KHR_ray_tracing v8) release and the internal provisional (VK_KHR_ray_tracing v9) release?
  1. What are the changes between the internal provisional (VK_KHR_ray_tracing v9) release and the final (VK_KHR_acceleration_structure v11) release?
  1. What is ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR for?

RESOLVED: It is primarily intended for API layering. In DXR, the acceleration structure is basically just a buffer in a special layout, and you don’t know at creation time whether it will be used as a top or bottom level acceleration structure. We thus added a generic acceleration structure type whose type is unknown at creation time, but is specified at build type instead. Applications which are written directly for Vulkan should not use it.

Version History

  • Revision 1, 2019-12-05 (Members of the Vulkan Ray Tracing TSG)

    • Internal revisions (forked from VK_NV_ray_tracing)
  • Revision 2, 2019-12-20 (Daniel Koch, Eric Werness)

    • Add const version of DeviceOrHostAddress (!3515)
    • Add VU to clarify that only handles in the current pipeline are valid (!3518)
    • Restore some missing VUs and add in-place update language (#1902, !3522)
    • rename VkAccelerationStructureInstanceKHR member from accelerationStructure to accelerationStructureReference to better match its type (!3523)
    • Allow VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS for pipeline creation if shader group handles cannot be re-used. (!3523)
    • update documentation for the VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS error code and add missing documentation for new return codes from VK_KHR_deferred_host_operations (!3523)
    • list new query types for VK_KHR_ray_tracing (!3523)
    • Fix VU statements for VkAccelerationStructureGeometryKHR referring to correct union members and update to use more current wording (!3523)
  • Revision 3, 2020-01-10 (Daniel Koch, Jon Leech, Christoph Kubisch)

    • Fix 'instance of' and 'that/which contains/defines' markup issues (!3528)
    • factor out VK_KHR_pipeline_library as stand-alone extension (!3540)
    • Resolve Vulkan-hpp issues (!3543)
    • add missing require for VkGeometryInstanceFlagsKHR
    • de-alias VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV since the KHR structure is no longer equivalent
    • add len to pDataSize attribute for vkWriteAccelerationStructuresPropertiesKHR
  • Revision 4, 2020-01-23 (Daniel Koch, Eric Werness)

    • Improve vkWriteAccelerationStructuresPropertiesKHR, add return value and VUs (#1947)
    • Clarify language to allow multiple raygen shaders (#1959)
    • Various editorial feedback (!3556)
    • Add language to help deal with looped self-intersecting fans (#1901)
    • Change vkCmdTraceRays{Indirect}KHR args to pointers (!3559)
    • Add scratch address validation language (#1941, !3551)
    • Fix definition and add hierarchy information for shader call scope (#1977, !3571)
  • Revision 5, 2020-02-04 (Eric Werness, Jeff Bolz, Daniel Koch)

    • remove vestigial accelerationStructureUUID (!3582)
    • update definition of repack instructions and improve memory model interactions (1913, !3584)
    • Fix wrong sType for VkPhysicalDeviceRayTracingFeaturesKHR (#1988)
    • Use provisional SPIR-V capabilities (#1987)
    • require rayTraversalPrimitiveCulling if rayQuery is supported (#1927)
    • Miss shaders do not have object parameters (!3592)
    • Fix missing required types in XML (!3592)
    • clarify matching conditions for update (!3592)
    • add goal that host and device builds be similar (!3592)
    • clarify that maxPrimitiveCount limit should apply to triangles and AABBs (!3592)
    • Require alignment for instance arrayOfPointers (!3592)
    • Zero is a valid value for instance flags (!3592)
    • Add some alignment VUs that got lost in refactoring (!3592)
    • Recommend TMin epsilon rather than culling (!3592)
    • Get angle from dot product not cross product (!3592)
    • Clarify that AH can access the payload and attributes (!3592)
    • Match DXR behavior for inactive primitive definition (!3592)
    • Use a more generic term than degenerate for inactive to avoid confusion (!3592)
  • Revision 6, 2020-02-20 (Daniel Koch)

    • fix some dangling NV references (#1996)
    • rename VkCmdTraceRaysIndirectCommandKHR to VkTraceRaysIndirectCommandKHR (!3607)
    • update contributor list (!3611)
    • use uint64_t instead of VkAccelerationStructureReferenceKHR in VkAccelerationStructureInstanceKHR (#2004)
  • Revision 7, 2020-02-28 (Tobias Hector)

    • remove HitTKHR SPIR-V builtin (spirv/spirv-extensions#7)
  • Revision 8, 2020-03-06 (Tobias Hector, Dae Kim, Daniel Koch, Jeff Bolz, Eric Werness)

    • explicitly state that Tmax is updated when new closest intersection is accepted (#2020,!3536)
    • Made references to min and max t values consistent (!3644)
    • finish enumerating differences relative to VK_NV_ray_tracing in issues (1) and (2) (#1974,!3642)
    • fix formatting in some math equations (!3642)
    • Restrict the Hit Kind operand of OpReportIntersectionKHR to 7-bits (spirv/spirv-extensions#8,!3646)
    • Say ray tracing 'should' be watertight (#2008,!3631)
    • Clarify memory requirements for ray tracing buffers (#2005,!3649)
    • Add callable size limits (#1997,!3652)
  • Revision 9, 2020-04-15 (Eric Werness, Daniel Koch, Tobias Hector, Joshua Barczak)

    • Add geometry flags to acceleration structure creation (!3672)
    • add build scratch memory alignment (minAccelerationStructureScratchOffsetAlignment) (#2065,!3725)
    • fix naming and return enum from vkGetDeviceAccelerationStructureCompatibilityKHR (#2051,!3726)
    • require SPIR-V 1.4 (#2096,!3777)
    • added creation time capture/replay flags (#2104,!3774)
    • require Vulkan 1.1 (#2133,!3806)
    • use device addresses instead of VkBuffers for ray tracing commands (#2074,!3815)
    • add interactions with Vulkan 1.2 and VK_KHR_vulkan_memory_model (#2133,!3830)
    • make VK_KHR_pipeline_library an interaction instead of required (2108,!3830)
    • make VK_KHR_deferred_host_operations an interaction instead of required (#2045,!3830)
    • removed maxCallableSize and added explicit stack size management for ray pipelines (#1997,!3817,!3772,!3844)
    • improved documentation for VkAccelerationStructureVersionInfoKHR (#2135,3835)
    • rename VkAccelerationStructureBuildOffsetInfoKHR to VkAccelerationStructureBuildRangeInfoKHR (#2058,!3754)
    • Re-unify geometry description between build and create (!3754)
    • Fix ppGeometries ambiguity, add pGeometries (#2032,!3811)
    • add interactions with VK_EXT_robustness2 and allow nullDescriptor support for acceleration structures (#1920,!3848)
    • added future extensibility for AS updates (#2114,!3849)
    • Fix VU for dispatchrays and add a limit on the size of the full grid (#2160,!3851)
    • Add shaderGroupHandleAlignment property (#2180,!3875)
    • Clarify deferred host ops for pipeline creation (#2067,!3813)
    • Change acceleration structure build to always be sized (2197,#2198,!3854,!3883,!3880)
  • Revision 10, 2020-07-03 (Mathieu Robart, Daniel Koch, Eric Werness, Tobias Hector)

    • Decomposition of the specification, from VK_KHR_ray_tracing to VK_KHR_acceleration_structure (#1918,!3912)
    • clarify buffer usage flags for ray tracing (#2181,!3939)
    • add max primitive counts to build indirect command (#2233,!3944)
    • Allocate acceleration structures from VkBuffers and add a mode to constrain the device address (#2131,!3936)
    • Move VK_GEOMETRY_TYPE_INSTANCES_KHR to main enum (#2243,!3952)
    • make build commands more consistent (#2247,!3958)
    • add interactions with UPDATE_AFTER_BIND (#2128,!3986)
    • correct and expand build command VUs (!4020)
    • fix copy command VUs (!4018)
    • added various alignment requirements (#2229,!3943)
    • fix valid usage for arrays of geometryCount items (#2198,!4010)
    • define what is allowed to change on RTAS updates and relevant VUs (#2177,!3961)
  • Revision 11, 2020-11-12 (Eric Werness, Josh Barczak, Daniel Koch, Tobias Hector)

    • de-alias NV and KHR acceleration structure types and associated commands (#2271,!4035)
    • specify alignment for host copy commands (#2273,!4037)
    • document FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR
    • specify that acceleration structures are non-linear (#2289,!4068)
    • add several missing VUs for strides, vertexFormat, and indexType (#2315,!4069)
    • restore VUs for VkAccelerationStructureBuildGeometryInfoKHR (#2337,!4098)
    • ban multi-instance memory for host operations (#2324,!4102)
    • allow dstAccelerationStructure to be null for vkGetAccelerationStructureBuildSizesKHR (#2330,!4111)
    • more build VU cleanup (4130)
    • specify host endianness for AS serialization (#2261,!4136)
    • add invertible transform matrix VU (#1710,!4140)
    • require geometryCount to be 1 for TLAS builds (!4145)
    • improved validity conditions for build addresses (#4142)
    • add single statement SPIR-V VUs, build limit VUs (!4158)
    • document limits for vertex and aabb strides (#2390,!4184)
    • specify that PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR applies to AS copies (4173)
    • define sync for AS build inputs and indirect buffer (#2407,!4208)

See Also

AabbPositionsKHR, AccelerationStructureBuildGeometryInfoKHR, AccelerationStructureBuildRangeInfoKHR, AccelerationStructureBuildSizesInfoKHR, AccelerationStructureBuildTypeKHR, AccelerationStructureCompatibilityKHR, AccelerationStructureCreateFlagBitsKHR, AccelerationStructureCreateFlagsKHR, AccelerationStructureCreateInfoKHR, AccelerationStructureDeviceAddressInfoKHR, AccelerationStructureGeometryAabbsDataKHR, AccelerationStructureGeometryDataKHR, AccelerationStructureGeometryInstancesDataKHR, AccelerationStructureGeometryKHR, AccelerationStructureGeometryTrianglesDataKHR, AccelerationStructureInstanceKHR, AccelerationStructureKHR, AccelerationStructureTypeKHR, AccelerationStructureVersionInfoKHR, BuildAccelerationStructureFlagBitsKHR, BuildAccelerationStructureFlagsKHR, BuildAccelerationStructureModeKHR, CopyAccelerationStructureInfoKHR, CopyAccelerationStructureModeKHR, CopyAccelerationStructureToMemoryInfoKHR, CopyMemoryToAccelerationStructureInfoKHR, DeviceOrHostAddressConstKHR, DeviceOrHostAddressKHR, GeometryFlagBitsKHR, GeometryFlagsKHR, GeometryInstanceFlagBitsKHR, GeometryInstanceFlagsKHR, GeometryTypeKHR, PhysicalDeviceAccelerationStructureFeaturesKHR, PhysicalDeviceAccelerationStructurePropertiesKHR, TransformMatrixKHR, WriteDescriptorSetAccelerationStructureKHR, buildAccelerationStructuresKHR, cmdBuildAccelerationStructuresIndirectKHR, cmdBuildAccelerationStructuresKHR, cmdCopyAccelerationStructureKHR, cmdCopyAccelerationStructureToMemoryKHR, cmdCopyMemoryToAccelerationStructureKHR, cmdWriteAccelerationStructuresPropertiesKHR, copyAccelerationStructureKHR, copyAccelerationStructureToMemoryKHR, copyMemoryToAccelerationStructureKHR, createAccelerationStructureKHR, destroyAccelerationStructureKHR, getAccelerationStructureBuildSizesKHR, getAccelerationStructureDeviceAddressKHR, getDeviceAccelerationStructureCompatibilityKHR, writeAccelerationStructuresPropertiesKHR

Document Notes

For more information, see the Vulkan Specification

This page is a generated document. Fixes and changes should be made to the generator scripts, not directly.

Synopsis

Documentation

destroyAccelerationStructureKHR Source #

Arguments

:: forall io. MonadIO io 
=> Device

device is the logical device that destroys the buffer.

-> AccelerationStructureKHR

accelerationStructure is the acceleration structure to destroy.

-> ("allocator" ::: Maybe AllocationCallbacks)

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

-> io () 

vkDestroyAccelerationStructureKHR - Destroy an acceleration structure object

Valid Usage

  • All submitted commands that refer to accelerationStructure must have completed execution
  • If AllocationCallbacks were provided when accelerationStructure was created, a compatible set of callbacks must be provided here
  • If no AllocationCallbacks were provided when accelerationStructure was created, pAllocator must be NULL

Valid Usage (Implicit)

  • device must be a valid Device handle
  • If accelerationStructure is not NULL_HANDLE, accelerationStructure must be a valid AccelerationStructureKHR handle
  • If pAllocator is not NULL, pAllocator must be a valid pointer to a valid AllocationCallbacks structure
  • If accelerationStructure is a valid handle, it must have been created, allocated, or retrieved from device

Host Synchronization

  • Host access to accelerationStructure must be externally synchronized

See Also

AccelerationStructureKHR, AllocationCallbacks, Device

cmdCopyAccelerationStructureKHR Source #

Arguments

:: forall io. MonadIO io 
=> CommandBuffer

commandBuffer is the command buffer into which the command will be recorded.

-> CopyAccelerationStructureInfoKHR

pInfo is a pointer to a CopyAccelerationStructureInfoKHR structure defining the copy operation.

-> io () 

vkCmdCopyAccelerationStructureKHR - Copy an acceleration structure

Description

Accesses to pInfo->src and pInfo->dst must be synchronized with the PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR pipeline stage and an access type of ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR or ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR as appropriate.

Valid Usage

  • The buffer used to create pInfo->src must be bound to device memory
  • The buffer used to create pInfo->dst must be bound to device memory

Valid Usage (Implicit)

Host Synchronization

  • Host access to commandBuffer must be externally synchronized
  • Host access to the CommandPool that commandBuffer was allocated from must be externally synchronized

Command Properties

'

Command Buffer Levels Render Pass Scope Supported Queue Types Pipeline Type
Primary Secondary Outside Compute

See Also

CommandBuffer, CopyAccelerationStructureInfoKHR

copyAccelerationStructureKHR Source #

Arguments

:: forall io. MonadIO io 
=> Device

device is the device which owns the acceleration structures.

-> DeferredOperationKHR

deferredOperation is an optional DeferredOperationKHR to request deferral for this command.

-> CopyAccelerationStructureInfoKHR

pInfo is a pointer to a CopyAccelerationStructureInfoKHR structure defining the copy operation.

-> io Result 

vkCopyAccelerationStructureKHR - Copy an acceleration structure on the host

Description

This command fulfills the same task as cmdCopyAccelerationStructureKHR but is executed by the host.

Valid Usage

  • Any previous deferred operation that was associated with deferredOperation must be complete
  • The buffer used to create pInfo->src must be bound to host-visible device memory
  • The buffer used to create pInfo->dst must be bound to host-visible device memory
  • The ::accelerationStructureHostCommands feature must be enabled
  • The buffer used to create pInfo->src must be bound to memory that was not allocated with multiple instances
  • The buffer used to create pInfo->dst must be bound to memory that was not allocated with multiple instances

Valid Usage (Implicit)

  • device must be a valid Device handle

Return Codes

Success
Failure

See Also

CopyAccelerationStructureInfoKHR, DeferredOperationKHR, Device

cmdCopyAccelerationStructureToMemoryKHR Source #

Arguments

:: forall io. MonadIO io 
=> CommandBuffer

commandBuffer is the command buffer into which the command will be recorded.

-> CopyAccelerationStructureToMemoryInfoKHR

pInfo is an a pointer to a CopyAccelerationStructureToMemoryInfoKHR structure defining the copy operation.

-> io () 

vkCmdCopyAccelerationStructureToMemoryKHR - Copy an acceleration structure to device memory

Description

Accesses to pInfo->src must be synchronized with the PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR pipeline stage and an access type of ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR. Accesses to the buffer indicated by pInfo->dst.deviceAddress must be synchronized with the PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR pipeline stage and an access type of ACCESS_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 either cmdCopyMemoryToAccelerationStructureKHR or copyMemoryToAccelerationStructureKHR.

The defined header structure for the serialized data consists of:

The corresponding handles matching the values returned by getAccelerationStructureDeviceAddressKHR or getAccelerationStructureHandleNV are 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

  • pInfo->dst.deviceAddress must be a valid device address for a buffer bound to device memory.
  • pInfo->dst.deviceAddress must be aligned to 256 bytes
  • If the buffer pointed to by pInfo->dst.deviceAddress is non-sparse then it must be bound completely and contiguously to a single DeviceMemory object
  • The buffer used to create pInfo->src must be bound to device memory

Valid Usage (Implicit)

Host Synchronization

  • Host access to commandBuffer must be externally synchronized
  • Host access to the CommandPool that commandBuffer was allocated from must be externally synchronized

Command Properties

'

Command Buffer Levels Render Pass Scope Supported Queue Types Pipeline Type
Primary Secondary Outside Compute

See Also

CommandBuffer, CopyAccelerationStructureToMemoryInfoKHR

copyAccelerationStructureToMemoryKHR Source #

Arguments

:: forall io. MonadIO io 
=> Device

device is the device which owns pInfo->src.

-> DeferredOperationKHR

deferredOperation is an optional DeferredOperationKHR to request deferral for this command.

-> CopyAccelerationStructureToMemoryInfoKHR

pInfo is a pointer to a CopyAccelerationStructureToMemoryInfoKHR structure defining the copy operation.

-> io Result 

vkCopyAccelerationStructureToMemoryKHR - Serialize an acceleration structure on the host

Description

This command fulfills the same task as cmdCopyAccelerationStructureToMemoryKHR but 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 either cmdCopyMemoryToAccelerationStructureKHR or copyMemoryToAccelerationStructureKHR.

Valid Usage

  • Any previous deferred operation that was associated with deferredOperation must be complete
  • The buffer used to create pInfo->src must be bound to host-visible device memory
  • pInfo->dst.hostAddress must be a valid host pointer
  • pInfo->dst.hostAddress must be aligned to 16 bytes
  • The ::accelerationStructureHostCommands feature must be enabled
  • The buffer used to create pInfo->src must be bound to memory that was not allocated with multiple instances

Valid Usage (Implicit)

  • device must be a valid Device handle

Return Codes

Success
Failure

See Also

CopyAccelerationStructureToMemoryInfoKHR, DeferredOperationKHR, Device

cmdCopyMemoryToAccelerationStructureKHR Source #

Arguments

:: forall io. MonadIO io 
=> CommandBuffer

commandBuffer is the command buffer into which the command will be recorded.

-> CopyMemoryToAccelerationStructureInfoKHR

pInfo is a pointer to a CopyMemoryToAccelerationStructureInfoKHR structure defining the copy operation.

-> io () 

vkCmdCopyMemoryToAccelerationStructureKHR - Copy device memory to an acceleration structure

Description

Accesses to pInfo->dst must be synchronized with the PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR pipeline stage and an access type of ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR. Accesses to the buffer indicated by pInfo->src.deviceAddress must be synchronized with the PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR pipeline stage and an access type of ACCESS_TRANSFER_READ_BIT.

This command can accept acceleration structures produced by either cmdCopyAccelerationStructureToMemoryKHR or copyAccelerationStructureToMemoryKHR.

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

  • pInfo->src.deviceAddress must be a valid device address for a buffer bound to device memory.
  • pInfo->src.deviceAddress must be aligned to 256 bytes
  • If the buffer pointed to by pInfo->src.deviceAddress is non-sparse then it must be bound completely and contiguously to a single DeviceMemory object
  • The buffer used to create pInfo->dst must be bound to device memory

Valid Usage (Implicit)

Host Synchronization

  • Host access to commandBuffer must be externally synchronized
  • Host access to the CommandPool that commandBuffer was allocated from must be externally synchronized

Command Properties

'

Command Buffer Levels Render Pass Scope Supported Queue Types Pipeline Type
Primary Secondary Outside Compute

See Also

CommandBuffer, CopyMemoryToAccelerationStructureInfoKHR

copyMemoryToAccelerationStructureKHR Source #

Arguments

:: forall io. MonadIO io 
=> Device

device is the device which owns pInfo->dst.

-> DeferredOperationKHR

deferredOperation is an optional DeferredOperationKHR to request deferral for this command.

-> CopyMemoryToAccelerationStructureInfoKHR

pInfo is a pointer to a CopyMemoryToAccelerationStructureInfoKHR structure defining the copy operation.

-> io Result 

vkCopyMemoryToAccelerationStructureKHR - Deserialize an acceleration structure on the host

Description

This command fulfills the same task as cmdCopyMemoryToAccelerationStructureKHR but is executed by the host.

This command can accept acceleration structures produced by either cmdCopyAccelerationStructureToMemoryKHR or copyAccelerationStructureToMemoryKHR.

Valid Usage

  • Any previous deferred operation that was associated with deferredOperation must be complete
  • pInfo->src.hostAddress must be a valid host pointer
  • pInfo->src.hostAddress must be aligned to 16 bytes
  • The buffer used to create pInfo->dst must be bound to host-visible device memory
  • The ::accelerationStructureHostCommands feature must be enabled
  • The buffer used to create pInfo->dst must be bound to memory that was not allocated with multiple instances

Valid Usage (Implicit)

  • device must be a valid Device handle

Return Codes

Success
Failure

See Also

CopyMemoryToAccelerationStructureInfoKHR, DeferredOperationKHR, Device

cmdWriteAccelerationStructuresPropertiesKHR Source #

Arguments

:: forall io. MonadIO io 
=> CommandBuffer

commandBuffer is the command buffer into which the command will be recorded.

-> ("accelerationStructures" ::: Vector AccelerationStructureKHR)

pAccelerationStructures is a pointer to an array of existing previously built acceleration structures.

-> QueryType

queryType is a QueryType value specifying the type of queries managed by the pool.

-> QueryPool

queryPool is the query pool that will manage the results of the query.

-> ("firstQuery" ::: Word32)

firstQuery is the first query index within the query pool that will contain the accelerationStructureCount number of results.

-> io () 

vkCmdWriteAccelerationStructuresPropertiesKHR - Write acceleration structure result parameters to query results.

Description

Accesses to any of the acceleration structures listed in pAccelerationStructures must be synchronized with the PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR pipeline stage and an access type of ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR.

Valid Usage

  • queryPool must have been created with a queryType matching queryType

Valid Usage (Implicit)

  • pAccelerationStructures must be a valid pointer to an array of accelerationStructureCount valid AccelerationStructureKHR handles
  • queryType must be a valid QueryType value
  • queryPool must be a valid QueryPool handle
  • commandBuffer must be in the recording state
  • The CommandPool that commandBuffer was allocated from must support compute operations
  • This command must only be called outside of a render pass instance
  • accelerationStructureCount must be greater than 0
  • Each of commandBuffer, queryPool, and the elements of pAccelerationStructures must have been created, allocated, or retrieved from the same Device

Host Synchronization

  • Host access to commandBuffer must be externally synchronized
  • Host access to the CommandPool that commandBuffer was allocated from must be externally synchronized

Command Properties

'

Command Buffer Levels Render Pass Scope Supported Queue Types Pipeline Type
Primary Secondary Outside Compute

See Also

AccelerationStructureKHR, CommandBuffer, QueryPool, QueryType

writeAccelerationStructuresPropertiesKHR Source #

Arguments

:: forall io. MonadIO io 
=> Device

device is the device which owns the acceleration structures in pAccelerationStructures.

-> ("accelerationStructures" ::: Vector AccelerationStructureKHR)

pAccelerationStructures points to an array of existing previously built acceleration structures.

-> QueryType

queryType is a QueryType value specifying the property to be queried.

-> ("dataSize" ::: Word64)

dataSize is the size in bytes of the buffer pointed to by pData.

-> ("data" ::: Ptr ())

pData is a pointer to a user-allocated buffer where the results will be written.

-> ("stride" ::: Word64)

stride is the stride in bytes between results for individual queries within pData.

-> io () 

vkWriteAccelerationStructuresPropertiesKHR - Query acceleration structure meta-data on the host

Description

This command fulfills the same task as cmdWriteAccelerationStructuresPropertiesKHR but is executed by the host.

Valid Usage

Valid Usage (Implicit)

  • device must be a valid Device handle
  • pAccelerationStructures must be a valid pointer to an array of accelerationStructureCount valid AccelerationStructureKHR handles
  • queryType must be a valid QueryType value
  • pData must be a valid pointer to an array of dataSize bytes
  • accelerationStructureCount must be greater than 0
  • dataSize must be greater than 0
  • Each element of pAccelerationStructures must have been created, allocated, or retrieved from device

Return Codes

Success
Failure

See Also

AccelerationStructureKHR, Device, QueryType

getDeviceAccelerationStructureCompatibilityKHR Source #

Arguments

:: forall io. MonadIO io 
=> Device

device is the device to check the version against.

-> AccelerationStructureVersionInfoKHR

pVersionInfo points to the AccelerationStructureVersionInfoKHR version information to check against the device.

-> io AccelerationStructureCompatibilityKHR 

vkGetDeviceAccelerationStructureCompatibilityKHR - Check if a serialized acceleration structure is compatible with the current device

Valid Usage

Valid Usage (Implicit)

  • device must be a valid Device handle

See Also

AccelerationStructureCompatibilityKHR, AccelerationStructureVersionInfoKHR, Device

createAccelerationStructureKHR Source #

Arguments

:: forall io. MonadIO io 
=> Device

device is the logical device that creates the acceleration structure object.

-> AccelerationStructureCreateInfoKHR

pCreateInfo is a pointer to a AccelerationStructureCreateInfoKHR structure containing parameters affecting creation of the acceleration structure.

-> ("allocator" ::: Maybe AllocationCallbacks)

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

-> io AccelerationStructureKHR 

vkCreateAccelerationStructureKHR - Create a new acceleration structure object

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 of AccelerationStructureCreateInfoKHR.

Populating the data in the object after allocating and binding memory is done with commands such as cmdBuildAccelerationStructuresKHR, buildAccelerationStructuresKHR, cmdCopyAccelerationStructureKHR, and copyAccelerationStructureKHR.

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 may re-use 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

Valid Usage (Implicit)

  • device must be a valid Device handle

Return Codes

Success
Failure

See Also

AccelerationStructureCreateInfoKHR, AccelerationStructureKHR, AllocationCallbacks, Device

withAccelerationStructureKHR :: forall io r. MonadIO io => Device -> AccelerationStructureCreateInfoKHR -> Maybe AllocationCallbacks -> (io AccelerationStructureKHR -> (AccelerationStructureKHR -> io ()) -> r) -> r Source #

A convenience wrapper to make a compatible pair of calls to createAccelerationStructureKHR and destroyAccelerationStructureKHR

To ensure that destroyAccelerationStructureKHR is always called: pass bracket (or the allocate function from your favourite resource management library) as the last argument. To just extract the pair pass (,) as the last argument.

cmdBuildAccelerationStructuresKHR Source #

Arguments

:: forall io. MonadIO io 
=> CommandBuffer

commandBuffer is the command buffer into which the command will be recorded.

-> ("infos" ::: Vector AccelerationStructureBuildGeometryInfoKHR)

pInfos is an array of infoCount AccelerationStructureBuildGeometryInfoKHR structures defining the geometry used to build each acceleration structure.

-> ("buildRangeInfos" ::: Vector (Vector AccelerationStructureBuildRangeInfoKHR))

ppBuildRangeInfos is an array of infoCount pointers to arrays of AccelerationStructureBuildRangeInfoKHR structures. Each ppBuildRangeInfos[i] is an array of pInfos[i].geometryCount AccelerationStructureBuildRangeInfoKHR structures defining dynamic offsets to the addresses where geometry data is stored, as defined by pInfos[i].

-> io () 

vkCmdBuildAccelerationStructuresKHR - Build an acceleration structure

Description

The cmdBuildAccelerationStructuresKHR command 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 cmdBuildAccelerationStructuresKHR call 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 AccelerationStructureBuildGeometryInfoKHRscratchData buffer device addresses must be synchronized with the PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR pipeline stage and an access type of ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR or ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR. Similarly for accesses to each AccelerationStructureBuildGeometryInfoKHRsrcAccelerationStructure and AccelerationStructureBuildGeometryInfoKHRdstAccelerationStructure.

Accesses to other input buffers as identified by any used values of AccelerationStructureGeometryTrianglesDataKHRvertexData, AccelerationStructureGeometryTrianglesDataKHRindexData, AccelerationStructureGeometryTrianglesDataKHRtransformData, AccelerationStructureGeometryAabbsDataKHRdata, and AccelerationStructureGeometryInstancesDataKHRdata must be synchronized with the PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR pipeline stage and an access type of ACCESS_SHADER_READ_BIT.

Valid Usage

  • The srcAccelerationStructure member of any element of pInfos must not be the same acceleration structure as the dstAccelerationStructure member of any other element of pInfos

Valid Usage (Implicit)

Host Synchronization

  • Host access to commandBuffer must be externally synchronized
  • Host access to the CommandPool that commandBuffer was allocated from must be externally synchronized

Command Properties

'

Command Buffer Levels Render Pass Scope Supported Queue Types Pipeline Type
Primary Secondary Outside Compute

See Also

AccelerationStructureBuildGeometryInfoKHR, AccelerationStructureBuildRangeInfoKHR, CommandBuffer

cmdBuildAccelerationStructuresIndirectKHR Source #

Arguments

:: forall io. MonadIO io 
=> CommandBuffer

commandBuffer is the command buffer into which the command will be recorded.

-> ("infos" ::: Vector AccelerationStructureBuildGeometryInfoKHR)

pInfos is an array of infoCount AccelerationStructureBuildGeometryInfoKHR structures defining the geometry used to build each acceleration structure.

-> ("indirectDeviceAddresses" ::: Vector DeviceAddress)

pIndirectDeviceAddresses is an array of infoCount buffer device addresses which point to pInfos[i]→geometryCount AccelerationStructureBuildRangeInfoKHR structures defining dynamic offsets to the addresses where geometry data is stored, as defined by pInfos[i].

-> ("indirectStrides" ::: Vector Word32)

pIndirectStrides is an array of infoCount byte strides between elements of pIndirectDeviceAddresses.

-> ("maxPrimitiveCounts" ::: Vector (Vector Word32))

ppMaxPrimitiveCounts is an array of infoCount arrays of pInfo[i]→geometryCount values indicating the maximum number of primitives that will be built by this command for each geometry.

-> io () 

vkCmdBuildAccelerationStructuresIndirectKHR - Build an acceleration structure with some parameters provided on the device

Description

Accesses to acceleration structures, scratch buffers, vertex buffers, index buffers, and instance buffers must be synchronized as with cmdBuildAccelerationStructuresKHR.

Accesses to any element of pIndirectDeviceAddresses must be synchronized with the PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR pipeline stage and an access type of ACCESS_INDIRECT_COMMAND_READ_BIT.

Valid Usage

  • The srcAccelerationStructure member of any element of pInfos must not be the same acceleration structure as the dstAccelerationStructure member of any other element of pInfos

Valid Usage (Implicit)

  • pInfos must be a valid pointer to an array of infoCount valid AccelerationStructureBuildGeometryInfoKHR structures
  • pIndirectDeviceAddresses must be a valid pointer to an array of infoCount DeviceAddress values
  • pIndirectStrides must be a valid pointer to an array of infoCount uint32_t values
  • ppMaxPrimitiveCounts must be a valid pointer to an array of infoCount uint32_t values
  • commandBuffer must be in the recording state
  • The CommandPool that commandBuffer was allocated from must support compute operations
  • This command must only be called outside of a render pass instance
  • infoCount must be greater than 0

Host Synchronization

  • Host access to commandBuffer must be externally synchronized
  • Host access to the CommandPool that commandBuffer was allocated from must be externally synchronized

Command Properties

'

Command Buffer Levels Render Pass Scope Supported Queue Types Pipeline Type
Primary Secondary Outside Compute

See Also

AccelerationStructureBuildGeometryInfoKHR, CommandBuffer, DeviceAddress

buildAccelerationStructuresKHR Source #

Arguments

:: forall io. MonadIO io 
=> Device

device is the Device for which the acceleration structures are being built.

-> DeferredOperationKHR

deferredOperation is an optional DeferredOperationKHR to request deferral for this command.

-> ("infos" ::: Vector AccelerationStructureBuildGeometryInfoKHR)

pInfos is a pointer to an array of infoCount AccelerationStructureBuildGeometryInfoKHR structures defining the geometry used to build each acceleration structure.

-> ("buildRangeInfos" ::: Vector (Vector AccelerationStructureBuildRangeInfoKHR))

ppBuildRangeInfos is an array of infoCount pointers to arrays of AccelerationStructureBuildRangeInfoKHR structures. Each ppBuildRangeInfos[i] is an array of pInfos[i].geometryCount AccelerationStructureBuildRangeInfoKHR structures defining dynamic offsets to the addresses where geometry data is stored, as defined by pInfos[i].

-> io Result 

vkBuildAccelerationStructuresKHR - Build an acceleration structure on the host

Description

This command fulfills the same task as cmdBuildAccelerationStructuresKHR but is executed by the host.

The buildAccelerationStructuresKHR command 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 buildAccelerationStructuresKHR call 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 srcAccelerationStructure member of any element of pInfos must not be the same acceleration structure as the dstAccelerationStructure member of any other element of pInfos

Valid Usage (Implicit)

  • device must be a valid Device handle

Return Codes

Success
Failure

See Also

AccelerationStructureBuildGeometryInfoKHR, AccelerationStructureBuildRangeInfoKHR, DeferredOperationKHR, Device

getAccelerationStructureDeviceAddressKHR Source #

Arguments

:: forall io. MonadIO io 
=> Device

device is the logical device that the accelerationStructure was created on.

-> AccelerationStructureDeviceAddressInfoKHR

pInfo is a pointer to a AccelerationStructureDeviceAddressInfoKHR structure specifying the acceleration structure to retrieve an address for.

-> io DeviceAddress 

vkGetAccelerationStructureDeviceAddressKHR - Query an address of a acceleration structure

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 AccelerationStructureCreateInfoKHR::deviceAddress the return value will be the same address.

If the acceleration structure was created with a type of ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR the returned address must be consistent with the relative offset to other acceleration structures of type of ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR allocated with the same Buffer. That is, the difference in returned addresses between the two must be the same as the difference in offsets provided at acceleration structure creation.

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

Valid Usage (Implicit)

  • device must be a valid Device handle

See Also

AccelerationStructureDeviceAddressInfoKHR, Device

getAccelerationStructureBuildSizesKHR Source #

Arguments

:: forall io. MonadIO io 
=> Device

device is the logical device that will be used for creating the acceleration structure.

-> AccelerationStructureBuildTypeKHR

buildType defines whether host or device operations (or both) are being queried for.

-> ("buildInfo" ::: AccelerationStructureBuildGeometryInfoKHR)

pBuildInfo is a pointer to a AccelerationStructureBuildGeometryInfoKHR structure describing parameters of a build operation.

-> ("maxPrimitiveCounts" ::: Vector Word32)

pMaxPrimitiveCounts is a pointer to an array of pBuildInfo->geometryCount uint32_t values defining the number of primitives built into each geometry.

-> io ("sizeInfo" ::: AccelerationStructureBuildSizesInfoKHR) 

vkGetAccelerationStructureBuildSizesKHR - Retrieve the required size for an acceleration structure

Description

The srcAccelerationStructure, dstAccelerationStructure, and mode members of pBuildInfo are ignored. Any DeviceOrHostAddressKHR members of pBuildInfo are ignored by this command, except that the hostAddress member of AccelerationStructureGeometryTrianglesDataKHR::transformData will be examined to check if it is NULL.

An acceleration structure created with the accelerationStructureSize returned by this command supports any build or update with a AccelerationStructureBuildGeometryInfoKHR structure and array of AccelerationStructureBuildRangeInfoKHR structures subject to the following properties:

Similarly, the updateScratchSize value will support any build command specifying the BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR mode under the above conditions, and the buildScratchSize value will support any build command specifying the BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR mode under the above conditions.

Valid Usage

Valid Usage (Implicit)

  • device must be a valid Device handle

See Also

AccelerationStructureBuildGeometryInfoKHR, AccelerationStructureBuildSizesInfoKHR, AccelerationStructureBuildTypeKHR, Device

data WriteDescriptorSetAccelerationStructureKHR Source #

VkWriteDescriptorSetAccelerationStructureKHR - Structure specifying acceleration structure descriptor info

Valid Usage

  • accelerationStructureCount must be equal to descriptorCount in the extended structure

Valid Usage (Implicit)

  • pAccelerationStructures must be a valid pointer to an array of accelerationStructureCount valid or NULL_HANDLE AccelerationStructureKHR handles
  • accelerationStructureCount must be greater than 0

See Also

AccelerationStructureKHR, StructureType

Constructors

WriteDescriptorSetAccelerationStructureKHR 

Fields

data PhysicalDeviceAccelerationStructureFeaturesKHR Source #

VkPhysicalDeviceAccelerationStructureFeaturesKHR - Structure describing the acceleration structure features that can be supported by an implementation

Members

The members of the PhysicalDeviceAccelerationStructureFeaturesKHR structure describe the following features:

Description

If the PhysicalDeviceAccelerationStructureFeaturesKHR structure is included in the pNext chain of PhysicalDeviceFeatures2, it is filled with values indicating whether the feature is supported. PhysicalDeviceAccelerationStructureFeaturesKHR can also be used in the pNext chain of DeviceCreateInfo to enable the features.

Valid Usage (Implicit)

See Also

Bool32, StructureType

Constructors

PhysicalDeviceAccelerationStructureFeaturesKHR 

Fields

Instances

Instances details
Eq PhysicalDeviceAccelerationStructureFeaturesKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Show PhysicalDeviceAccelerationStructureFeaturesKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Storable PhysicalDeviceAccelerationStructureFeaturesKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

FromCStruct PhysicalDeviceAccelerationStructureFeaturesKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

ToCStruct PhysicalDeviceAccelerationStructureFeaturesKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Zero PhysicalDeviceAccelerationStructureFeaturesKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

data PhysicalDeviceAccelerationStructurePropertiesKHR Source #

VkPhysicalDeviceAccelerationStructurePropertiesKHR - Properties of the physical device for acceleration structure

Description

If the PhysicalDeviceAccelerationStructurePropertiesKHR structure is included in the pNext chain of PhysicalDeviceProperties2, it is filled with the implementation-dependent limits.

Limits specified by this structure must match those specified with the same name in PhysicalDeviceRayTracingPropertiesNV.

Valid Usage (Implicit)

See Also

StructureType

Constructors

PhysicalDeviceAccelerationStructurePropertiesKHR 

Fields

Instances

Instances details
Eq PhysicalDeviceAccelerationStructurePropertiesKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Show PhysicalDeviceAccelerationStructurePropertiesKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Storable PhysicalDeviceAccelerationStructurePropertiesKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

FromCStruct PhysicalDeviceAccelerationStructurePropertiesKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

ToCStruct PhysicalDeviceAccelerationStructurePropertiesKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Zero PhysicalDeviceAccelerationStructurePropertiesKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

data AccelerationStructureGeometryTrianglesDataKHR Source #

VkAccelerationStructureGeometryTrianglesDataKHR - Structure specifying a triangle geometry in a bottom-level acceleration structure

Description

Note

Unlike the stride for vertex buffers in VertexInputBindingDescription for graphics pipelines which must not exceed maxVertexInputBindingStride, vertexStride for acceleration structure geometry is instead restricted to being a 32-bit value.

Valid Usage

  • maxVertex must be greater than 0

Valid Usage (Implicit)

See Also

AccelerationStructureGeometryDataKHR, DeviceOrHostAddressConstKHR, DeviceSize, Format, IndexType, StructureType

Constructors

AccelerationStructureGeometryTrianglesDataKHR 

Fields

data AccelerationStructureGeometryAabbsDataKHR Source #

VkAccelerationStructureGeometryAabbsDataKHR - Structure specifying axis-aligned bounding box geometry in a bottom-level acceleration structure

Valid Usage (Implicit)

See Also

AccelerationStructureGeometryDataKHR, DeviceOrHostAddressConstKHR, DeviceSize, StructureType

Constructors

AccelerationStructureGeometryAabbsDataKHR 

Fields

data AccelerationStructureGeometryInstancesDataKHR Source #

VkAccelerationStructureGeometryInstancesDataKHR - Structure specifying a geometry consisting of instances of other acceleration structures

Valid Usage (Implicit)

See Also

AccelerationStructureGeometryDataKHR, Bool32, DeviceOrHostAddressConstKHR, StructureType

Constructors

AccelerationStructureGeometryInstancesDataKHR 

Fields

data AccelerationStructureGeometryKHR Source #

VkAccelerationStructureGeometryKHR - Structure specifying geometries to be built into an acceleration structure

Valid Usage

Valid Usage (Implicit)

See Also

AccelerationStructureBuildGeometryInfoKHR, AccelerationStructureGeometryDataKHR, GeometryFlagsKHR, GeometryTypeKHR, StructureType

Constructors

AccelerationStructureGeometryKHR 

Fields

data AccelerationStructureBuildGeometryInfoKHR Source #

VkAccelerationStructureBuildGeometryInfoKHR - Structure specifying the geometry data used to build an acceleration structure

Description

Only one of pGeometries or ppGeometries can be a valid pointer, the other must be NULL. Each element of the non-NULL array describes the data used to build each acceleration structure geometry.

The index of each element of the pGeometries or ppGeometries members of AccelerationStructureBuildGeometryInfoKHR is used as the /geometry index/ during ray traversal. The geometry index is available in ray shaders via the RayGeometryIndexKHR built-in, and is used to determine hit and intersection shaders executed during traversal. The geometry index is available to ray queries via the OpRayQueryGetIntersectionGeometryIndexKHR instruction.

Valid Usage

Valid Usage (Implicit)

See Also

AccelerationStructureGeometryKHR, AccelerationStructureKHR, AccelerationStructureTypeKHR, BuildAccelerationStructureFlagsKHR, BuildAccelerationStructureModeKHR, DeviceOrHostAddressKHR, StructureType, buildAccelerationStructuresKHR, cmdBuildAccelerationStructuresIndirectKHR, cmdBuildAccelerationStructuresKHR, getAccelerationStructureBuildSizesKHR

Constructors

AccelerationStructureBuildGeometryInfoKHR 

Fields

data AccelerationStructureBuildRangeInfoKHR Source #

VkAccelerationStructureBuildRangeInfoKHR - Structure specifying build offsets and counts for acceleration structure builds

Description

The primitive count and primitive offset are interpreted differently depending on the GeometryTypeKHR used:

Valid Usage

See Also

buildAccelerationStructuresKHR, cmdBuildAccelerationStructuresKHR

Constructors

AccelerationStructureBuildRangeInfoKHR 

Fields

  • primitiveCount :: Word32

    primitiveCount defines the number of primitives for a corresponding acceleration structure geometry.

  • primitiveOffset :: Word32

    primitiveOffset defines an offset in bytes into the memory where primitive data is defined.

  • firstVertex :: Word32

    firstVertex is the index of the first vertex to build from for triangle geometry.

  • transformOffset :: Word32

    transformOffset defines an offset in bytes into the memory where a transform matrix is defined.

Instances

Instances details
Eq AccelerationStructureBuildRangeInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Show AccelerationStructureBuildRangeInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Storable AccelerationStructureBuildRangeInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

FromCStruct AccelerationStructureBuildRangeInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

ToCStruct AccelerationStructureBuildRangeInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Zero AccelerationStructureBuildRangeInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

data AccelerationStructureCreateInfoKHR Source #

VkAccelerationStructureCreateInfoKHR - Structure specifying the parameters of a newly created acceleration structure object

Description

If deviceAddress is zero, no specific address is requested.

If deviceAddress is not zero, deviceAddress must be an address retrieved from an identically created acceleration structure on the same implementation. The acceleration structure must also be placed on an identically created buffer and at the same offset.

Applications should avoid creating acceleration structures with application-provided addresses and implementation-provided addresses in the same process, to reduce the likelihood of ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR errors.

Note

The expected usage for this is that a trace capture/replay tool will add the BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT flag to all buffers that use BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT, and BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT to all buffers used as storage for an acceleration structure where deviceAddress is not zero. During capture the tool will save the queried opaque device addresses in the trace. During replay, the buffers will be created specifying the original address so any address values stored in the trace data will remain valid.

Implementations are expected to separate such buffers in the GPU address space so normal allocations will avoid using these addresses. Apps/tools should avoid mixing app-provided and implementation-provided addresses for buffers created with BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT, to avoid address space allocation conflicts.

Applications should create an acceleration structure with a specific AccelerationStructureTypeKHR other than ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR.

If the acceleration structure will be the target of a build operation, the required size for an acceleration structure can be queried with getAccelerationStructureBuildSizesKHR. If the acceleration structure is going to be the target of a compacting copy, cmdWriteAccelerationStructuresPropertiesKHR or writeAccelerationStructuresPropertiesKHR can be used to obtain the compacted size required.

Valid Usage

Valid Usage (Implicit)

See Also

AccelerationStructureCreateFlagsKHR, AccelerationStructureTypeKHR, Buffer, DeviceAddress, DeviceSize, StructureType, createAccelerationStructureKHR

Constructors

AccelerationStructureCreateInfoKHR 

Fields

Instances

Instances details
Eq AccelerationStructureCreateInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Show AccelerationStructureCreateInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Storable AccelerationStructureCreateInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

FromCStruct AccelerationStructureCreateInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

ToCStruct AccelerationStructureCreateInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Zero AccelerationStructureCreateInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

data AabbPositionsKHR Source #

VkAabbPositionsKHR - Structure specifying two opposing corners of an axis-aligned bounding box

Valid Usage

See Also

No cross-references are available

Constructors

AabbPositionsKHR 

Fields

  • minX :: Float

    minX is the x position of one opposing corner of a bounding box.

    minX must be less than or equal to maxX

  • minY :: Float

    minY is the y position of one opposing corner of a bounding box.

    minY must be less than or equal to maxY

  • minZ :: Float

    minZ is the z position of one opposing corner of a bounding box.

    minZ must be less than or equal to maxZ

  • maxX :: Float

    maxX is the x position of the other opposing corner of a bounding box.

  • maxY :: Float

    maxY is the y position of the other opposing corner of a bounding box.

  • maxZ :: Float

    maxZ is the z position of the other opposing corner of a bounding box.

Instances

Instances details
Eq AabbPositionsKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Show AabbPositionsKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Storable AabbPositionsKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

FromCStruct AabbPositionsKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

ToCStruct AabbPositionsKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Zero AabbPositionsKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

data TransformMatrixKHR Source #

VkTransformMatrixKHR - Structure specifying a 3x4 affine transformation matrix

Valid Usage

  • The first three columns of matrix must define an invertible 3x3 matrix

See Also

AccelerationStructureInstanceKHR

Instances

Instances details
Eq TransformMatrixKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Show TransformMatrixKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Storable TransformMatrixKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

FromCStruct TransformMatrixKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

ToCStruct TransformMatrixKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Zero TransformMatrixKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

data AccelerationStructureInstanceKHR Source #

VkAccelerationStructureInstanceKHR - Structure specifying a single acceleration structure instance for building into an acceleration structure geometry

Description

The C language spec does not define the ordering of bit-fields, but in practice, this struct produces the correct layout with existing compilers. The intended bit pattern is for the following:

If a compiler produces code that diverges from that pattern, applications must employ another method to set values according to the correct bit pattern.

Valid Usage (Implicit)

See Also

GeometryInstanceFlagsKHR, TransformMatrixKHR

Constructors

AccelerationStructureInstanceKHR 

Fields

Instances

Instances details
Show AccelerationStructureInstanceKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Storable AccelerationStructureInstanceKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

FromCStruct AccelerationStructureInstanceKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

ToCStruct AccelerationStructureInstanceKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Zero AccelerationStructureInstanceKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

data AccelerationStructureDeviceAddressInfoKHR Source #

VkAccelerationStructureDeviceAddressInfoKHR - Structure specifying the acceleration structure to query an address for

Valid Usage (Implicit)

See Also

AccelerationStructureKHR, StructureType, getAccelerationStructureDeviceAddressKHR

Constructors

AccelerationStructureDeviceAddressInfoKHR 

Fields

Instances

Instances details
Eq AccelerationStructureDeviceAddressInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Show AccelerationStructureDeviceAddressInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Storable AccelerationStructureDeviceAddressInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

FromCStruct AccelerationStructureDeviceAddressInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

ToCStruct AccelerationStructureDeviceAddressInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Zero AccelerationStructureDeviceAddressInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

data AccelerationStructureVersionInfoKHR Source #

VkAccelerationStructureVersionInfoKHR - Acceleration structure version information

Description

Note

pVersionData is a pointer to an array of 2*UUID_SIZE uint8_t values instead of two UUID_SIZE arrays as the expected use case for this member is to be pointed at the header of an previously serialized acceleration structure (via cmdCopyAccelerationStructureToMemoryKHR or copyAccelerationStructureToMemoryKHR) that is loaded in memory. Using arrays would necessitate extra memory copies of the UUIDs.

Valid Usage (Implicit)

See Also

StructureType, getDeviceAccelerationStructureCompatibilityKHR

Constructors

AccelerationStructureVersionInfoKHR 

Fields

data CopyAccelerationStructureInfoKHR Source #

VkCopyAccelerationStructureInfoKHR - Parameters for copying an acceleration structure

Valid Usage

Valid Usage (Implicit)

See Also

AccelerationStructureKHR, CopyAccelerationStructureModeKHR, StructureType, cmdCopyAccelerationStructureKHR, copyAccelerationStructureKHR

Constructors

CopyAccelerationStructureInfoKHR 

Fields

Instances

Instances details
Eq CopyAccelerationStructureInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Show CopyAccelerationStructureInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Storable CopyAccelerationStructureInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

FromCStruct CopyAccelerationStructureInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

ToCStruct CopyAccelerationStructureInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Zero CopyAccelerationStructureInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

data CopyAccelerationStructureToMemoryInfoKHR Source #

VkCopyAccelerationStructureToMemoryInfoKHR - Parameters for serializing an acceleration structure

Valid Usage

Valid Usage (Implicit)

See Also

AccelerationStructureKHR, CopyAccelerationStructureModeKHR, DeviceOrHostAddressKHR, StructureType, cmdCopyAccelerationStructureToMemoryKHR, copyAccelerationStructureToMemoryKHR

Constructors

CopyAccelerationStructureToMemoryInfoKHR 

Fields

data CopyMemoryToAccelerationStructureInfoKHR Source #

VkCopyMemoryToAccelerationStructureInfoKHR - Parameters for deserializing an acceleration structure

Valid Usage

  • The data in src must have a format compatible with the destination physical device as returned by getDeviceAccelerationStructureCompatibilityKHR
  • dst must have been created with a size greater than or equal to that used to serialize the data in src

Valid Usage (Implicit)

See Also

AccelerationStructureKHR, CopyAccelerationStructureModeKHR, DeviceOrHostAddressConstKHR, StructureType, cmdCopyMemoryToAccelerationStructureKHR, copyMemoryToAccelerationStructureKHR

Constructors

CopyMemoryToAccelerationStructureInfoKHR 

Fields

data AccelerationStructureBuildSizesInfoKHR Source #

VkAccelerationStructureBuildSizesInfoKHR - Structure specifying build sizes for an acceleration structure

Valid Usage (Implicit)

See Also

DeviceSize, StructureType, getAccelerationStructureBuildSizesKHR

Constructors

AccelerationStructureBuildSizesInfoKHR 

Fields

Instances

Instances details
Eq AccelerationStructureBuildSizesInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Show AccelerationStructureBuildSizesInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Storable AccelerationStructureBuildSizesInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

FromCStruct AccelerationStructureBuildSizesInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

ToCStruct AccelerationStructureBuildSizesInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Zero AccelerationStructureBuildSizesInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

newtype GeometryInstanceFlagBitsKHR Source #

VkGeometryInstanceFlagBitsKHR - Instance flag bits

Description

GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR and GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR must not be used in the same flag.

See Also

GeometryInstanceFlagsKHR

Bundled Patterns

pattern GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR :: GeometryInstanceFlagBitsKHR

GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR disables face culling for this instance.

pattern GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR :: GeometryInstanceFlagBitsKHR

GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR indicates that the front face of the triangle for culling purposes is the face that is counter clockwise in object space relative to the ray origin. Because the facing is determined in object space, an instance transform matrix does not change the winding, but a geometry transform does.

pattern GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR :: GeometryInstanceFlagBitsKHR

GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR causes this instance to act as though GEOMETRY_OPAQUE_BIT_KHR were specified on all geometries referenced by this instance. This behavior can be overridden by the SPIR-V NoOpaqueKHR ray flag.

pattern GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR :: GeometryInstanceFlagBitsKHR

GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR causes this instance to act as though GEOMETRY_OPAQUE_BIT_KHR were not specified on all geometries referenced by this instance. This behavior can be overridden by the SPIR-V OpaqueKHR ray flag.

Instances

Instances details
Eq GeometryInstanceFlagBitsKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Ord GeometryInstanceFlagBitsKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Read GeometryInstanceFlagBitsKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Show GeometryInstanceFlagBitsKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Storable GeometryInstanceFlagBitsKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Bits GeometryInstanceFlagBitsKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Methods

(.&.) :: GeometryInstanceFlagBitsKHR -> GeometryInstanceFlagBitsKHR -> GeometryInstanceFlagBitsKHR #

(.|.) :: GeometryInstanceFlagBitsKHR -> GeometryInstanceFlagBitsKHR -> GeometryInstanceFlagBitsKHR #

xor :: GeometryInstanceFlagBitsKHR -> GeometryInstanceFlagBitsKHR -> GeometryInstanceFlagBitsKHR #

complement :: GeometryInstanceFlagBitsKHR -> GeometryInstanceFlagBitsKHR #

shift :: GeometryInstanceFlagBitsKHR -> Int -> GeometryInstanceFlagBitsKHR #

rotate :: GeometryInstanceFlagBitsKHR -> Int -> GeometryInstanceFlagBitsKHR #

zeroBits :: GeometryInstanceFlagBitsKHR #

bit :: Int -> GeometryInstanceFlagBitsKHR #

setBit :: GeometryInstanceFlagBitsKHR -> Int -> GeometryInstanceFlagBitsKHR #

clearBit :: GeometryInstanceFlagBitsKHR -> Int -> GeometryInstanceFlagBitsKHR #

complementBit :: GeometryInstanceFlagBitsKHR -> Int -> GeometryInstanceFlagBitsKHR #

testBit :: GeometryInstanceFlagBitsKHR -> Int -> Bool #

bitSizeMaybe :: GeometryInstanceFlagBitsKHR -> Maybe Int #

bitSize :: GeometryInstanceFlagBitsKHR -> Int #

isSigned :: GeometryInstanceFlagBitsKHR -> Bool #

shiftL :: GeometryInstanceFlagBitsKHR -> Int -> GeometryInstanceFlagBitsKHR #

unsafeShiftL :: GeometryInstanceFlagBitsKHR -> Int -> GeometryInstanceFlagBitsKHR #

shiftR :: GeometryInstanceFlagBitsKHR -> Int -> GeometryInstanceFlagBitsKHR #

unsafeShiftR :: GeometryInstanceFlagBitsKHR -> Int -> GeometryInstanceFlagBitsKHR #

rotateL :: GeometryInstanceFlagBitsKHR -> Int -> GeometryInstanceFlagBitsKHR #

rotateR :: GeometryInstanceFlagBitsKHR -> Int -> GeometryInstanceFlagBitsKHR #

popCount :: GeometryInstanceFlagBitsKHR -> Int #

FiniteBits GeometryInstanceFlagBitsKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Zero GeometryInstanceFlagBitsKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

newtype GeometryFlagBitsKHR Source #

VkGeometryFlagBitsKHR - Bitmask specifying additional parameters for a geometry

See Also

GeometryFlagsKHR

Bundled Patterns

pattern GEOMETRY_OPAQUE_BIT_KHR :: GeometryFlagBitsKHR

GEOMETRY_OPAQUE_BIT_KHR indicates that this geometry does not invoke the any-hit shaders even if present in a hit group.

pattern GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR :: GeometryFlagBitsKHR

GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR indicates 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.

Instances

Instances details
Eq GeometryFlagBitsKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Ord GeometryFlagBitsKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Read GeometryFlagBitsKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Show GeometryFlagBitsKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Storable GeometryFlagBitsKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Bits GeometryFlagBitsKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

FiniteBits GeometryFlagBitsKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Zero GeometryFlagBitsKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

newtype BuildAccelerationStructureFlagBitsKHR Source #

VkBuildAccelerationStructureFlagBitsKHR - Bitmask specifying additional parameters for acceleration structure builds

Description

Note

BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR and BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR may take more time and memory than a normal build, and so should only be used when those features are needed.

See Also

BuildAccelerationStructureFlagsKHR

Bundled Patterns

pattern BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR :: BuildAccelerationStructureFlagBitsKHR

BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR indicates that the specified acceleration structure can be updated with update of TRUE in cmdBuildAccelerationStructuresKHR or cmdBuildAccelerationStructureNV .

pattern BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR :: BuildAccelerationStructureFlagBitsKHR

BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR indicates that the specified acceleration structure can act as the source for a copy acceleration structure command with mode of COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR to produce a compacted acceleration structure.

pattern BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR :: BuildAccelerationStructureFlagBitsKHR

BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR indicates that the given acceleration structure build should prioritize trace performance over build time.

pattern BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR :: BuildAccelerationStructureFlagBitsKHR

BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR indicates that the given acceleration structure build should prioritize build time over trace performance.

pattern BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR :: BuildAccelerationStructureFlagBitsKHR

BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR indicates that this acceleration structure should minimize the size of the scratch memory and the final result build, potentially at the expense of build time or trace performance.

Instances

Instances details
Eq BuildAccelerationStructureFlagBitsKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Ord BuildAccelerationStructureFlagBitsKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Read BuildAccelerationStructureFlagBitsKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Show BuildAccelerationStructureFlagBitsKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Storable BuildAccelerationStructureFlagBitsKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Bits BuildAccelerationStructureFlagBitsKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Methods

(.&.) :: BuildAccelerationStructureFlagBitsKHR -> BuildAccelerationStructureFlagBitsKHR -> BuildAccelerationStructureFlagBitsKHR #

(.|.) :: BuildAccelerationStructureFlagBitsKHR -> BuildAccelerationStructureFlagBitsKHR -> BuildAccelerationStructureFlagBitsKHR #

xor :: BuildAccelerationStructureFlagBitsKHR -> BuildAccelerationStructureFlagBitsKHR -> BuildAccelerationStructureFlagBitsKHR #

complement :: BuildAccelerationStructureFlagBitsKHR -> BuildAccelerationStructureFlagBitsKHR #

shift :: BuildAccelerationStructureFlagBitsKHR -> Int -> BuildAccelerationStructureFlagBitsKHR #

rotate :: BuildAccelerationStructureFlagBitsKHR -> Int -> BuildAccelerationStructureFlagBitsKHR #

zeroBits :: BuildAccelerationStructureFlagBitsKHR #

bit :: Int -> BuildAccelerationStructureFlagBitsKHR #

setBit :: BuildAccelerationStructureFlagBitsKHR -> Int -> BuildAccelerationStructureFlagBitsKHR #

clearBit :: BuildAccelerationStructureFlagBitsKHR -> Int -> BuildAccelerationStructureFlagBitsKHR #

complementBit :: BuildAccelerationStructureFlagBitsKHR -> Int -> BuildAccelerationStructureFlagBitsKHR #

testBit :: BuildAccelerationStructureFlagBitsKHR -> Int -> Bool #

bitSizeMaybe :: BuildAccelerationStructureFlagBitsKHR -> Maybe Int #

bitSize :: BuildAccelerationStructureFlagBitsKHR -> Int #

isSigned :: BuildAccelerationStructureFlagBitsKHR -> Bool #

shiftL :: BuildAccelerationStructureFlagBitsKHR -> Int -> BuildAccelerationStructureFlagBitsKHR #

unsafeShiftL :: BuildAccelerationStructureFlagBitsKHR -> Int -> BuildAccelerationStructureFlagBitsKHR #

shiftR :: BuildAccelerationStructureFlagBitsKHR -> Int -> BuildAccelerationStructureFlagBitsKHR #

unsafeShiftR :: BuildAccelerationStructureFlagBitsKHR -> Int -> BuildAccelerationStructureFlagBitsKHR #

rotateL :: BuildAccelerationStructureFlagBitsKHR -> Int -> BuildAccelerationStructureFlagBitsKHR #

rotateR :: BuildAccelerationStructureFlagBitsKHR -> Int -> BuildAccelerationStructureFlagBitsKHR #

popCount :: BuildAccelerationStructureFlagBitsKHR -> Int #

FiniteBits BuildAccelerationStructureFlagBitsKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Zero BuildAccelerationStructureFlagBitsKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

newtype AccelerationStructureCreateFlagBitsKHR Source #

VkAccelerationStructureCreateFlagBitsKHR - Bitmask specifying additional creation parameters for acceleration structure

See Also

AccelerationStructureCreateFlagsKHR

Bundled Patterns

pattern ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR :: AccelerationStructureCreateFlagBitsKHR

ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR specifies that the acceleration structure’s address can be saved and reused on a subsequent run.

Instances

Instances details
Eq AccelerationStructureCreateFlagBitsKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Ord AccelerationStructureCreateFlagBitsKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Read AccelerationStructureCreateFlagBitsKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Show AccelerationStructureCreateFlagBitsKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Storable AccelerationStructureCreateFlagBitsKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Bits AccelerationStructureCreateFlagBitsKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Methods

(.&.) :: AccelerationStructureCreateFlagBitsKHR -> AccelerationStructureCreateFlagBitsKHR -> AccelerationStructureCreateFlagBitsKHR #

(.|.) :: AccelerationStructureCreateFlagBitsKHR -> AccelerationStructureCreateFlagBitsKHR -> AccelerationStructureCreateFlagBitsKHR #

xor :: AccelerationStructureCreateFlagBitsKHR -> AccelerationStructureCreateFlagBitsKHR -> AccelerationStructureCreateFlagBitsKHR #

complement :: AccelerationStructureCreateFlagBitsKHR -> AccelerationStructureCreateFlagBitsKHR #

shift :: AccelerationStructureCreateFlagBitsKHR -> Int -> AccelerationStructureCreateFlagBitsKHR #

rotate :: AccelerationStructureCreateFlagBitsKHR -> Int -> AccelerationStructureCreateFlagBitsKHR #

zeroBits :: AccelerationStructureCreateFlagBitsKHR #

bit :: Int -> AccelerationStructureCreateFlagBitsKHR #

setBit :: AccelerationStructureCreateFlagBitsKHR -> Int -> AccelerationStructureCreateFlagBitsKHR #

clearBit :: AccelerationStructureCreateFlagBitsKHR -> Int -> AccelerationStructureCreateFlagBitsKHR #

complementBit :: AccelerationStructureCreateFlagBitsKHR -> Int -> AccelerationStructureCreateFlagBitsKHR #

testBit :: AccelerationStructureCreateFlagBitsKHR -> Int -> Bool #

bitSizeMaybe :: AccelerationStructureCreateFlagBitsKHR -> Maybe Int #

bitSize :: AccelerationStructureCreateFlagBitsKHR -> Int #

isSigned :: AccelerationStructureCreateFlagBitsKHR -> Bool #

shiftL :: AccelerationStructureCreateFlagBitsKHR -> Int -> AccelerationStructureCreateFlagBitsKHR #

unsafeShiftL :: AccelerationStructureCreateFlagBitsKHR -> Int -> AccelerationStructureCreateFlagBitsKHR #

shiftR :: AccelerationStructureCreateFlagBitsKHR -> Int -> AccelerationStructureCreateFlagBitsKHR #

unsafeShiftR :: AccelerationStructureCreateFlagBitsKHR -> Int -> AccelerationStructureCreateFlagBitsKHR #

rotateL :: AccelerationStructureCreateFlagBitsKHR -> Int -> AccelerationStructureCreateFlagBitsKHR #

rotateR :: AccelerationStructureCreateFlagBitsKHR -> Int -> AccelerationStructureCreateFlagBitsKHR #

popCount :: AccelerationStructureCreateFlagBitsKHR -> Int #

FiniteBits AccelerationStructureCreateFlagBitsKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Zero AccelerationStructureCreateFlagBitsKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

newtype CopyAccelerationStructureModeKHR Source #

Bundled Patterns

pattern COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR :: CopyAccelerationStructureModeKHR

COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR creates a direct copy of the acceleration structure specified in src into the one specified by dst. The dst acceleration structure must have been created with the same parameters as src.

pattern COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR :: CopyAccelerationStructureModeKHR

COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR creates a more compact version of an acceleration structure src into dst. The acceleration structure dst must have been created with a size at least as large as that returned by cmdWriteAccelerationStructuresPropertiesKHR or writeAccelerationStructuresPropertiesKHR after the build of the acceleration structure specified by src.

pattern COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR :: CopyAccelerationStructureModeKHR

COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR serializes the acceleration structure to a semi-opaque format which can be reloaded on a compatible implementation.

pattern COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR :: CopyAccelerationStructureModeKHR

COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR deserializes the semi-opaque serialization format in the buffer to the acceleration structure.

Instances

Instances details
Eq CopyAccelerationStructureModeKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Ord CopyAccelerationStructureModeKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Read CopyAccelerationStructureModeKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Show CopyAccelerationStructureModeKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Storable CopyAccelerationStructureModeKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Zero CopyAccelerationStructureModeKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

newtype BuildAccelerationStructureModeKHR Source #

VkBuildAccelerationStructureModeKHR - Enum specifying the type of build operation to perform

See Also

AccelerationStructureBuildGeometryInfoKHR

Bundled Patterns

pattern BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR :: BuildAccelerationStructureModeKHR

BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR specifies that the destination acceleration structure will be built using the specified geometries.

pattern BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR :: BuildAccelerationStructureModeKHR

BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR specifies that the destination acceleration structure will be built using data in a source acceleration structure, updated by the specified geometries.

Instances

Instances details
Eq BuildAccelerationStructureModeKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Ord BuildAccelerationStructureModeKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Read BuildAccelerationStructureModeKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Show BuildAccelerationStructureModeKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Storable BuildAccelerationStructureModeKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Zero BuildAccelerationStructureModeKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

newtype AccelerationStructureTypeKHR Source #

VkAccelerationStructureTypeKHR - Type of acceleration structure

See Also

AccelerationStructureBuildGeometryInfoKHR, AccelerationStructureCreateInfoKHR

Bundled Patterns

pattern ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR :: AccelerationStructureTypeKHR

ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR is a top-level acceleration structure containing instance data referring to bottom-level acceleration structures.

pattern ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR :: AccelerationStructureTypeKHR

ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR is a bottom-level acceleration structure containing the AABBs or geometry to be intersected.

pattern ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR :: AccelerationStructureTypeKHR

ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR is an acceleration structure whose type is determined at build time used for special circumstances.

Instances

Instances details
Eq AccelerationStructureTypeKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Ord AccelerationStructureTypeKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Read AccelerationStructureTypeKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Show AccelerationStructureTypeKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Storable AccelerationStructureTypeKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Zero AccelerationStructureTypeKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

newtype GeometryTypeKHR Source #

VkGeometryTypeKHR - Enum specifying which type of geometry is provided

See Also

AccelerationStructureGeometryKHR, GeometryNV

Constructors

GeometryTypeKHR Int32 

Bundled Patterns

pattern GEOMETRY_TYPE_TRIANGLES_KHR :: GeometryTypeKHR

GEOMETRY_TYPE_TRIANGLES_KHR specifies a geometry type consisting of triangles.

pattern GEOMETRY_TYPE_AABBS_KHR :: GeometryTypeKHR

GEOMETRY_TYPE_AABBS_KHR specifies a geometry type consisting of axis-aligned bounding boxes.

pattern GEOMETRY_TYPE_INSTANCES_KHR :: GeometryTypeKHR

GEOMETRY_TYPE_INSTANCES_KHR specifies a geometry type consisting of acceleration structure instances.

Instances

Instances details
Eq GeometryTypeKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Ord GeometryTypeKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Read GeometryTypeKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Show GeometryTypeKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Storable GeometryTypeKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Zero GeometryTypeKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

newtype AccelerationStructureBuildTypeKHR Source #

VkAccelerationStructureBuildTypeKHR - Acceleration structure build type

See Also

getAccelerationStructureBuildSizesKHR

Bundled Patterns

pattern ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR :: AccelerationStructureBuildTypeKHR

ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR requests the memory requirement for operations performed by the host.

pattern ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR :: AccelerationStructureBuildTypeKHR

ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR requests the memory requirement for operations performed by the device.

pattern ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR :: AccelerationStructureBuildTypeKHR

ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR requests the memory requirement for operations performed by either the host, or the device.

Instances

Instances details
Eq AccelerationStructureBuildTypeKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Ord AccelerationStructureBuildTypeKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Read AccelerationStructureBuildTypeKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Show AccelerationStructureBuildTypeKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Storable AccelerationStructureBuildTypeKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Zero AccelerationStructureBuildTypeKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

newtype AccelerationStructureCompatibilityKHR Source #

VkAccelerationStructureCompatibilityKHR - Acceleration structure compatibility

See Also

getDeviceAccelerationStructureCompatibilityKHR

Bundled Patterns

pattern ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR :: AccelerationStructureCompatibilityKHR

ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR when the pVersion version acceleration structure is compatibile with device.

pattern ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR :: AccelerationStructureCompatibilityKHR

ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR when the pVersion version acceleration structure is not compatibile with device.

Instances

Instances details
Eq AccelerationStructureCompatibilityKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Ord AccelerationStructureCompatibilityKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Read AccelerationStructureCompatibilityKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Show AccelerationStructureCompatibilityKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Storable AccelerationStructureCompatibilityKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Zero AccelerationStructureCompatibilityKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

type KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME = "VK_KHR_acceleration_structure" Source #

newtype AccelerationStructureKHR Source #

Instances

Instances details
Eq AccelerationStructureKHR Source # 
Instance details

Defined in Vulkan.Extensions.Handles

Ord AccelerationStructureKHR Source # 
Instance details

Defined in Vulkan.Extensions.Handles

Show AccelerationStructureKHR Source # 
Instance details

Defined in Vulkan.Extensions.Handles

Storable AccelerationStructureKHR Source # 
Instance details

Defined in Vulkan.Extensions.Handles

Zero AccelerationStructureKHR Source # 
Instance details

Defined in Vulkan.Extensions.Handles

HasObjectType AccelerationStructureKHR Source # 
Instance details

Defined in Vulkan.Extensions.Handles

IsHandle AccelerationStructureKHR Source # 
Instance details

Defined in Vulkan.Extensions.Handles

newtype DeferredOperationKHR Source #

Instances

Instances details
Eq DeferredOperationKHR Source # 
Instance details

Defined in Vulkan.Extensions.Handles

Ord DeferredOperationKHR Source # 
Instance details

Defined in Vulkan.Extensions.Handles

Show DeferredOperationKHR Source # 
Instance details

Defined in Vulkan.Extensions.Handles

Storable DeferredOperationKHR Source # 
Instance details

Defined in Vulkan.Extensions.Handles

Zero DeferredOperationKHR Source # 
Instance details

Defined in Vulkan.Extensions.Handles

HasObjectType DeferredOperationKHR Source # 
Instance details

Defined in Vulkan.Extensions.Handles

IsHandle DeferredOperationKHR Source # 
Instance details

Defined in Vulkan.Extensions.Handles

newtype DebugReportObjectTypeEXT Source #

VkDebugReportObjectTypeEXT - Specify the type of an object handle

Description

'

DebugReportObjectTypeEXT Vulkan Handle Type
DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT Unknown/Undefined Handle
DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT Instance
DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT PhysicalDevice
DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT Device
DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT Queue
DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT Semaphore
DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT CommandBuffer
DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT Fence
DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT DeviceMemory
DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT Buffer
DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT Image
DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT Event
DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT QueryPool
DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT BufferView
DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT ImageView
DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT ShaderModule
DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT PipelineCache
DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT PipelineLayout
DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT RenderPass
DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT Pipeline
DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT DescriptorSetLayout
DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT Sampler
DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT DescriptorPool
DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT DescriptorSet
DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT Framebuffer
DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT CommandPool
DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT SurfaceKHR
DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT SwapchainKHR
DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT DebugReportCallbackEXT
DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT DisplayKHR
DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT DisplayModeKHR
DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT DescriptorUpdateTemplate

DebugReportObjectTypeEXT and Vulkan Handle Relationship

Note

The primary expected use of ERROR_VALIDATION_FAILED_EXT is for validation layer testing. It is not expected that an application would see this error code during normal use of the validation layers.

See Also

DebugMarkerObjectNameInfoEXT, DebugMarkerObjectTagInfoEXT, debugReportMessageEXT

Bundled Patterns

pattern DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT :: DebugReportObjectTypeEXT 

Instances

Instances details
Eq DebugReportObjectTypeEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_debug_report

Ord DebugReportObjectTypeEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_debug_report

Read DebugReportObjectTypeEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_debug_report

Show DebugReportObjectTypeEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_debug_report

Storable DebugReportObjectTypeEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_debug_report

Zero DebugReportObjectTypeEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_debug_report