vulkan-3.14.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
13
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
2021-09-30
Contributors
  • Samuel Bourasseau, Adobe
  • Matthäus Chajdas, AMD
  • Greg Grebe, AMD
  • Nicolai Hähnle, AMD
  • Tobias Hector, AMD
  • Dave Oldcorn, AMD
  • Skyler Saleh, AMD
  • Mathieu Robart, Arm
  • Marius Bjorge, Arm
  • Tom Olson, Arm
  • Sebastian Tafuri, EA
  • Henrik Rydgard, Embark
  • Juan Cañada, Epic Games
  • Patrick Kelly, Epic Games
  • Yuriy O’Donnell, Epic Games
  • Michael Doggett, Facebook/Oculus
  • Ricardo Garcia, Igalia
  • Andrew Garrard, Imagination
  • Don Scorgie, Imagination
  • Dae Kim, Imagination
  • Joshua Barczak, Intel
  • Slawek Grajewski, Intel
  • Jeff Bolz, NVIDIA
  • Pascal Gautron, NVIDIA
  • Daniel Koch, NVIDIA
  • Christoph Kubisch, NVIDIA
  • Ashwin Lele, NVIDIA
  • Robert Stepinski, NVIDIA
  • Martin Stich, NVIDIA
  • Nuno Subtil, NVIDIA
  • Eric Werness, NVIDIA
  • Jon Leech, Khronos
  • Jeroen van Schijndel, OTOY
  • Juul Joosten, OTOY
  • Alex Bourd, Qualcomm
  • Roman Larionov, Qualcomm
  • David McAllister, Qualcomm
  • Lewis Gordon, Samsung
  • Ralph Potter, Samsung
  • Jasper Bekkers, Traverse Research
  • Jesse Barker, Unity
  • Baldur Karlsson, Valve

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

