Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- compileDeferredNV :: forall io. MonadIO io => Device -> Pipeline -> ("shader" ::: Word32) -> io ()
- createAccelerationStructureNV :: forall io. MonadIO io => Device -> AccelerationStructureCreateInfoNV -> ("allocator" ::: Maybe AllocationCallbacks) -> io AccelerationStructureNV
- getAccelerationStructureMemoryRequirementsNV :: forall a io. (Extendss MemoryRequirements2KHR a, PokeChain a, PeekChain a, MonadIO io) => Device -> AccelerationStructureMemoryRequirementsInfoNV -> io (MemoryRequirements2KHR a)
- cmdCopyAccelerationStructureNV :: forall io. MonadIO io => CommandBuffer -> ("dst" ::: AccelerationStructureKHR) -> ("src" ::: AccelerationStructureKHR) -> CopyAccelerationStructureModeKHR -> io ()
- cmdBuildAccelerationStructureNV :: forall io. MonadIO io => CommandBuffer -> AccelerationStructureInfoNV -> ("instanceData" ::: Buffer) -> ("instanceOffset" ::: DeviceSize) -> ("update" ::: Bool) -> ("dst" ::: AccelerationStructureKHR) -> ("src" ::: AccelerationStructureKHR) -> ("scratch" ::: Buffer) -> ("scratchOffset" ::: DeviceSize) -> io ()
- cmdTraceRaysNV :: forall io. MonadIO io => CommandBuffer -> ("raygenShaderBindingTableBuffer" ::: Buffer) -> ("raygenShaderBindingOffset" ::: DeviceSize) -> ("missShaderBindingTableBuffer" ::: Buffer) -> ("missShaderBindingOffset" ::: DeviceSize) -> ("missShaderBindingStride" ::: DeviceSize) -> ("hitShaderBindingTableBuffer" ::: Buffer) -> ("hitShaderBindingOffset" ::: DeviceSize) -> ("hitShaderBindingStride" ::: DeviceSize) -> ("callableShaderBindingTableBuffer" ::: Buffer) -> ("callableShaderBindingOffset" ::: DeviceSize) -> ("callableShaderBindingStride" ::: DeviceSize) -> ("width" ::: Word32) -> ("height" ::: Word32) -> ("depth" ::: Word32) -> io ()
- getAccelerationStructureHandleNV :: forall io. MonadIO io => Device -> AccelerationStructureKHR -> ("dataSize" ::: Word64) -> ("data" ::: Ptr ()) -> io ()
- createRayTracingPipelinesNV :: forall io. MonadIO io => Device -> PipelineCache -> ("createInfos" ::: Vector (SomeStruct RayTracingPipelineCreateInfoNV)) -> ("allocator" ::: Maybe AllocationCallbacks) -> io (Result, "pipelines" ::: Vector Pipeline)
- pattern STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV :: StructureType
- pattern STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV :: StructureType
- pattern SHADER_STAGE_RAYGEN_BIT_NV :: ShaderStageFlagBits
- pattern SHADER_STAGE_ANY_HIT_BIT_NV :: ShaderStageFlagBits
- pattern SHADER_STAGE_CLOSEST_HIT_BIT_NV :: ShaderStageFlagBits
- pattern SHADER_STAGE_MISS_BIT_NV :: ShaderStageFlagBits
- pattern SHADER_STAGE_INTERSECTION_BIT_NV :: ShaderStageFlagBits
- pattern SHADER_STAGE_CALLABLE_BIT_NV :: ShaderStageFlagBits
- pattern PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV :: PipelineStageFlagBits
- pattern PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV :: PipelineStageFlagBits
- pattern BUFFER_USAGE_RAY_TRACING_BIT_NV :: BufferUsageFlagBits
- pattern PIPELINE_BIND_POINT_RAY_TRACING_NV :: PipelineBindPoint
- pattern DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV :: DescriptorType
- pattern ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV :: AccessFlagBits
- pattern ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV :: AccessFlagBits
- pattern QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV :: QueryType
- pattern OBJECT_TYPE_ACCELERATION_STRUCTURE_NV :: ObjectType
- pattern DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT :: DebugReportObjectTypeEXT
- pattern INDEX_TYPE_NONE_NV :: IndexType
- pattern RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV :: RayTracingShaderGroupTypeKHR
- pattern RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV :: RayTracingShaderGroupTypeKHR
- pattern RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV :: RayTracingShaderGroupTypeKHR
- pattern GEOMETRY_TYPE_TRIANGLES_NV :: GeometryTypeKHR
- pattern GEOMETRY_TYPE_AABBS_NV :: GeometryTypeKHR
- pattern ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV :: AccelerationStructureTypeKHR
- pattern ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV :: AccelerationStructureTypeKHR
- pattern GEOMETRY_OPAQUE_BIT_NV :: GeometryFlagBitsKHR
- pattern GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV :: GeometryFlagBitsKHR
- pattern GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV :: GeometryInstanceFlagBitsKHR
- pattern GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV :: GeometryInstanceFlagBitsKHR
- pattern GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV :: GeometryInstanceFlagBitsKHR
- pattern GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV :: GeometryInstanceFlagBitsKHR
- pattern BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV :: BuildAccelerationStructureFlagBitsKHR
- pattern BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV :: BuildAccelerationStructureFlagBitsKHR
- pattern BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV :: BuildAccelerationStructureFlagBitsKHR
- pattern BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV :: BuildAccelerationStructureFlagBitsKHR
- pattern BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV :: BuildAccelerationStructureFlagBitsKHR
- pattern COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV :: CopyAccelerationStructureModeKHR
- pattern COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV :: CopyAccelerationStructureModeKHR
- pattern ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV :: AccelerationStructureMemoryRequirementsTypeKHR
- pattern ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV :: AccelerationStructureMemoryRequirementsTypeKHR
- pattern ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV :: AccelerationStructureMemoryRequirementsTypeKHR
- destroyAccelerationStructureNV :: MonadIO io => Device -> AccelerationStructureKHR -> ("allocator" ::: Maybe AllocationCallbacks) -> io ()
- bindAccelerationStructureMemoryNV :: MonadIO io => Device -> ("bindInfos" ::: Vector BindAccelerationStructureMemoryInfoKHR) -> io ()
- cmdWriteAccelerationStructuresPropertiesNV :: MonadIO io => CommandBuffer -> ("accelerationStructures" ::: Vector AccelerationStructureKHR) -> QueryType -> QueryPool -> ("firstQuery" ::: Word32) -> io ()
- getRayTracingShaderGroupHandlesNV :: MonadIO io => Device -> Pipeline -> ("firstGroup" ::: Word32) -> ("groupCount" ::: Word32) -> ("dataSize" ::: Word64) -> ("data" ::: Ptr ()) -> io ()
- pattern SHADER_UNUSED_NV :: Word32
- data RayTracingShaderGroupCreateInfoNV = RayTracingShaderGroupCreateInfoNV {}
- data RayTracingPipelineCreateInfoNV (es :: [Type]) = RayTracingPipelineCreateInfoNV {}
- data GeometryTrianglesNV = GeometryTrianglesNV {}
- data GeometryAABBNV = GeometryAABBNV {}
- data GeometryDataNV = GeometryDataNV {}
- data GeometryNV = GeometryNV {}
- data AccelerationStructureInfoNV = AccelerationStructureInfoNV {}
- data AccelerationStructureCreateInfoNV = AccelerationStructureCreateInfoNV {}
- data AccelerationStructureMemoryRequirementsInfoNV = AccelerationStructureMemoryRequirementsInfoNV {}
- data PhysicalDeviceRayTracingPropertiesNV = PhysicalDeviceRayTracingPropertiesNV {}
- type GeometryFlagsNV = GeometryFlagsKHR
- type GeometryInstanceFlagsNV = GeometryInstanceFlagsKHR
- type BuildAccelerationStructureFlagsNV = BuildAccelerationStructureFlagsKHR
- type AccelerationStructureNV = AccelerationStructureKHR
- type GeometryFlagBitsNV = GeometryFlagBitsKHR
- type GeometryInstanceFlagBitsNV = GeometryInstanceFlagBitsKHR
- type BuildAccelerationStructureFlagBitsNV = BuildAccelerationStructureFlagBitsKHR
- type CopyAccelerationStructureModeNV = CopyAccelerationStructureModeKHR
- type AccelerationStructureTypeNV = AccelerationStructureTypeKHR
- type GeometryTypeNV = GeometryTypeKHR
- type RayTracingShaderGroupTypeNV = RayTracingShaderGroupTypeKHR
- type AccelerationStructureMemoryRequirementsTypeNV = AccelerationStructureMemoryRequirementsTypeKHR
- type BindAccelerationStructureMemoryInfoNV = BindAccelerationStructureMemoryInfoKHR
- type WriteDescriptorSetAccelerationStructureNV = WriteDescriptorSetAccelerationStructureKHR
- type AabbPositionsNV = AabbPositionsKHR
- type TransformMatrixNV = TransformMatrixKHR
- type AccelerationStructureInstanceNV = AccelerationStructureInstanceKHR
- type NV_RAY_TRACING_SPEC_VERSION = 3
- pattern NV_RAY_TRACING_SPEC_VERSION :: forall a. Integral a => a
- type NV_RAY_TRACING_EXTENSION_NAME = "VK_NV_ray_tracing"
- pattern NV_RAY_TRACING_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a
- newtype AccelerationStructureKHR = AccelerationStructureKHR Word64
- data BindAccelerationStructureMemoryInfoKHR = BindAccelerationStructureMemoryInfoKHR {}
- data WriteDescriptorSetAccelerationStructureKHR = WriteDescriptorSetAccelerationStructureKHR {}
- data AabbPositionsKHR = AabbPositionsKHR {}
- data TransformMatrixKHR = TransformMatrixKHR {}
- data AccelerationStructureInstanceKHR = AccelerationStructureInstanceKHR {}
- destroyAccelerationStructureKHR :: forall io. MonadIO io => Device -> AccelerationStructureKHR -> ("allocator" ::: Maybe AllocationCallbacks) -> io ()
- bindAccelerationStructureMemoryKHR :: forall io. MonadIO io => Device -> ("bindInfos" ::: Vector BindAccelerationStructureMemoryInfoKHR) -> io ()
- cmdWriteAccelerationStructuresPropertiesKHR :: forall io. MonadIO io => CommandBuffer -> ("accelerationStructures" ::: Vector AccelerationStructureKHR) -> QueryType -> QueryPool -> ("firstQuery" ::: Word32) -> io ()
- getRayTracingShaderGroupHandlesKHR :: forall io. MonadIO io => Device -> Pipeline -> ("firstGroup" ::: Word32) -> ("groupCount" ::: Word32) -> ("dataSize" ::: Word64) -> ("data" ::: Ptr ()) -> io ()
- newtype DebugReportObjectTypeEXT where
- DebugReportObjectTypeEXT Int32
- 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_SAMPLER_YCBCR_CONVERSION_EXT :: DebugReportObjectTypeEXT
- pattern DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT :: DebugReportObjectTypeEXT
- pattern DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT :: DebugReportObjectTypeEXT
- newtype GeometryInstanceFlagBitsKHR where
- GeometryInstanceFlagBitsKHR Flags
- pattern GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR :: GeometryInstanceFlagBitsKHR
- pattern GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR :: GeometryInstanceFlagBitsKHR
- pattern GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR :: GeometryInstanceFlagBitsKHR
- pattern GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR :: GeometryInstanceFlagBitsKHR
- type GeometryInstanceFlagsKHR = GeometryInstanceFlagBitsKHR
- newtype GeometryFlagBitsKHR where
- type GeometryFlagsKHR = GeometryFlagBitsKHR
- newtype BuildAccelerationStructureFlagBitsKHR where
- BuildAccelerationStructureFlagBitsKHR Flags
- pattern BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR :: BuildAccelerationStructureFlagBitsKHR
- pattern BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR :: BuildAccelerationStructureFlagBitsKHR
- pattern BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR :: BuildAccelerationStructureFlagBitsKHR
- pattern BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR :: BuildAccelerationStructureFlagBitsKHR
- pattern BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR :: BuildAccelerationStructureFlagBitsKHR
- type BuildAccelerationStructureFlagsKHR = BuildAccelerationStructureFlagBitsKHR
- newtype CopyAccelerationStructureModeKHR where
- CopyAccelerationStructureModeKHR Int32
- pattern COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR :: CopyAccelerationStructureModeKHR
- pattern COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR :: CopyAccelerationStructureModeKHR
- pattern COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR :: CopyAccelerationStructureModeKHR
- pattern COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR :: CopyAccelerationStructureModeKHR
- newtype AccelerationStructureTypeKHR where
- newtype GeometryTypeKHR where
- GeometryTypeKHR Int32
- pattern GEOMETRY_TYPE_TRIANGLES_KHR :: GeometryTypeKHR
- pattern GEOMETRY_TYPE_AABBS_KHR :: GeometryTypeKHR
- pattern GEOMETRY_TYPE_INSTANCES_KHR :: GeometryTypeKHR
- newtype AccelerationStructureMemoryRequirementsTypeKHR where
- AccelerationStructureMemoryRequirementsTypeKHR Int32
- pattern ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_KHR :: AccelerationStructureMemoryRequirementsTypeKHR
- pattern ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_KHR :: AccelerationStructureMemoryRequirementsTypeKHR
- pattern ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_KHR :: AccelerationStructureMemoryRequirementsTypeKHR
- newtype RayTracingShaderGroupTypeKHR where
- RayTracingShaderGroupTypeKHR Int32
- pattern RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR :: RayTracingShaderGroupTypeKHR
- pattern RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR :: RayTracingShaderGroupTypeKHR
- pattern RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR :: RayTracingShaderGroupTypeKHR
- type SHADER_UNUSED_KHR = 4294967295
- pattern SHADER_UNUSED_KHR :: Word32
Documentation
compileDeferredNV :: forall io. MonadIO io => Device -> Pipeline -> ("shader" ::: Word32) -> io () Source #
vkCompileDeferredNV - Deferred compilation of shaders
Parameters
device
is the logical device containing the ray tracing pipeline.
pipeline
is the ray tracing pipeline object containing the shaders.shader
is the index of the shader to compile.
Return Codes
See Also
createAccelerationStructureNV :: forall io. MonadIO io => Device -> AccelerationStructureCreateInfoNV -> ("allocator" ::: Maybe AllocationCallbacks) -> io AccelerationStructureNV Source #
vkCreateAccelerationStructureNV - Create a new acceleration structure object
Parameters
device
is the logical device that creates the buffer object.
pCreateInfo
is a pointer to aAccelerationStructureCreateInfoNV
structure containing parameters affecting creation of the acceleration structure.pAllocator
controls host memory allocation as described in the Memory Allocation chapter.pAccelerationStructure
is a pointer to aAccelerationStructureNV
handle in which the resulting acceleration structure object is returned.
Description
Similar to other objects in Vulkan, the acceleration structure creation
merely creates an object with a specific “shape” as specified by the
information in AccelerationStructureInfoNV
and compactedSize
in
pCreateInfo
. Populating the data in the object after allocating and
binding memory is done with cmdBuildAccelerationStructureNV
and
cmdCopyAccelerationStructureNV
.
Acceleration structure creation uses the count and type information from the geometries, but does not use the data references in the structures.
Valid Usage (Implicit)
device
must be a validDevice
handle
pCreateInfo
must be a valid pointer to a validAccelerationStructureCreateInfoNV
structure- If
pAllocator
is notNULL
,pAllocator
must be a valid pointer to a validAllocationCallbacks
structure pAccelerationStructure
must be a valid pointer to aAccelerationStructureNV
handle
Return Codes
See Also
AccelerationStructureCreateInfoNV
, AccelerationStructureNV
,
AllocationCallbacks
,
Device
getAccelerationStructureMemoryRequirementsNV :: forall a io. (Extendss MemoryRequirements2KHR a, PokeChain a, PeekChain a, MonadIO io) => Device -> AccelerationStructureMemoryRequirementsInfoNV -> io (MemoryRequirements2KHR a) Source #
vkGetAccelerationStructureMemoryRequirementsNV - Get acceleration structure memory requirements
Parameters
device
is the logical device on which the acceleration structure was created.
pInfo
specifies the acceleration structure to get memory requirements for.pMemoryRequirements
returns the requested acceleration structure memory requirements.
Valid Usage (Implicit)
See Also
AccelerationStructureMemoryRequirementsInfoNV
,
Device
,
MemoryRequirements2KHR
cmdCopyAccelerationStructureNV :: forall io. MonadIO io => CommandBuffer -> ("dst" ::: AccelerationStructureKHR) -> ("src" ::: AccelerationStructureKHR) -> CopyAccelerationStructureModeKHR -> io () Source #
vkCmdCopyAccelerationStructureNV - Copy an acceleration structure
Parameters
commandBuffer
is the command buffer into which the command will be recorded.
dst
is a pointer to the target acceleration structure for the copy.src
is a pointer to the source acceleration structure for the copy.mode
is aCopyAccelerationStructureModeKHR
value specifying additional operations to perform during the copy.
Valid Usage
mode
must beCOPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR
orCOPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR
src
must have been built withBUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR
ifmode
isCOPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR
Valid Usage (Implicit)
commandBuffer
must be a validCommandBuffer
handle
dst
must be a validAccelerationStructureKHR
handlesrc
must be a validAccelerationStructureKHR
handlemode
must be a validCopyAccelerationStructureModeKHR
valuecommandBuffer
must be in the recording state- The
CommandPool
thatcommandBuffer
was allocated from must support compute operations - This command must only be called outside of a render pass instance
- Each of
commandBuffer
,dst
, andsrc
must have been created, allocated, or retrieved from the sameDevice
Host Synchronization
- Host access to the
CommandPool
thatcommandBuffer
was allocated from must be externally synchronized
Command Properties
'
Command Buffer Levels | Render Pass Scope | Supported Queue Types | Pipeline Type |
---|---|---|---|
Primary Secondary | Outside | Compute |
See Also
AccelerationStructureKHR
,
CommandBuffer
,
CopyAccelerationStructureModeKHR
cmdBuildAccelerationStructureNV :: forall io. MonadIO io => CommandBuffer -> AccelerationStructureInfoNV -> ("instanceData" ::: Buffer) -> ("instanceOffset" ::: DeviceSize) -> ("update" ::: Bool) -> ("dst" ::: AccelerationStructureKHR) -> ("src" ::: AccelerationStructureKHR) -> ("scratch" ::: Buffer) -> ("scratchOffset" ::: DeviceSize) -> io () Source #
vkCmdBuildAccelerationStructureNV - Build an acceleration structure
Parameters
commandBuffer
is the command buffer into which the command will be recorded.
pInfo
contains the shared information for the acceleration structure’s structure.instanceData
is the buffer containing an array ofAccelerationStructureInstanceKHR
structures defining acceleration structures. This parameter must beNULL
for bottom level acceleration structures.instanceOffset
is the offset in bytes (relative to the start ofinstanceData
) at which the instance data is located.update
specifies whether to update thedst
acceleration structure with the data insrc
.dst
is a pointer to the target acceleration structure for the build.src
is a pointer to an existing acceleration structure that is to be used to update thedst
acceleration structure.scratch
is theBuffer
that will be used as scratch memory for the build.scratchOffset
is the offset in bytes relative to the start ofscratch
that will be used as a scratch memory.
Valid Usage
geometryCount
must be less than or equal toPhysicalDeviceRayTracingPropertiesNV
::maxGeometryCount
dst
must have been created with compatibleAccelerationStructureInfoNV
whereAccelerationStructureInfoNV
::type
andAccelerationStructureInfoNV
::flags
are identical,AccelerationStructureInfoNV
::instanceCount
andAccelerationStructureInfoNV
::geometryCount
fordst
are greater than or equal to the build size and each geometry inAccelerationStructureInfoNV
::pGeometries
fordst
has greater than or equal to the number of vertices, indices, and AABBs- If
update
isTRUE
,src
must not beNULL_HANDLE
- If
update
isTRUE
,src
must have been built before withBUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV
set inAccelerationStructureInfoNV
::flags
- If
update
isFALSE
, thesize
member of theMemoryRequirements
structure returned from a call togetAccelerationStructureMemoryRequirementsNV
withAccelerationStructureMemoryRequirementsInfoNV
::accelerationStructure
set todst
andAccelerationStructureMemoryRequirementsInfoNV
::type
set toACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV
must be less than or equal to the size ofscratch
minusscratchOffset
- If
update
isTRUE
, thesize
member of theMemoryRequirements
structure returned from a call togetAccelerationStructureMemoryRequirementsNV
withAccelerationStructureMemoryRequirementsInfoNV
::accelerationStructure
set todst
andAccelerationStructureMemoryRequirementsInfoNV
::type
set toACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV
must be less than or equal to the size ofscratch
minusscratchOffset
scratch
must have been created withBUFFER_USAGE_RAY_TRACING_BIT_NV
usage flag- If
instanceData
is notNULL_HANDLE
,instanceData
must have been created withBUFFER_USAGE_RAY_TRACING_BIT_NV
usage flag - If
update
isTRUE
, then objects that were previously active must not be made inactive as per https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#acceleration-structure-inactive-prims - If
update
isTRUE
, then objects that were previously inactive must not be made active as per https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#acceleration-structure-inactive-prims - If
update
isTRUE
, thesrc
anddst
objects must either be the same object or not have any memory aliasing
Valid Usage (Implicit)
commandBuffer
must be a validCommandBuffer
handle
pInfo
must be a valid pointer to a validAccelerationStructureInfoNV
structure- If
instanceData
is notNULL_HANDLE
,instanceData
must be a validBuffer
handle dst
must be a validAccelerationStructureKHR
handle- If
src
is notNULL_HANDLE
,src
must be a validAccelerationStructureKHR
handle scratch
must be a validBuffer
handlecommandBuffer
must be in the recording state- The
CommandPool
thatcommandBuffer
was allocated from must support compute operations - This command must only be called outside of a render pass instance
- Each of
commandBuffer
,dst
,instanceData
,scratch
, andsrc
that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the sameDevice
Host Synchronization
- Host access to the
CommandPool
thatcommandBuffer
was allocated from must be externally synchronized
Command Properties
'
Command Buffer Levels | Render Pass Scope | Supported Queue Types | Pipeline Type |
---|---|---|---|
Primary Secondary | Outside | Compute |
See Also
AccelerationStructureInfoNV
,
AccelerationStructureKHR
,
Bool32
, Buffer
,
CommandBuffer
,
DeviceSize
cmdTraceRaysNV :: forall io. MonadIO io => CommandBuffer -> ("raygenShaderBindingTableBuffer" ::: Buffer) -> ("raygenShaderBindingOffset" ::: DeviceSize) -> ("missShaderBindingTableBuffer" ::: Buffer) -> ("missShaderBindingOffset" ::: DeviceSize) -> ("missShaderBindingStride" ::: DeviceSize) -> ("hitShaderBindingTableBuffer" ::: Buffer) -> ("hitShaderBindingOffset" ::: DeviceSize) -> ("hitShaderBindingStride" ::: DeviceSize) -> ("callableShaderBindingTableBuffer" ::: Buffer) -> ("callableShaderBindingOffset" ::: DeviceSize) -> ("callableShaderBindingStride" ::: DeviceSize) -> ("width" ::: Word32) -> ("height" ::: Word32) -> ("depth" ::: Word32) -> io () Source #
vkCmdTraceRaysNV - Initialize a ray tracing dispatch
Parameters
commandBuffer
is the command buffer into which the command will be recorded.
raygenShaderBindingTableBuffer
is the buffer object that holds the shader binding table data for the ray generation shader stage.raygenShaderBindingOffset
is the offset in bytes (relative toraygenShaderBindingTableBuffer
) of the ray generation shader being used for the trace.missShaderBindingTableBuffer
is the buffer object that holds the shader binding table data for the miss shader stage.missShaderBindingOffset
is the offset in bytes (relative tomissShaderBindingTableBuffer
) of the miss shader being used for the trace.missShaderBindingStride
is the size in bytes of each shader binding table record inmissShaderBindingTableBuffer
.hitShaderBindingTableBuffer
is the buffer object that holds the shader binding table data for the hit shader stages.hitShaderBindingOffset
is the offset in bytes (relative tohitShaderBindingTableBuffer
) of the hit shader group being used for the trace.hitShaderBindingStride
is the size in bytes of each shader binding table record inhitShaderBindingTableBuffer
.callableShaderBindingTableBuffer
is the buffer object that holds the shader binding table data for the callable shader stage.callableShaderBindingOffset
is the offset in bytes (relative tocallableShaderBindingTableBuffer
) of the callable shader being used for the trace.callableShaderBindingStride
is the size in bytes of each shader binding table record incallableShaderBindingTableBuffer
.width
is the width of the ray trace query dimensions.height
is height of the ray trace query dimensions.depth
is depth of the ray trace query dimensions.
Description
When the command is executed, a ray generation group of width
×
height
× depth
rays is assembled.
Valid Usage
- If a
ImageView
is sampled withFILTER_LINEAR
as a result of this command, then the image view’s format features must containFORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
- If a
ImageView
is accessed using atomic operations as a result of this command, then the image view’s format features must containFORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT
- If a
ImageView
is sampled withFILTER_CUBIC_EXT
as a result of this command, then the image view’s format features must containFORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT
- Any
ImageView
being sampled withFILTER_CUBIC_EXT
as a result of this command must have aImageViewType
and format that supports cubic filtering, as specified byFilterCubicImageViewImageFormatPropertiesEXT
::filterCubic
returned bygetPhysicalDeviceImageFormatProperties2
- Any
ImageView
being sampled withFILTER_CUBIC_EXT
with a reduction mode of eitherSAMPLER_REDUCTION_MODE_MIN
orSAMPLER_REDUCTION_MODE_MAX
as a result of this command must have aImageViewType
and format that supports cubic filtering together with minmax filtering, as specified byFilterCubicImageViewImageFormatPropertiesEXT
::filterCubicMinmax
returned bygetPhysicalDeviceImageFormatProperties2
- Any
Image
created with aImageCreateInfo
::flags
containingIMAGE_CREATE_CORNER_SAMPLED_BIT_NV
sampled as a result of this command must only be sampled using aSamplerAddressMode
ofSAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE
- For each set n that is statically used by the
Pipeline
bound to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with aPipelineLayout
that is compatible for set n, with thePipelineLayout
used to create the currentPipeline
, as described in ??? - For each push constant that is statically used by the
Pipeline
bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with aPipelineLayout
that is compatible for push constants, with thePipelineLayout
used to create the currentPipeline
, as described in ??? - Descriptors in each bound descriptor set, specified via
cmdBindDescriptorSets
, must be valid if they are statically used by thePipeline
bound to the pipeline bind point used by this command - A valid pipeline must be bound to the pipeline bind point used by this command
- If the
Pipeline
object bound to the pipeline bind point used by this command requires any dynamic state, that state must have been set forcommandBuffer
, and done so after any previously bound pipeline with the corresponding state not specified as dynamic - There must not have been any calls to dynamic state setting
commands for any state not specified as dynamic in the
Pipeline
object bound to the pipeline bind point used by this command, since that pipeline was bound - If the
Pipeline
object bound to the pipeline bind point used by this command accesses aSampler
object that uses unnormalized coordinates, that sampler must not be used to sample from anyImage
with aImageView
of the typeIMAGE_VIEW_TYPE_3D
,IMAGE_VIEW_TYPE_CUBE
,IMAGE_VIEW_TYPE_1D_ARRAY
,IMAGE_VIEW_TYPE_2D_ARRAY
orIMAGE_VIEW_TYPE_CUBE_ARRAY
, in any shader stage - If the
Pipeline
object bound to the pipeline bind point used by this command accesses aSampler
object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-VOpImageSample*
orOpImageSparseSample*
instructions withImplicitLod
,Dref
orProj
in their name, in any shader stage - If the
Pipeline
object bound to the pipeline bind point used by this command accesses aSampler
object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-VOpImageSample*
orOpImageSparseSample*
instructions that includes a LOD bias or any offset values, in any shader stage - If the
robust buffer access
feature is not enabled, and if the
Pipeline
object bound to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point - If the
robust buffer access
feature is not enabled, and if the
Pipeline
object bound to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point - If
commandBuffer
is an unprotected command buffer, any resource accessed by thePipeline
object bound to the pipeline bind point used by this command must not be a protected resource - Any shader group handle referenced by this call must have been queried from the currently bound ray tracing shader pipeline
- This command must not cause a shader call instruction to be
executed from a shader invocation with a
recursion depth
greater than the value of
maxRecursionDepth
used to create the bound ray tracing pipeline - If
commandBuffer
is a protected command buffer, any resource written to by thePipeline
object bound to the pipeline bind point used by this command must not be an unprotected resource - If
commandBuffer
is a protected command buffer, pipeline stages other than the framebuffer-space and compute stages in thePipeline
object bound to the pipeline bind point must not write to any resource - If
raygenShaderBindingTableBuffer
is non-sparse then it must be bound completely and contiguously to a singleDeviceMemory
object raygenShaderBindingOffset
must be less than the size ofraygenShaderBindingTableBuffer
raygenShaderBindingOffset
must be a multiple ofPhysicalDeviceRayTracingPropertiesNV
::shaderGroupBaseAlignment
- If
missShaderBindingTableBuffer
is non-sparse then it must be bound completely and contiguously to a singleDeviceMemory
object missShaderBindingOffset
must be less than the size ofmissShaderBindingTableBuffer
missShaderBindingOffset
must be a multiple ofPhysicalDeviceRayTracingPropertiesNV
::shaderGroupBaseAlignment
- If
hitShaderBindingTableBuffer
is non-sparse then it must be bound completely and contiguously to a singleDeviceMemory
object hitShaderBindingOffset
must be less than the size ofhitShaderBindingTableBuffer
hitShaderBindingOffset
must be a multiple ofPhysicalDeviceRayTracingPropertiesNV
::shaderGroupBaseAlignment
- If
callableShaderBindingTableBuffer
is non-sparse then it must be bound completely and contiguously to a singleDeviceMemory
object callableShaderBindingOffset
must be less than the size ofcallableShaderBindingTableBuffer
callableShaderBindingOffset
must be a multiple ofPhysicalDeviceRayTracingPropertiesNV
::shaderGroupBaseAlignment
missShaderBindingStride
must be a multiple ofPhysicalDeviceRayTracingPropertiesNV
::shaderGroupHandleSize
hitShaderBindingStride
must be a multiple ofPhysicalDeviceRayTracingPropertiesNV
::shaderGroupHandleSize
callableShaderBindingStride
must be a multiple ofPhysicalDeviceRayTracingPropertiesNV
::shaderGroupHandleSize
missShaderBindingStride
must be less than or equal toPhysicalDeviceRayTracingPropertiesNV
::maxShaderGroupStride
hitShaderBindingStride
must be less than or equal toPhysicalDeviceRayTracingPropertiesNV
::maxShaderGroupStride
callableShaderBindingStride
must be less than or equal toPhysicalDeviceRayTracingPropertiesNV
::maxShaderGroupStride
width
must be less than or equal toPhysicalDeviceLimits
::maxComputeWorkGroupCount
[0]height
must be less than or equal toPhysicalDeviceLimits
::maxComputeWorkGroupCount
[1]depth
must be less than or equal toPhysicalDeviceLimits
::maxComputeWorkGroupCount
[2]
Valid Usage (Implicit)
commandBuffer
must be a validCommandBuffer
handle
raygenShaderBindingTableBuffer
must be a validBuffer
handle- If
missShaderBindingTableBuffer
is notNULL_HANDLE
,missShaderBindingTableBuffer
must be a validBuffer
handle - If
hitShaderBindingTableBuffer
is notNULL_HANDLE
,hitShaderBindingTableBuffer
must be a validBuffer
handle - If
callableShaderBindingTableBuffer
is notNULL_HANDLE
,callableShaderBindingTableBuffer
must be a validBuffer
handle commandBuffer
must be in the recording state- The
CommandPool
thatcommandBuffer
was allocated from must support compute operations - This command must only be called outside of a render pass instance
- Each of
callableShaderBindingTableBuffer
,commandBuffer
,hitShaderBindingTableBuffer
,missShaderBindingTableBuffer
, andraygenShaderBindingTableBuffer
that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the sameDevice
Host Synchronization
- Host access to the
CommandPool
thatcommandBuffer
was allocated from must be externally synchronized
Command Properties
'
Command Buffer Levels | Render Pass Scope | Supported Queue Types | Pipeline Type |
---|---|---|---|
Primary Secondary | Outside | Compute |
See Also
getAccelerationStructureHandleNV :: forall io. MonadIO io => Device -> AccelerationStructureKHR -> ("dataSize" ::: Word64) -> ("data" ::: Ptr ()) -> io () Source #
vkGetAccelerationStructureHandleNV - Get opaque acceleration structure handle
Parameters
device
is the logical device that owns the acceleration structures.
accelerationStructure
is the acceleration structure.dataSize
is the size in bytes of the buffer pointed to bypData
.pData
is a pointer to a user-allocated buffer where the results will be written.
Return Codes
See Also
createRayTracingPipelinesNV :: forall io. MonadIO io => Device -> PipelineCache -> ("createInfos" ::: Vector (SomeStruct RayTracingPipelineCreateInfoNV)) -> ("allocator" ::: Maybe AllocationCallbacks) -> io (Result, "pipelines" ::: Vector Pipeline) Source #
vkCreateRayTracingPipelinesNV - Creates a new ray tracing pipeline object
Parameters
device
is the logical device that creates the ray tracing pipelines.
pipelineCache
is eitherNULL_HANDLE
, indicating that pipeline caching is disabled, or the handle of a valid pipeline cache object, in which case use of that cache is enabled for the duration of the command.createInfoCount
is the length of thepCreateInfos
andpPipelines
arrays.pCreateInfos
is a pointer to an array ofRayTracingPipelineCreateInfoNV
structures.pAllocator
controls host memory allocation as described in the Memory Allocation chapter.pPipelines
is a pointer to an array in which the resulting ray tracing pipeline objects are returned.
Valid Usage
- If the
flags
member of any element ofpCreateInfos
contains thePIPELINE_CREATE_DERIVATIVE_BIT
flag, and thebasePipelineIndex
member of that same element is not-1
,basePipelineIndex
must be less than the index intopCreateInfos
that corresponds to that element
- If the
flags
member of any element ofpCreateInfos
contains thePIPELINE_CREATE_DERIVATIVE_BIT
flag, the base pipeline must have been created with thePIPELINE_CREATE_ALLOW_DERIVATIVES_BIT
flag set - If
pipelineCache
was created withPIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT
, host access topipelineCache
must be externally synchronized
Valid Usage (Implicit)
device
must be a validDevice
handle
- If
pipelineCache
is notNULL_HANDLE
,pipelineCache
must be a validPipelineCache
handle pCreateInfos
must be a valid pointer to an array ofcreateInfoCount
validRayTracingPipelineCreateInfoNV
structures- If
pAllocator
is notNULL
,pAllocator
must be a valid pointer to a validAllocationCallbacks
structure pPipelines
must be a valid pointer to an array ofcreateInfoCount
Pipeline
handlescreateInfoCount
must be greater than0
- If
pipelineCache
is a valid handle, it must have been created, allocated, or retrieved fromdevice
Return Codes
See Also
AllocationCallbacks
,
Device
, Pipeline
,
PipelineCache
, RayTracingPipelineCreateInfoNV
pattern SHADER_STAGE_RAYGEN_BIT_NV :: ShaderStageFlagBits Source #
pattern SHADER_STAGE_ANY_HIT_BIT_NV :: ShaderStageFlagBits Source #
pattern SHADER_STAGE_MISS_BIT_NV :: ShaderStageFlagBits Source #
pattern SHADER_STAGE_CALLABLE_BIT_NV :: ShaderStageFlagBits Source #
pattern OBJECT_TYPE_ACCELERATION_STRUCTURE_NV :: ObjectType Source #
pattern INDEX_TYPE_NONE_NV :: IndexType Source #
pattern RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV :: RayTracingShaderGroupTypeKHR Source #
pattern RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV :: RayTracingShaderGroupTypeKHR Source #
pattern GEOMETRY_TYPE_TRIANGLES_NV :: GeometryTypeKHR Source #
pattern GEOMETRY_TYPE_AABBS_NV :: GeometryTypeKHR Source #
pattern GEOMETRY_OPAQUE_BIT_NV :: GeometryFlagBitsKHR Source #
pattern GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV :: GeometryInstanceFlagBitsKHR Source #
pattern BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV :: BuildAccelerationStructureFlagBitsKHR Source #
pattern BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV :: BuildAccelerationStructureFlagBitsKHR Source #
pattern BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV :: BuildAccelerationStructureFlagBitsKHR Source #
pattern BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV :: BuildAccelerationStructureFlagBitsKHR Source #
pattern BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV :: BuildAccelerationStructureFlagBitsKHR Source #
pattern ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV :: AccelerationStructureMemoryRequirementsTypeKHR Source #
pattern ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV :: AccelerationStructureMemoryRequirementsTypeKHR Source #
pattern ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV :: AccelerationStructureMemoryRequirementsTypeKHR Source #
destroyAccelerationStructureNV :: MonadIO io => Device -> AccelerationStructureKHR -> ("allocator" ::: Maybe AllocationCallbacks) -> io () Source #
bindAccelerationStructureMemoryNV :: MonadIO io => Device -> ("bindInfos" ::: Vector BindAccelerationStructureMemoryInfoKHR) -> io () Source #
cmdWriteAccelerationStructuresPropertiesNV :: MonadIO io => CommandBuffer -> ("accelerationStructures" ::: Vector AccelerationStructureKHR) -> QueryType -> QueryPool -> ("firstQuery" ::: Word32) -> io () Source #
getRayTracingShaderGroupHandlesNV :: MonadIO io => Device -> Pipeline -> ("firstGroup" ::: Word32) -> ("groupCount" ::: Word32) -> ("dataSize" ::: Word64) -> ("data" ::: Ptr ()) -> io () Source #
pattern SHADER_UNUSED_NV :: Word32 Source #
data RayTracingShaderGroupCreateInfoNV Source #
VkRayTracingShaderGroupCreateInfoNV - Structure specifying shaders in a shader group
Valid Usage
- If
type
isRAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV
thengeneralShader
must be a valid index intoRayTracingPipelineCreateInfoNV
::pStages
referring to a shader ofSHADER_STAGE_RAYGEN_BIT_NV
,SHADER_STAGE_MISS_BIT_NV
, orSHADER_STAGE_CALLABLE_BIT_NV
- If
type
isRAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV
thenclosestHitShader
,anyHitShader
, andintersectionShader
must beSHADER_UNUSED_NV
- If
type
isRAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV
thenintersectionShader
must be a valid index intoRayTracingPipelineCreateInfoNV
::pStages
referring to a shader ofSHADER_STAGE_INTERSECTION_BIT_NV
- If
type
isRAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV
thenintersectionShader
must beSHADER_UNUSED_NV
closestHitShader
must be eitherSHADER_UNUSED_NV
or a valid index intoRayTracingPipelineCreateInfoNV
::pStages
referring to a shader ofSHADER_STAGE_CLOSEST_HIT_BIT_NV
anyHitShader
must be eitherSHADER_UNUSED_NV
or a valid index intoRayTracingPipelineCreateInfoNV
::pStages
referring to a shader ofSHADER_STAGE_ANY_HIT_BIT_NV
Valid Usage (Implicit)
sType
must beSTRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV
pNext
must beNULL
type
must be a validRayTracingShaderGroupTypeKHR
value
See Also
RayTracingPipelineCreateInfoNV
,
RayTracingShaderGroupTypeKHR
,
StructureType
RayTracingShaderGroupCreateInfoNV | |
|
Instances
data RayTracingPipelineCreateInfoNV (es :: [Type]) Source #
VkRayTracingPipelineCreateInfoNV - Structure specifying parameters of a newly created ray tracing pipeline
Description
The parameters basePipelineHandle
and basePipelineIndex
are
described in more detail in
Pipeline Derivatives.
Valid Usage
- If
flags
contains thePIPELINE_CREATE_DERIVATIVE_BIT
flag, andbasePipelineIndex
is-1
,basePipelineHandle
must be a valid handle to a ray tracingPipeline
- If
flags
contains thePIPELINE_CREATE_DERIVATIVE_BIT
flag, andbasePipelineHandle
isNULL_HANDLE
,basePipelineIndex
must be a valid index into the calling command’spCreateInfos
parameter - If
flags
contains thePIPELINE_CREATE_DERIVATIVE_BIT
flag, andbasePipelineIndex
is not-1
,basePipelineHandle
must beNULL_HANDLE
- If
flags
contains thePIPELINE_CREATE_DERIVATIVE_BIT
flag, andbasePipelineHandle
is notNULL_HANDLE
,basePipelineIndex
must be-1
- The
stage
member of at least one element ofpStages
must beSHADER_STAGE_RAYGEN_BIT_KHR
- The shader code for the entry points identified by
pStages
, and the rest of the state identified by this structure must adhere to the pipeline linking rules described in the Shader Interfaces chapter layout
must be consistent with all shaders specified inpStages
- The number of resources in
layout
accessible to each shader stage that is used by the pipeline must be less than or equal toPhysicalDeviceLimits
::maxPerStageResources
flags
must not includePIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV
- If the
pipelineCreationCacheControl
feature is not enabled,
flags
must not includePIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT
orPIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT
flags
must not includePIPELINE_CREATE_LIBRARY_BIT_KHR
maxRecursionDepth
must be less than or equal toPhysicalDeviceRayTracingPropertiesNV
::maxRecursionDepth
flags
must not includePIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR
flags
must not includePIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR
flags
must not includePIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR
flags
must not includePIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR
flags
must not includePIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR
flags
must not includePIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR
flags
must not include bothPIPELINE_CREATE_DEFER_COMPILE_BIT_NV
andPIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT
at the same time
Valid Usage (Implicit)
sType
must beSTRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV
pNext
must beNULL
or a pointer to a valid instance ofPipelineCreationFeedbackCreateInfoEXT
- The
sType
value of each struct in thepNext
chain must be unique flags
must be a valid combination ofPipelineCreateFlagBits
valuespStages
must be a valid pointer to an array ofstageCount
validPipelineShaderStageCreateInfo
structurespGroups
must be a valid pointer to an array ofgroupCount
validRayTracingShaderGroupCreateInfoNV
structureslayout
must be a validPipelineLayout
handlestageCount
must be greater than0
groupCount
must be greater than0
- Both of
basePipelineHandle
, andlayout
that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the sameDevice
See Also
Pipeline
,
PipelineCreateFlags
,
PipelineLayout
,
PipelineShaderStageCreateInfo
,
RayTracingShaderGroupCreateInfoNV
,
StructureType
,
createRayTracingPipelinesNV
RayTracingPipelineCreateInfoNV | |
|
Instances
data GeometryTrianglesNV Source #
VkGeometryTrianglesNV - Structure specifying a triangle geometry in a bottom-level acceleration structure
Description
If indexType
is INDEX_TYPE_NONE_NV
, then this structure describes a
set of triangles determined by vertexCount
. Otherwise, this structure
describes a set of indexed triangles determined by indexCount
.
Valid Usage
vertexOffset
must be less than the size ofvertexData
vertexOffset
must be a multiple of the component size ofvertexFormat
vertexFormat
must be one ofFORMAT_R32G32B32_SFLOAT
,FORMAT_R32G32_SFLOAT
,FORMAT_R16G16B16_SFLOAT
,FORMAT_R16G16_SFLOAT
,FORMAT_R16G16_SNORM
, orFORMAT_R16G16B16_SNORM
indexOffset
must be less than the size ofindexData
indexOffset
must be a multiple of the element size ofindexType
indexType
must beINDEX_TYPE_UINT16
,INDEX_TYPE_UINT32
, orINDEX_TYPE_NONE_NV
indexData
must beNULL_HANDLE
ifindexType
isINDEX_TYPE_NONE_NV
indexData
must be a validBuffer
handle ifindexType
is notINDEX_TYPE_NONE_NV
indexCount
must be0
ifindexType
isINDEX_TYPE_NONE_NV
transformOffset
must be less than the size oftransformData
transformOffset
must be a multiple of16
Valid Usage (Implicit)
sType
must beSTRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV
pNext
must beNULL
- If
vertexData
is notNULL_HANDLE
,vertexData
must be a validBuffer
handle vertexFormat
must be a validFormat
value- If
indexData
is notNULL_HANDLE
,indexData
must be a validBuffer
handle indexType
must be a validIndexType
value- If
transformData
is notNULL_HANDLE
,transformData
must be a validBuffer
handle - Each of
indexData
,transformData
, andvertexData
that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the sameDevice
See Also
Buffer
, DeviceSize
,
Format
, GeometryDataNV
,
IndexType
,
StructureType
GeometryTrianglesNV | |
|
Instances
data GeometryAABBNV Source #
VkGeometryAABBNV - Structure specifying axis-aligned bounding box geometry in a bottom-level acceleration structure
Description
The AABB data in memory is six 32-bit floats consisting of the minimum x, y, and z values followed by the maximum x, y, and z values.
Valid Usage
offset
must be less than the size ofaabbData
offset
must be a multiple of8
stride
must be a multiple of8
Valid Usage (Implicit)
sType
must beSTRUCTURE_TYPE_GEOMETRY_AABB_NV
pNext
must beNULL
- If
aabbData
is notNULL_HANDLE
,aabbData
must be a validBuffer
handle
See Also
GeometryAABBNV | |
|
Instances
data GeometryDataNV Source #
VkGeometryDataNV - Structure specifying geometry in a bottom-level acceleration structure
Valid Usage (Implicit)
See Also
GeometryDataNV | |
|
Instances
Show GeometryDataNV Source # | |
Defined in Vulkan.Extensions.VK_NV_ray_tracing showsPrec :: Int -> GeometryDataNV -> ShowS # show :: GeometryDataNV -> String # showList :: [GeometryDataNV] -> ShowS # | |
FromCStruct GeometryDataNV Source # | |
Defined in Vulkan.Extensions.VK_NV_ray_tracing | |
ToCStruct GeometryDataNV Source # | |
Defined in Vulkan.Extensions.VK_NV_ray_tracing withCStruct :: GeometryDataNV -> (Ptr GeometryDataNV -> IO b) -> IO b Source # pokeCStruct :: Ptr GeometryDataNV -> GeometryDataNV -> IO b -> IO b Source # withZeroCStruct :: (Ptr GeometryDataNV -> IO b) -> IO b Source # pokeZeroCStruct :: Ptr GeometryDataNV -> IO b -> IO b Source # cStructSize :: Int Source # | |
Zero GeometryDataNV Source # | |
Defined in Vulkan.Extensions.VK_NV_ray_tracing |
data GeometryNV Source #
VkGeometryNV - Structure specifying a geometry in a bottom-level acceleration structure
Valid Usage (Implicit)
See Also
AccelerationStructureInfoNV
, GeometryDataNV
,
GeometryFlagsKHR
,
GeometryTypeKHR
,
StructureType
GeometryNV | |
|
Instances
Show GeometryNV Source # | |
Defined in Vulkan.Extensions.VK_NV_ray_tracing showsPrec :: Int -> GeometryNV -> ShowS # show :: GeometryNV -> String # showList :: [GeometryNV] -> ShowS # | |
FromCStruct GeometryNV Source # | |
Defined in Vulkan.Extensions.VK_NV_ray_tracing peekCStruct :: Ptr GeometryNV -> IO GeometryNV Source # | |
ToCStruct GeometryNV Source # | |
Defined in Vulkan.Extensions.VK_NV_ray_tracing withCStruct :: GeometryNV -> (Ptr GeometryNV -> IO b) -> IO b Source # pokeCStruct :: Ptr GeometryNV -> GeometryNV -> IO b -> IO b Source # withZeroCStruct :: (Ptr GeometryNV -> IO b) -> IO b Source # pokeZeroCStruct :: Ptr GeometryNV -> IO b -> IO b Source # cStructSize :: Int Source # | |
Zero GeometryNV Source # | |
Defined in Vulkan.Extensions.VK_NV_ray_tracing zero :: GeometryNV Source # |
data AccelerationStructureInfoNV Source #
VkAccelerationStructureInfoNV - Structure specifying the parameters of acceleration structure object
Description
AccelerationStructureInfoNV
contains information that is used both for
acceleration structure creation with createAccelerationStructureNV
and
in combination with the actual geometric data to build the acceleration
structure with cmdBuildAccelerationStructureNV
.
Valid Usage
geometryCount
must be less than or equal toPhysicalDeviceRayTracingPropertiesNV
::maxGeometryCount
instanceCount
must be less than or equal toPhysicalDeviceRayTracingPropertiesNV
::maxInstanceCount
- The total number of triangles in all geometries must be less than
or equal to
PhysicalDeviceRayTracingPropertiesNV
::maxTriangleCount
- If
type
isACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV
thengeometryCount
must be0
- If
type
isACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV
theninstanceCount
must be0
- If
type
isACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV
then thegeometryType
member of each geometry inpGeometries
must be the same flags
must be a valid combination ofBuildAccelerationStructureFlagBitsNV
values- If
flags
has theBUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV
bit set, then it must not have theBUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV
bit set scratch
must have been created withBUFFER_USAGE_RAY_TRACING_BIT_NV
usage flag- If
instanceData
is notNULL_HANDLE
,instanceData
must have been created withBUFFER_USAGE_RAY_TRACING_BIT_NV
usage flag
Valid Usage (Implicit)
sType
must beSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV
pNext
must beNULL
type
must be a validAccelerationStructureTypeNV
valueflags
must be0
- If
geometryCount
is not0
,pGeometries
must be a valid pointer to an array ofgeometryCount
validGeometryNV
structures
See Also
AccelerationStructureCreateInfoNV
, AccelerationStructureTypeNV
,
BuildAccelerationStructureFlagsNV
, GeometryNV
,
StructureType
,
cmdBuildAccelerationStructureNV
AccelerationStructureInfoNV | |
|
Instances
Show AccelerationStructureInfoNV Source # | |
Defined in Vulkan.Extensions.VK_NV_ray_tracing showsPrec :: Int -> AccelerationStructureInfoNV -> ShowS # show :: AccelerationStructureInfoNV -> String # showList :: [AccelerationStructureInfoNV] -> ShowS # | |
FromCStruct AccelerationStructureInfoNV Source # | |
ToCStruct AccelerationStructureInfoNV Source # | |
Defined in Vulkan.Extensions.VK_NV_ray_tracing withCStruct :: AccelerationStructureInfoNV -> (Ptr AccelerationStructureInfoNV -> IO b) -> IO b Source # pokeCStruct :: Ptr AccelerationStructureInfoNV -> AccelerationStructureInfoNV -> IO b -> IO b Source # withZeroCStruct :: (Ptr AccelerationStructureInfoNV -> IO b) -> IO b Source # pokeZeroCStruct :: Ptr AccelerationStructureInfoNV -> IO b -> IO b Source # cStructSize :: Int Source # | |
Zero AccelerationStructureInfoNV Source # | |
data AccelerationStructureCreateInfoNV Source #
VkAccelerationStructureCreateInfoNV - Structure specifying the parameters of a newly created acceleration structure object
Valid Usage
- If
compactedSize
is not0
then bothinfo.geometryCount
andinfo.instanceCount
must be0
Valid Usage (Implicit)
sType
must beSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV
pNext
must beNULL
info
must be a validAccelerationStructureInfoNV
structure
See Also
AccelerationStructureInfoNV
, DeviceSize
,
StructureType
,
createAccelerationStructureNV
AccelerationStructureCreateInfoNV | |
|
Instances
data AccelerationStructureMemoryRequirementsInfoNV Source #
VkAccelerationStructureMemoryRequirementsInfoNV - Structure specifying acceleration to query for memory requirements
Valid Usage (Implicit)
See Also
AccelerationStructureMemoryRequirementsTypeNV
,
AccelerationStructureNV
,
StructureType
,
getAccelerationStructureMemoryRequirementsNV
AccelerationStructureMemoryRequirementsInfoNV | |
|
Instances
data PhysicalDeviceRayTracingPropertiesNV Source #
VkPhysicalDeviceRayTracingPropertiesNV - Properties of the physical device for ray tracing
Description
If the PhysicalDeviceRayTracingPropertiesNV
structure is included in
the pNext
chain of
PhysicalDeviceProperties2
,
it is filled with the implementation-dependent limits.
Limits specified by this structure must match those specified with the
same name in
PhysicalDeviceRayTracingPropertiesKHR
.
Valid Usage (Implicit)
See Also
PhysicalDeviceRayTracingPropertiesNV | |
|
Instances
type GeometryFlagsNV = GeometryFlagsKHR Source #
type GeometryTypeNV = GeometryTypeKHR Source #
type AccelerationStructureMemoryRequirementsTypeNV = AccelerationStructureMemoryRequirementsTypeKHR Source #
type WriteDescriptorSetAccelerationStructureNV = WriteDescriptorSetAccelerationStructureKHR Source #
type AabbPositionsNV = AabbPositionsKHR Source #
type NV_RAY_TRACING_SPEC_VERSION = 3 Source #
pattern NV_RAY_TRACING_SPEC_VERSION :: forall a. Integral a => a Source #
type NV_RAY_TRACING_EXTENSION_NAME = "VK_NV_ray_tracing" Source #
pattern NV_RAY_TRACING_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a Source #
newtype AccelerationStructureKHR Source #
VkAccelerationStructureKHR - Opaque handle to an acceleration structure object
See Also
AccelerationStructureBuildGeometryInfoKHR
,
AccelerationStructureDeviceAddressInfoKHR
,
AccelerationStructureMemoryRequirementsInfoKHR
,
BindAccelerationStructureMemoryInfoKHR
,
CopyAccelerationStructureInfoKHR
,
CopyAccelerationStructureToMemoryInfoKHR
,
CopyMemoryToAccelerationStructureInfoKHR
,
WriteDescriptorSetAccelerationStructureKHR
,
cmdBuildAccelerationStructureNV
,
cmdCopyAccelerationStructureNV
,
cmdWriteAccelerationStructuresPropertiesKHR
,
cmdWriteAccelerationStructuresPropertiesNV
,
createAccelerationStructureKHR
,
destroyAccelerationStructureKHR
,
destroyAccelerationStructureNV
,
getAccelerationStructureHandleNV
,
writeAccelerationStructuresPropertiesKHR
Instances
data BindAccelerationStructureMemoryInfoKHR Source #
VkBindAccelerationStructureMemoryInfoKHR - Structure specifying acceleration structure memory binding
Valid Usage
accelerationStructure
must not already be backed by a memory object
memoryOffset
must be less than the size ofmemory
memory
must have been allocated using one of the memory types allowed in thememoryTypeBits
member of theMemoryRequirements
structure returned from a call togetAccelerationStructureMemoryRequirementsKHR
withaccelerationStructure
andtype
ofACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_KHR
memoryOffset
must be an integer multiple of thealignment
member of theMemoryRequirements
structure returned from a call togetAccelerationStructureMemoryRequirementsKHR
withaccelerationStructure
andtype
ofACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_KHR
- The
size
member of theMemoryRequirements
structure returned from a call togetAccelerationStructureMemoryRequirementsKHR
withaccelerationStructure
andtype
ofACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_KHR
must be less than or equal to the size ofmemory
minusmemoryOffset
Valid Usage (Implicit)
pNext
must beNULL
accelerationStructure
must be a validAccelerationStructureKHR
handlememory
must be a validDeviceMemory
handle- If
deviceIndexCount
is not0
,pDeviceIndices
must be a valid pointer to an array ofdeviceIndexCount
uint32_t
values - Both of
accelerationStructure
, andmemory
must have been created, allocated, or retrieved from the sameDevice
See Also
AccelerationStructureKHR
,
DeviceMemory
,
DeviceSize
,
StructureType
,
bindAccelerationStructureMemoryKHR
,
bindAccelerationStructureMemoryNV
BindAccelerationStructureMemoryInfoKHR | |
|
Instances
data WriteDescriptorSetAccelerationStructureKHR Source #
VkWriteDescriptorSetAccelerationStructureKHR - Structure specifying acceleration structure descriptor info
Valid Usage
accelerationStructureCount
must be equal todescriptorCount
in the extended structure
- Each acceleration structure in
pAccelerationStructures
must have been created withACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR
Valid Usage (Implicit)
pAccelerationStructures
must be a valid pointer to an array ofaccelerationStructureCount
validAccelerationStructureKHR
handlesaccelerationStructureCount
must be greater than0
See Also
WriteDescriptorSetAccelerationStructureKHR | |
|
Instances
data AabbPositionsKHR Source #
VkAabbPositionsKHR - Structure specifying two opposing corners of an axis-aligned bounding box
Valid Usage
See Also
No cross-references are available
AabbPositionsKHR | |
|
Instances
data TransformMatrixKHR Source #
VkTransformMatrixKHR - Structure specifying a 3x4 affine transformation matrix
See Also
Instances
data AccelerationStructureInstanceKHR Source #
VkAccelerationStructureInstanceKHR - Structure specifying a single acceleration structure instance for building into an acceleration structure geometry
Description
The C language spec does not define the ordering of bit-fields, but in practice, this struct produces the correct layout with existing compilers. The intended bit pattern is for the following:
If a compiler produces code that diverges from that pattern, applications must employ another method to set values according to the correct bit pattern.
Valid Usage (Implicit)
See Also
AccelerationStructureInstanceKHR | |
|
Instances
destroyAccelerationStructureKHR :: forall io. MonadIO io => Device -> AccelerationStructureKHR -> ("allocator" ::: Maybe AllocationCallbacks) -> io () Source #
vkDestroyAccelerationStructureKHR - Destroy an acceleration structure object
Parameters
device
is the logical device that destroys the buffer.
accelerationStructure
is the acceleration structure to destroy.pAllocator
controls host memory allocation as described in the Memory Allocation chapter.
Valid Usage
- All submitted commands that refer to
accelerationStructure
must have completed execution
- If
AllocationCallbacks
were provided whenaccelerationStructure
was created, a compatible set of callbacks must be provided here - If no
AllocationCallbacks
were provided whenaccelerationStructure
was created,pAllocator
must beNULL
Valid Usage (Implicit)
device
must be a validDevice
handle
- If
accelerationStructure
is notNULL_HANDLE
,accelerationStructure
must be a validAccelerationStructureKHR
handle - If
pAllocator
is notNULL
,pAllocator
must be a valid pointer to a validAllocationCallbacks
structure - If
accelerationStructure
is a valid handle, it must have been created, allocated, or retrieved fromdevice
Host Synchronization
- Host access to
accelerationStructure
must be externally synchronized
See Also
bindAccelerationStructureMemoryKHR :: forall io. MonadIO io => Device -> ("bindInfos" ::: Vector BindAccelerationStructureMemoryInfoKHR) -> io () Source #
vkBindAccelerationStructureMemoryKHR - Bind acceleration structure memory
Parameters
device
is the logical device that owns the acceleration structures and memory.
bindInfoCount
is the number of elements inpBindInfos
.pBindInfos
is a pointer to an array ofBindAccelerationStructureMemoryInfoKHR
structures describing acceleration structures and memory to bind.
Return Codes
See Also
cmdWriteAccelerationStructuresPropertiesKHR :: forall io. MonadIO io => CommandBuffer -> ("accelerationStructures" ::: Vector AccelerationStructureKHR) -> QueryType -> QueryPool -> ("firstQuery" ::: Word32) -> io () Source #
vkCmdWriteAccelerationStructuresPropertiesKHR - Write acceleration structure result parameters to query results.
Parameters
commandBuffer
is the command buffer into which the command will be recorded.
accelerationStructureCount
is the count of acceleration structures for which to query the property.pAccelerationStructures
is a pointer to an array of existing previously built acceleration structures.queryType
is aQueryType
value specifying the type of queries managed by the pool.queryPool
is the query pool that will manage the results of the query.firstQuery
is the first query index within the query pool that will contain theaccelerationStructureCount
number of results.
Valid Usage
queryPool
must have been created with aqueryType
matchingqueryType
- The queries identified by
queryPool
andfirstQuery
must be unavailable - All acceleration structures in
accelerationStructures
must have been built withBUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR
ifqueryType
isQUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR
queryType
must beQUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR
orQUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR
Valid Usage (Implicit)
commandBuffer
must be a validCommandBuffer
handle
pAccelerationStructures
must be a valid pointer to an array ofaccelerationStructureCount
validAccelerationStructureKHR
handlesqueryType
must be a validQueryType
valuequeryPool
must be a validQueryPool
handlecommandBuffer
must be in the recording state- The
CommandPool
thatcommandBuffer
was allocated from must support compute operations - This command must only be called outside of a render pass instance
accelerationStructureCount
must be greater than0
- Each of
commandBuffer
,queryPool
, and the elements ofpAccelerationStructures
must have been created, allocated, or retrieved from the sameDevice
Host Synchronization
- Host access to the
CommandPool
thatcommandBuffer
was allocated from must be externally synchronized
Command Properties
'
Command Buffer Levels | Render Pass Scope | Supported Queue Types | Pipeline Type |
---|---|---|---|
Primary Secondary | Outside | Compute |
See Also
AccelerationStructureKHR
,
CommandBuffer
,
QueryPool
,
QueryType
getRayTracingShaderGroupHandlesKHR :: forall io. MonadIO io => Device -> Pipeline -> ("firstGroup" ::: Word32) -> ("groupCount" ::: Word32) -> ("dataSize" ::: Word64) -> ("data" ::: Ptr ()) -> io () Source #
vkGetRayTracingShaderGroupHandlesKHR - Query ray tracing pipeline shader group handles
Parameters
device
is the logical device containing the ray tracing pipeline.
pipeline
is the ray tracing pipeline object containing the shaders.firstGroup
is the index of the first group to retrieve a handle for from theRayTracingPipelineCreateInfoKHR
::pGroups
orRayTracingPipelineCreateInfoNV
::pGroups
array.groupCount
is the number of shader handles to retrieve.dataSize
is the size in bytes of the buffer pointed to bypData
.pData
is a pointer to a user-allocated buffer where the results will be written.
Valid Usage
- The sum of
firstGroup
andgroupCount
must be less than the number of shader groups inpipeline
dataSize
must be at leastPhysicalDeviceRayTracingPropertiesKHR
::shaderGroupHandleSize
×groupCount
pipeline
must have not been created withPIPELINE_CREATE_LIBRARY_BIT_KHR
Valid Usage (Implicit)
device
must be a validDevice
handle
pipeline
must be a validPipeline
handlepData
must be a valid pointer to an array ofdataSize
bytesdataSize
must be greater than0
pipeline
must have been created, allocated, or retrieved fromdevice
Return Codes
See Also
newtype DebugReportObjectTypeEXT Source #
VkDebugReportObjectTypeEXT - Specify the type of an object handle
Description
'
DebugReportObjectTypeEXT
and Vulkan Handle Relationship
Note
The primary expected use of
ERROR_VALIDATION_FAILED_EXT
is for
validation layer testing. It is not expected that an application would
see this error code during normal use of the validation layers.
See Also
DebugMarkerObjectNameInfoEXT
,
DebugMarkerObjectTagInfoEXT
,
debugReportMessageEXT
Instances
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
pattern GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR :: GeometryInstanceFlagBitsKHR |
|
pattern GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR :: GeometryInstanceFlagBitsKHR |
|
pattern GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR :: GeometryInstanceFlagBitsKHR |
|
pattern GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR :: GeometryInstanceFlagBitsKHR |
|
Instances
newtype GeometryFlagBitsKHR Source #
VkGeometryFlagBitsKHR - Bitmask specifying additional parameters for a geometry
See Also
pattern GEOMETRY_OPAQUE_BIT_KHR :: GeometryFlagBitsKHR |
|
pattern GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR :: GeometryFlagBitsKHR |
|
Instances
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
Instances
newtype CopyAccelerationStructureModeKHR Source #
VkCopyAccelerationStructureModeKHR - Acceleration structure copy mode
See Also
CopyAccelerationStructureInfoKHR
,
CopyAccelerationStructureToMemoryInfoKHR
,
CopyMemoryToAccelerationStructureInfoKHR
,
cmdCopyAccelerationStructureNV
pattern COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR :: CopyAccelerationStructureModeKHR |
|
pattern COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR :: CopyAccelerationStructureModeKHR |
|
pattern COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR :: CopyAccelerationStructureModeKHR |
|
pattern COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR :: CopyAccelerationStructureModeKHR |
|
Instances
newtype AccelerationStructureTypeKHR Source #
VkAccelerationStructureTypeKHR - Type of acceleration structure
See Also
AccelerationStructureBuildGeometryInfoKHR
,
AccelerationStructureCreateInfoKHR
pattern ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR :: AccelerationStructureTypeKHR |
|
pattern ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR :: AccelerationStructureTypeKHR |
|
Instances
newtype GeometryTypeKHR Source #
VkGeometryTypeKHR - Enum specifying which type of geometry is provided
See Also
AccelerationStructureCreateGeometryTypeInfoKHR
,
AccelerationStructureGeometryKHR
,
GeometryNV
pattern GEOMETRY_TYPE_TRIANGLES_KHR :: GeometryTypeKHR |
|
pattern GEOMETRY_TYPE_AABBS_KHR :: GeometryTypeKHR |
|
pattern GEOMETRY_TYPE_INSTANCES_KHR :: GeometryTypeKHR |
|
Instances
newtype AccelerationStructureMemoryRequirementsTypeKHR Source #
VkAccelerationStructureMemoryRequirementsTypeKHR - Acceleration structure memory requirement type
See Also
pattern ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_KHR :: AccelerationStructureMemoryRequirementsTypeKHR |
|
pattern ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_KHR :: AccelerationStructureMemoryRequirementsTypeKHR |
|
pattern ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_KHR :: AccelerationStructureMemoryRequirementsTypeKHR |
|
Instances
newtype RayTracingShaderGroupTypeKHR Source #
VkRayTracingShaderGroupTypeKHR - Shader group types
Description
Note
For current group types, the hit group type could be inferred from the presence or absence of the intersection shader, but we provide the type explicitly for future hit groups that do not have that property.
See Also
RayTracingShaderGroupCreateInfoKHR
,
RayTracingShaderGroupCreateInfoNV
pattern RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR :: RayTracingShaderGroupTypeKHR |
|
pattern RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR :: RayTracingShaderGroupTypeKHR |
|
pattern RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR :: RayTracingShaderGroupTypeKHR |
|
Instances
type SHADER_UNUSED_KHR = 4294967295 Source #
pattern SHADER_UNUSED_KHR :: Word32 Source #