If VK_KHR_format_feature_flags2 is supported:

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 do not 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 time 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 reused (!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 (#1910, #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)
  • Revision 12, 2021-08-06 (Samuel Bourasseau)

    • rename VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR to VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR (keep previous as alias).
    • Clarify description and add note.
  • Revision 13, 2021-09-30 (Jon Leech)

    • Add interaction with VK_KHR_format_feature_flags2 to vk.xml

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 acceleration structure.

-> 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

VK_KHR_acceleration_structure, 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

This command copies the pInfo->src acceleration structure to the pInfo->dst acceleration structure in the manner specified by pInfo->mode.

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 LevelsRender Pass ScopeSupported Queue Types
Primary SecondaryOutside Compute

See Also

VK_KHR_acceleration_structure, 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

VK_KHR_acceleration_structure, 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 LevelsRender Pass ScopeSupported Queue Types
Primary SecondaryOutside Compute

See Also

VK_KHR_acceleration_structure, 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

VK_KHR_acceleration_structure, 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 LevelsRender Pass ScopeSupported Queue Types
Primary SecondaryOutside Compute

See Also

VK_KHR_acceleration_structure, 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

VK_KHR_acceleration_structure, 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 LevelsRender Pass ScopeSupported Queue Types
Primary SecondaryOutside Compute

See Also

VK_KHR_acceleration_structure, 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 is a pointer 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

  • All acceleration structures in pAccelerationStructures must have been built prior to the execution of this command

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

VK_KHR_acceleration_structure, AccelerationStructureKHR, Device, QueryType

getDeviceAccelerationStructureCompatibilityKHR Source #

Arguments

:: forall io. MonadIO io 
=> Device

device is the device to check the version against.

-> AccelerationStructureVersionInfoKHR

pVersionInfo is a pointer to a AccelerationStructureVersionInfoKHR structure specifying 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

VK_KHR_acceleration_structure, AccelerationStructureCompatibilityKHR, AccelerationStructureVersionInfoKHR, Device

createAccelerationStructureKHR Source #

Arguments

:: forall a io. (Extendss AccelerationStructureCreateInfoKHR a, PokeChain a, MonadIO io) 
=> Device

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

-> AccelerationStructureCreateInfoKHR a

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

VK_KHR_acceleration_structure, AccelerationStructureCreateInfoKHR, AccelerationStructureKHR, AllocationCallbacks, Device

withAccelerationStructureKHR :: forall a io r. (Extendss AccelerationStructureCreateInfoKHR a, PokeChain a, MonadIO io) => Device -> AccelerationStructureCreateInfoKHR a -> 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 a pointer to an array of infoCount AccelerationStructureBuildGeometryInfoKHR structures defining the geometry used to build each acceleration structure.

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

ppBuildRangeInfos is a pointer to an array of infoCount pointers to arrays of AccelerationStructureBuildRangeInfoKHR structures. Each ppBuildRangeInfos[i] is a pointer to 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 AccelerationStructureBuildGeometryInfoKHR::scratchData 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 AccelerationStructureBuildGeometryInfoKHR::srcAccelerationStructure and AccelerationStructureBuildGeometryInfoKHR::dstAccelerationStructure.

Accesses to other input buffers as identified by any used values of AccelerationStructureGeometryMotionTrianglesDataNV::vertexData, AccelerationStructureGeometryTrianglesDataKHR::vertexData, AccelerationStructureGeometryTrianglesDataKHR::indexData, AccelerationStructureGeometryTrianglesDataKHR::transformData, AccelerationStructureGeometryAabbsDataKHR::data, and AccelerationStructureGeometryInstancesDataKHR::data 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

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 LevelsRender Pass ScopeSupported Queue Types
Primary SecondaryOutside Compute

See Also

VK_KHR_acceleration_structure, 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 a pointer to an array of infoCount AccelerationStructureBuildGeometryInfoKHR structures defining the geometry used to build each acceleration structure.

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

pIndirectDeviceAddresses is a pointer to 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 a pointer to an array of infoCount byte strides between elements of pIndirectDeviceAddresses.

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

ppMaxPrimitiveCounts is a pointer to an array of infoCount pointers to arrays of pInfos[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

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 LevelsRender Pass ScopeSupported Queue Types
Primary SecondaryOutside Compute

See Also

VK_KHR_acceleration_structure, 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 a pointer to an array of infoCount pointers to arrays of AccelerationStructureBuildRangeInfoKHR structures. Each ppBuildRangeInfos[i] is a pointer to 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

Valid Usage (Implicit)

  • device must be a valid Device handle

Return Codes

Success
Failure

See Also

VK_KHR_acceleration_structure, AccelerationStructureBuildGeometryInfoKHR, AccelerationStructureBuildRangeInfoKHR, DeferredOperationKHR, Device

getAccelerationStructureDeviceAddressKHR Source #

Arguments

:: forall io. MonadIO io 
=> Device

device is the logical device that the acceleration structure 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 with type 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

VK_KHR_acceleration_structure, 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

VK_KHR_acceleration_structure, AccelerationStructureBuildGeometryInfoKHR, AccelerationStructureBuildSizesInfoKHR, AccelerationStructureBuildTypeKHR, Device

data WriteDescriptorSetAccelerationStructureKHR Source #

VkWriteDescriptorSetAccelerationStructureKHR - Structure specifying acceleration structure descriptor information

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

VK_KHR_acceleration_structure, AccelerationStructureKHR, StructureType

Constructors

WriteDescriptorSetAccelerationStructureKHR 

Fields

data PhysicalDeviceAccelerationStructureFeaturesKHR Source #

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

Members

This structure describes the following features:

Description

If the PhysicalDeviceAccelerationStructureFeaturesKHR structure is included in the pNext chain of the PhysicalDeviceFeatures2 structure passed to getPhysicalDeviceFeatures2, it is filled in to indicate whether each corresponding feature is supported. PhysicalDeviceAccelerationStructureFeaturesKHR can also be used in the pNext chain of DeviceCreateInfo to selectively enable these features.

Valid Usage (Implicit)

See Also

VK_KHR_acceleration_structure, 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

Due to the fact that the geometry, instance, and primitive counts are specified at acceleration structure creation as 32-bit values, maxGeometryCount, maxInstanceCount, and maxPrimitiveCount must not exceed 232-1.

If the PhysicalDeviceAccelerationStructurePropertiesKHR structure is included in the pNext chain of the PhysicalDeviceProperties2 structure passed to getPhysicalDeviceProperties2, it is filled in with each corresponding implementation-dependent property.

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

Valid Usage (Implicit)

See Also

VK_KHR_acceleration_structure, 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 (es :: [Type]) 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

  • vertexStride must be a multiple of the size in bytes of the smallest component of vertexFormat

Valid Usage (Implicit)

See Also

VK_KHR_acceleration_structure, AccelerationStructureGeometryDataKHR, DeviceOrHostAddressConstKHR, DeviceSize, Format, IndexType, StructureType

Constructors

AccelerationStructureGeometryTrianglesDataKHR 

Fields

Instances

Instances details
Extensible AccelerationStructureGeometryTrianglesDataKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Show (Chain es) => Show (AccelerationStructureGeometryTrianglesDataKHR es) Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

(Extendss AccelerationStructureGeometryTrianglesDataKHR es, PokeChain es) => ToCStruct (AccelerationStructureGeometryTrianglesDataKHR es) Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

es ~ ('[] :: [Type]) => Zero (AccelerationStructureGeometryTrianglesDataKHR es) Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

data AccelerationStructureGeometryAabbsDataKHR Source #

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

Valid Usage (Implicit)

See Also

VK_KHR_acceleration_structure, AccelerationStructureGeometryDataKHR, DeviceOrHostAddressConstKHR, DeviceSize, StructureType

Constructors

AccelerationStructureGeometryAabbsDataKHR 

Fields

  • data' :: DeviceOrHostAddressConstKHR

    data is a device or host address to memory containing AabbPositionsKHR structures containing position data for each axis-aligned bounding box in the geometry.

  • stride :: DeviceSize

    stride is the stride in bytes between each entry in data. The stride must be a multiple of 8.

    stride must be a multiple of 8

    stride must be less than or equal to 232-1

data AccelerationStructureGeometryInstancesDataKHR Source #

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

Valid Usage (Implicit)

See Also

VK_KHR_acceleration_structure, AccelerationStructureGeometryDataKHR, Bool32, DeviceOrHostAddressConstKHR, StructureType

Constructors

AccelerationStructureGeometryInstancesDataKHR 

Fields

data AccelerationStructureGeometryKHR Source #

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

Valid Usage (Implicit)

See Also

VK_KHR_acceleration_structure, 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.

Setting BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV in flags indicates that this build is a motion top level acceleration structure. A motion top level uses instances of format AccelerationStructureMotionInstanceNV if AccelerationStructureGeometryInstancesDataKHR::arrayOfPointers is FALSE.

If AccelerationStructureGeometryInstancesDataKHR::arrayOfPointers is TRUE, the pointer for any given element of the array of instance pointers consists of 4 bits of AccelerationStructureMotionInstanceTypeNV in the low 4 bits of the pointer identifying the type of structure at the pointer. The device address accessed is the value in the array with the low 4 bits set to zero. The structure at the pointer is one of AccelerationStructureInstanceKHR, AccelerationStructureMatrixMotionInstanceNV or AccelerationStructureSRTMotionInstanceNV, depending on the type value encoded in the low 4 bits.

A top level acceleration structure with either motion instances or vertex motion in its instances must set BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV in flags.

Members srcAccelerationStructure and dstAccelerationStructure may be the same or different for an update operation (when mode is BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR). If they are the same, the update happens in-place. Otherwise, the target acceleration structure is updated and the source is not modified.

Valid Usage

Valid Usage (Implicit)

  • pNext must be NULL
  • type must be a valid AccelerationStructureTypeKHR value
  • flags must be a valid combination of BuildAccelerationStructureFlagBitsKHR values
  • If geometryCount is not 0, and pGeometries is not NULL, pGeometries must be a valid pointer to an array of geometryCount valid AccelerationStructureGeometryKHR structures
  • If geometryCount is not 0, and ppGeometries is not NULL, ppGeometries must be a valid pointer to an array of geometryCount valid pointers to valid AccelerationStructureGeometryKHR structures
  • Both of dstAccelerationStructure, and srcAccelerationStructure that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same Device

See Also

VK_KHR_acceleration_structure, 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

VK_KHR_acceleration_structure, 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 (es :: [Type]) 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 will add BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT to all buffers used as storage for an acceleration structure where deviceAddress is not zero. This also means that the tool will need to add MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT to memory allocations to allow the flag to be set where the application may not have otherwise required it. 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.

If the acceleration structure will be the target of a build operation with BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV it must include ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV in flags and include AccelerationStructureMotionInfoNV as an extension structure in pNext with the number of instances as metadata for the object.

Valid Usage

Valid Usage (Implicit)

See Also

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

Constructors

AccelerationStructureCreateInfoKHR 

Fields

Instances

Instances details
Extensible AccelerationStructureCreateInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Show (Chain es) => Show (AccelerationStructureCreateInfoKHR es) Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

(Extendss AccelerationStructureCreateInfoKHR es, PeekChain es) => FromCStruct (AccelerationStructureCreateInfoKHR es) Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

(Extendss AccelerationStructureCreateInfoKHR es, PokeChain es) => ToCStruct (AccelerationStructureCreateInfoKHR es) Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

es ~ ('[] :: [Type]) => Zero (AccelerationStructureCreateInfoKHR es) 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

VK_KHR_acceleration_structure, VK_NV_ray_tracing

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

VK_KHR_acceleration_structure, VK_NV_ray_tracing, AccelerationStructureInstanceKHR, AccelerationStructureMatrixMotionInstanceNV

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 specification 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

VK_KHR_acceleration_structure, VK_NV_ray_tracing, AccelerationStructureMotionInstanceDataNV, 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

VK_KHR_acceleration_structure, 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

VK_KHR_acceleration_structure, StructureType, getDeviceAccelerationStructureCompatibilityKHR

Constructors

AccelerationStructureVersionInfoKHR 

Fields

data CopyAccelerationStructureInfoKHR Source #

VkCopyAccelerationStructureInfoKHR - Parameters for copying an acceleration structure

Valid Usage

Valid Usage (Implicit)

See Also

VK_KHR_acceleration_structure, 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

  • The source acceleration structure src must have been constructed prior to the execution of this command

Valid Usage (Implicit)

See Also

VK_KHR_acceleration_structure, AccelerationStructureKHR, CopyAccelerationStructureModeKHR, DeviceOrHostAddressKHR, StructureType, cmdCopyAccelerationStructureToMemoryKHR, copyAccelerationStructureToMemoryKHR

Constructors

CopyAccelerationStructureToMemoryInfoKHR 

Fields

data CopyMemoryToAccelerationStructureInfoKHR Source #

VkCopyMemoryToAccelerationStructureInfoKHR - Parameters for deserializing an acceleration structure

Valid Usage

  • The source memory pointed to by src must contain data previously serialized using cmdCopyAccelerationStructureToMemoryKHR, potentially modified to relocate acceleration structure references as described in that command

Valid Usage (Implicit)

See Also

VK_KHR_acceleration_structure, 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

VK_KHR_acceleration_structure, 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

VK_KHR_acceleration_structure, VK_NV_ray_tracing, 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_FLIP_FACING_BIT_KHR :: GeometryInstanceFlagBitsKHR

GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR indicates that the facing determination for geometry in this instance is inverted. Because the facing is determined in object space, an instance transform does not change the winding, but a geometry transform does.

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

VK_KHR_acceleration_structure, VK_NV_ray_tracing, 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

VK_KHR_acceleration_structure, VK_NV_ray_tracing, 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 a mode of BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR in AccelerationStructureBuildGeometryInfoKHR or an update of TRUE in 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 acceleration structure, potentially at the expense of build time or trace performance.

pattern BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV :: BuildAccelerationStructureFlagBitsKHR 

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

VK_KHR_acceleration_structure, AccelerationStructureCreateFlagsKHR

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. If src contains references to other acceleration structures, dst will reference the same acceleration structures.

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. If src contains references to other acceleration structures, dst will reference the same acceleration structures.

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

VK_KHR_acceleration_structure, 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 #

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

VK_KHR_acceleration_structure, VK_NV_ray_tracing, 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

VK_KHR_acceleration_structure, 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

VK_KHR_acceleration_structure, getDeviceAccelerationStructureCompatibilityKHR

Bundled Patterns

pattern ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR :: AccelerationStructureCompatibilityKHR

ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR if the pVersionData version acceleration structure is compatible with device.

pattern ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR :: AccelerationStructureCompatibilityKHR

ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR if the pVersionData version acceleration structure is not compatible 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

newtype FormatFeatureFlagBits2KHR Source #

VkFormatFeatureFlagBits2KHR - Bitmask specifying features supported by a buffer

Description

The following bits may be set in linearTilingFeatures and optimalTilingFeatures, specifying that the features are supported by images or image views or sampler Y′CBCR conversion objects created with the queried getPhysicalDeviceFormatProperties2::format:

The following bits may be set in bufferFeatures, specifying that the features are supported by buffers or buffer views created with the queried getPhysicalDeviceFormatProperties2::format:

See Also

VK_KHR_format_feature_flags2

Bundled Patterns

pattern FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT_KHR :: FormatFeatureFlagBits2KHR

FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT_KHR specifies that an image view can be sampled from.

pattern FORMAT_FEATURE_2_STORAGE_IMAGE_BIT_KHR :: FormatFeatureFlagBits2KHR

FORMAT_FEATURE_2_STORAGE_IMAGE_BIT_KHR specifies that an image view can be used as a storage image.

pattern FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT_KHR :: FormatFeatureFlagBits2KHR

FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT_KHR specifies that an image view can be used as storage image that supports atomic operations.

pattern FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR :: FormatFeatureFlagBits2KHR

FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR specifies that the format can be used to create a buffer view that can be bound to a DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER descriptor.

pattern FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT_KHR :: FormatFeatureFlagBits2KHR

FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT_KHR specifies that the format can be used to create a buffer view that can be bound to a DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor.

pattern FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT_KHR :: FormatFeatureFlagBits2KHR

FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT_KHR specifies that atomic operations are supported on DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER with this format.

pattern FORMAT_FEATURE_2_VERTEX_BUFFER_BIT_KHR :: FormatFeatureFlagBits2KHR

FORMAT_FEATURE_2_VERTEX_BUFFER_BIT_KHR specifies that the format can be used as a vertex attribute format (VertexInputAttributeDescription::format).

pattern FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT_KHR :: FormatFeatureFlagBits2KHR

FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT_KHR specifies that an image view can be used as a framebuffer color attachment and as an input attachment.

pattern FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT_KHR :: FormatFeatureFlagBits2KHR

FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT_KHR specifies that an image view can be used as a framebuffer color attachment that supports blending and as an input attachment.

pattern FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT_KHR :: FormatFeatureFlagBits2KHR

FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT_KHR specifies that an image view can be used as a framebuffer depth/stencil attachment and as an input attachment.

pattern FORMAT_FEATURE_2_BLIT_SRC_BIT_KHR :: FormatFeatureFlagBits2KHR

FORMAT_FEATURE_2_BLIT_SRC_BIT_KHR specifies that an image can be used as srcImage for the cmdBlitImage2KHR and cmdBlitImage commands.

pattern FORMAT_FEATURE_2_BLIT_DST_BIT_KHR :: FormatFeatureFlagBits2KHR

FORMAT_FEATURE_2_BLIT_DST_BIT_KHR specifies that an image can be used as dstImage for the cmdBlitImage2KHR and cmdBlitImage commands.

pattern FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT_KHR :: FormatFeatureFlagBits2KHR

FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT_KHR specifies that if FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT_KHR is also set, an image view can be used with a sampler that has either of magFilter or minFilter set to FILTER_LINEAR, or mipmapMode set to SAMPLER_MIPMAP_MODE_LINEAR. If FORMAT_FEATURE_2_BLIT_SRC_BIT_KHR is also set, an image can be used as the srcImage to cmdBlitImage2KHR and cmdBlitImage with a filter of FILTER_LINEAR. This bit must only be exposed for formats that also support the FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT_KHR or FORMAT_FEATURE_2_BLIT_SRC_BIT_KHR.

If the format being queried is a depth/stencil format, this bit only specifies that the depth aspect (not the stencil aspect) of an image of this format supports linear filtering. Where depth comparison is supported it may be linear filtered whether this bit is present or not, but where this bit is not present the filtered value may be computed in an implementation-dependent manner which differs from the normal rules of linear filtering. The resulting value must be in the range [0,1] and should be proportional to, or a weighted average of, the number of comparison passes or failures.

pattern FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT :: FormatFeatureFlagBits2KHR

FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT specifies that Image can be used with a sampler that has either of magFilter or minFilter set to FILTER_CUBIC_EXT, or be the source image for a blit with filter set to FILTER_CUBIC_EXT. This bit must only be exposed for formats that also support the FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT_KHR. If the format being queried is a depth/stencil format, this only specifies that the depth aspect is cubic filterable.

pattern FORMAT_FEATURE_2_TRANSFER_SRC_BIT_KHR :: FormatFeatureFlagBits2KHR

FORMAT_FEATURE_2_TRANSFER_SRC_BIT_KHR specifies that an image can be used as a source image for copy commands.

pattern FORMAT_FEATURE_2_TRANSFER_DST_BIT_KHR :: FormatFeatureFlagBits2KHR

FORMAT_FEATURE_2_TRANSFER_DST_BIT_KHR specifies that an image can be used as a destination image for copy commands and clear commands.

pattern FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT_KHR :: FormatFeatureFlagBits2KHR

FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT_KHR specifies Image can be used as a sampled image with a min or max SamplerReductionMode. This bit must only be exposed for formats that also support the FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT_KHR.

pattern FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT_KHR :: FormatFeatureFlagBits2KHR

FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT_KHR specifies that an application can define a sampler Y′CBCR conversion using this format as a source, and that an image of this format can be used with a SamplerYcbcrConversionCreateInfo xChromaOffset and/or yChromaOffset of CHROMA_LOCATION_MIDPOINT. Otherwise both xChromaOffset and yChromaOffset must be CHROMA_LOCATION_COSITED_EVEN. If a format does not incorporate chroma downsampling (it is not a “422” or “420” format) but the implementation supports sampler Y′CBCR conversion for this format, the implementation must set FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT_KHR.

pattern FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR :: FormatFeatureFlagBits2KHR

FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR specifies that an application can define a sampler Y′CBCR conversion using this format as a source with chromaFilter set to FILTER_LINEAR.

pattern FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR :: FormatFeatureFlagBits2KHR

FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR specifies that the format can have different chroma, min, and mag filters.

pattern FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR :: FormatFeatureFlagBits2KHR

FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR specifies that reconstruction is explicit, as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-chroma-reconstruction. If this bit is not present, reconstruction is implicit by default.

pattern FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR :: FormatFeatureFlagBits2KHR

FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR specifies that reconstruction can be forcibly made explicit by setting SamplerYcbcrConversionCreateInfo::forceExplicitReconstruction to TRUE. If the format being queried supports FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR it must also support FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR.

pattern FORMAT_FEATURE_2_DISJOINT_BIT_KHR :: FormatFeatureFlagBits2KHR

FORMAT_FEATURE_2_DISJOINT_BIT_KHR specifies that a multi-planar image can have the IMAGE_CREATE_DISJOINT_BIT set during image creation. An implementation must not set FORMAT_FEATURE_2_DISJOINT_BIT_KHR for single-plane formats.

pattern FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT_KHR :: FormatFeatureFlagBits2KHR

FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT_KHR specifies that an application can define a sampler Y′CBCR conversion using this format as a source, and that an image of this format can be used with a SamplerYcbcrConversionCreateInfo xChromaOffset and/or yChromaOffset of CHROMA_LOCATION_COSITED_EVEN. Otherwise both xChromaOffset and yChromaOffset must be CHROMA_LOCATION_MIDPOINT. If neither FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT_KHR nor FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT_KHR is set, the application must not define a sampler Y′CBCR conversion using this format as a source.

pattern FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR :: FormatFeatureFlagBits2KHR

FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR specifies that image views created with this format can be used as storage images for read operations without specifying a format.

pattern FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR :: FormatFeatureFlagBits2KHR

FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR specifies that image views created with this format can be used as storage images for write operations without specifying a format.

pattern FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR :: FormatFeatureFlagBits2KHR

FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR specifies that image views created with this format can be used for depth comparison performed by OpImage*Dref instructions.

pattern FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR :: FormatFeatureFlagBits2KHR

FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR specifies that an image view can be used as a fragment shading rate attachment. An implementation must not set this feature for formats with numeric type other than *UINT, or set it as a buffer feature.

pattern FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT :: FormatFeatureFlagBits2KHR

FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT specifies that an image view can be used as a fragment density map attachment.

pattern FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR :: FormatFeatureFlagBits2KHR

FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR specifies that the format can be used as the vertex format when creating an acceleration structure (AccelerationStructureGeometryTrianglesDataKHR::vertexFormat). This format can also be used as the vertex format in host memory when doing host acceleration structure builds.

Instances

Instances details
Eq FormatFeatureFlagBits2KHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Ord FormatFeatureFlagBits2KHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Read FormatFeatureFlagBits2KHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Show FormatFeatureFlagBits2KHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Storable FormatFeatureFlagBits2KHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Bits FormatFeatureFlagBits2KHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Methods

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

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

xor :: FormatFeatureFlagBits2KHR -> FormatFeatureFlagBits2KHR -> FormatFeatureFlagBits2KHR #

complement :: FormatFeatureFlagBits2KHR -> FormatFeatureFlagBits2KHR #

shift :: FormatFeatureFlagBits2KHR -> Int -> FormatFeatureFlagBits2KHR #

rotate :: FormatFeatureFlagBits2KHR -> Int -> FormatFeatureFlagBits2KHR #

zeroBits :: FormatFeatureFlagBits2KHR #

bit :: Int -> FormatFeatureFlagBits2KHR #

setBit :: FormatFeatureFlagBits2KHR -> Int -> FormatFeatureFlagBits2KHR #

clearBit :: FormatFeatureFlagBits2KHR -> Int -> FormatFeatureFlagBits2KHR #

complementBit :: FormatFeatureFlagBits2KHR -> Int -> FormatFeatureFlagBits2KHR #

testBit :: FormatFeatureFlagBits2KHR -> Int -> Bool #

bitSizeMaybe :: FormatFeatureFlagBits2KHR -> Maybe Int #

bitSize :: FormatFeatureFlagBits2KHR -> Int #

isSigned :: FormatFeatureFlagBits2KHR -> Bool #

shiftL :: FormatFeatureFlagBits2KHR -> Int -> FormatFeatureFlagBits2KHR #

unsafeShiftL :: FormatFeatureFlagBits2KHR -> Int -> FormatFeatureFlagBits2KHR #

shiftR :: FormatFeatureFlagBits2KHR -> Int -> FormatFeatureFlagBits2KHR #

unsafeShiftR :: FormatFeatureFlagBits2KHR -> Int -> FormatFeatureFlagBits2KHR #

rotateL :: FormatFeatureFlagBits2KHR -> Int -> FormatFeatureFlagBits2KHR #

rotateR :: FormatFeatureFlagBits2KHR -> Int -> FormatFeatureFlagBits2KHR #

popCount :: FormatFeatureFlagBits2KHR -> Int #

FiniteBits FormatFeatureFlagBits2KHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_acceleration_structure

Zero FormatFeatureFlagBits2KHR 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

'

DebugReportObjectTypeEXTVulkan Handle Type
DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXTUnknown/Undefined Handle
DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXTInstance
DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXTPhysicalDevice
DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXTDevice
DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXTQueue
DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXTSemaphore
DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXTCommandBuffer
DEBUG_REPORT_OBJECT_TYPE_FENCE_EXTFence
DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXTDeviceMemory
DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXTBuffer
DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXTImage
DEBUG_REPORT_OBJECT_TYPE_EVENT_EXTEvent
DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXTQueryPool
DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXTBufferView
DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXTImageView
DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXTShaderModule
DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXTPipelineCache
DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXTPipelineLayout
DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXTRenderPass
DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXTPipeline
DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXTDescriptorSetLayout
DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXTSampler
DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXTDescriptorPool
DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXTDescriptorSet
DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXTFramebuffer
DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXTCommandPool
DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXTSurfaceKHR
DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXTSwapchainKHR
DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXTDebugReportCallbackEXT
DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXTDisplayKHR
DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXTDisplayModeKHR
DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXTDescriptorUpdateTemplate

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

VK_EXT_debug_marker, VK_EXT_debug_report, 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_BUFFER_COLLECTION_FUCHSIA_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_CU_FUNCTION_NVX_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_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

type Flags64 = Word64 Source #

VkFlags64 - Vulkan 64-bit bitmasks

Description

When the 31 bits available in Flags are insufficient, the Flags64 type can be passed to commands and structures to represent up to 64 options. Flags64 is not used directly in the API. Instead, a Vk*Flags2 type which is an alias of Flags64, and whose name matches the corresponding Vk*FlagBits2 that are valid for that type, is used.

Any Vk*Flags2 member or parameter used in the API as an input must be a valid combination of bit flags. A valid combination is either zero or the bitwise OR of valid bit flags. A bit flag is valid if:

  • The bit flag is defined as part of the Vk*FlagBits2 type, where the bits type is obtained by taking the flag type and replacing the trailing Flags2 with FlagBits2. For example, a flag value of type AccessFlags2KHR must contain only bit flags defined by AccessFlagBits2KHR.
  • The flag is allowed in the context in which it is being used. For example, in some cases, certain bit flags or combinations of bit flags are mutually exclusive.

Any Vk*Flags2 member or parameter returned from a query command or otherwise output from Vulkan to the application may contain bit flags undefined in its corresponding Vk*FlagBits2 type. An application cannot rely on the state of these unspecified bits.

Note

Both the Vk*FlagBits2 type, and the individual bits defined for that type, are defined as uint64_t integers in the C API. This is in contrast to the 32-bit types, where the Vk*FlagBits type is defined as a C enum and the individual bits as enumerants belonging to that enum. As a result, there is less compile-time type checking possible for the 64-bit types. This is unavoidable since there is no sufficiently portable way to define a 64-bit enum type in C99.

See Also

VK_KHR_synchronization2, Flags