| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Vulkan.Extensions.VK_NV_ray_tracing
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 MemoryRequirements2KHR = MemoryRequirements2
- type SHADER_UNUSED_KHR = 4294967295
- pattern SHADER_UNUSED_KHR :: Word32
Documentation
Arguments
| :: forall io. MonadIO io | |
| => Device |
|
| -> Pipeline |
|
| -> ("shader" ::: Word32) |
|
| -> io () |
vkCompileDeferredNV - Deferred compilation of shaders
Return Codes
See Also
createAccelerationStructureNV Source #
Arguments
| :: forall io. MonadIO io | |
| => Device |
|
| -> AccelerationStructureCreateInfoNV |
|
| -> ("allocator" ::: Maybe AllocationCallbacks) |
|
| -> io AccelerationStructureNV |
vkCreateAccelerationStructureNV - 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” 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)
devicemust be a validDevicehandle
pCreateInfomust be a valid pointer to a validAccelerationStructureCreateInfoNVstructure- If
pAllocatoris notNULL,pAllocatormust be a valid pointer to a validAllocationCallbacksstructure pAccelerationStructuremust be a valid pointer to aAccelerationStructureNVhandle
Return Codes
See Also
AccelerationStructureCreateInfoNV, AccelerationStructureNV,
AllocationCallbacks,
Device
getAccelerationStructureMemoryRequirementsNV Source #
Arguments
| :: forall a io. (Extendss MemoryRequirements2KHR a, PokeChain a, PeekChain a, MonadIO io) | |
| => Device |
|
| -> AccelerationStructureMemoryRequirementsInfoNV |
|
| -> io (MemoryRequirements2KHR a) |
vkGetAccelerationStructureMemoryRequirementsNV - Get acceleration structure memory requirements
Valid Usage (Implicit)
See Also
AccelerationStructureMemoryRequirementsInfoNV,
Device,
MemoryRequirements2KHR
cmdCopyAccelerationStructureNV Source #
Arguments
| :: forall io. MonadIO io | |
| => CommandBuffer |
|
| -> ("dst" ::: AccelerationStructureKHR) |
|
| -> ("src" ::: AccelerationStructureKHR) |
|
| -> CopyAccelerationStructureModeKHR |
|
| -> io () |
vkCmdCopyAccelerationStructureNV - Copy an acceleration structure
Valid Usage
modemust beCOPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHRorCOPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR
srcmust have been built withBUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHRifmodeisCOPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR
Valid Usage (Implicit)
commandBuffermust be a validCommandBufferhandle
dstmust be a validAccelerationStructureKHRhandlesrcmust be a validAccelerationStructureKHRhandlemodemust be a validCopyAccelerationStructureModeKHRvaluecommandBuffermust be in the recording state- The
CommandPoolthatcommandBufferwas allocated from must support compute operations - This command must only be called outside of a render pass instance
- Each of
commandBuffer,dst, andsrcmust have been created, allocated, or retrieved from the sameDevice
Host Synchronization
- Host access to
commandBuffermust be externally synchronized
- Host access to the
CommandPoolthatcommandBufferwas 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 Source #
Arguments
| :: forall io. MonadIO io | |
| => CommandBuffer |
|
| -> AccelerationStructureInfoNV |
|
| -> ("instanceData" ::: Buffer) |
|
| -> ("instanceOffset" ::: DeviceSize) |
|
| -> ("update" ::: Bool) |
|
| -> ("dst" ::: AccelerationStructureKHR) |
|
| -> ("src" ::: AccelerationStructureKHR) |
|
| -> ("scratch" ::: Buffer) |
|
| -> ("scratchOffset" ::: DeviceSize) |
|
| -> io () |
vkCmdBuildAccelerationStructureNV - Build an acceleration structure
Description
Accesses to scratch 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.
Valid Usage
geometryCountmust be less than or equal toPhysicalDeviceRayTracingPropertiesNV::maxGeometryCount
dstmust have been created with compatibleAccelerationStructureInfoNVwhereAccelerationStructureInfoNV::typeandAccelerationStructureInfoNV::flagsare identical,AccelerationStructureInfoNV::instanceCountandAccelerationStructureInfoNV::geometryCountfordstare greater than or equal to the build size and each geometry inAccelerationStructureInfoNV::pGeometriesfordsthas greater than or equal to the number of vertices, indices, and AABBs- If
updateisTRUE,srcmust not beNULL_HANDLE - If
updateisTRUE,srcmust have been built before withBUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NVset inAccelerationStructureInfoNV::flags - If
updateisFALSE, thesizemember of theMemoryRequirementsstructure returned from a call togetAccelerationStructureMemoryRequirementsNVwithAccelerationStructureMemoryRequirementsInfoNV::accelerationStructureset todstandAccelerationStructureMemoryRequirementsInfoNV::typeset toACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NVmust be less than or equal to the size ofscratchminusscratchOffset - If
updateisTRUE, thesizemember of theMemoryRequirementsstructure returned from a call togetAccelerationStructureMemoryRequirementsNVwithAccelerationStructureMemoryRequirementsInfoNV::accelerationStructureset todstandAccelerationStructureMemoryRequirementsInfoNV::typeset toACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NVmust be less than or equal to the size ofscratchminusscratchOffset scratchmust have been created withBUFFER_USAGE_RAY_TRACING_BIT_NVusage flag- If
instanceDatais notNULL_HANDLE,instanceDatamust have been created withBUFFER_USAGE_RAY_TRACING_BIT_NVusage flag - If
updateisTRUE, 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
updateisTRUE, 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
updateisTRUE, thesrcanddstobjects must either be the same object or not have any memory aliasing
Valid Usage (Implicit)
commandBuffermust be a validCommandBufferhandle
pInfomust be a valid pointer to a validAccelerationStructureInfoNVstructure- If
instanceDatais notNULL_HANDLE,instanceDatamust be a validBufferhandle dstmust be a validAccelerationStructureKHRhandle- If
srcis notNULL_HANDLE,srcmust be a validAccelerationStructureKHRhandle scratchmust be a validBufferhandlecommandBuffermust be in the recording state- The
CommandPoolthatcommandBufferwas allocated from must support compute operations - This command must only be called outside of a render pass instance
- Each of
commandBuffer,dst,instanceData,scratch, andsrcthat are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the sameDevice
Host Synchronization
- Host access to
commandBuffermust be externally synchronized
- Host access to the
CommandPoolthatcommandBufferwas 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
Arguments
| :: 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 () |
vkCmdTraceRaysNV - Initialize a ray tracing dispatch
Description
When the command is executed, a ray generation group of width ×
height × depth rays is assembled.
Valid Usage
- If a
ImageViewis sampled withFILTER_LINEARas a result of this command, then the image view’s format features must containFORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
- If a
ImageViewis 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
ImageViewis sampled withFILTER_CUBIC_EXTas a result of this command, then the image view’s format features must containFORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT - Any
ImageViewbeing sampled withFILTER_CUBIC_EXTas a result of this command must have aImageViewTypeand format that supports cubic filtering, as specified byFilterCubicImageViewImageFormatPropertiesEXT::filterCubicreturned bygetPhysicalDeviceImageFormatProperties2 - Any
ImageViewbeing sampled withFILTER_CUBIC_EXTwith a reduction mode of eitherSAMPLER_REDUCTION_MODE_MINorSAMPLER_REDUCTION_MODE_MAXas a result of this command must have aImageViewTypeand format that supports cubic filtering together with minmax filtering, as specified byFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmaxreturned bygetPhysicalDeviceImageFormatProperties2 - Any
Imagecreated with aImageCreateInfo::flagscontainingIMAGE_CREATE_CORNER_SAMPLED_BIT_NVsampled as a result of this command must only be sampled using aSamplerAddressModeofSAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE - For each set n that is statically used by the
Pipelinebound 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 aPipelineLayoutthat is compatible for set n, with thePipelineLayoutused to create the currentPipeline, as described in ??? - For each push constant that is statically used by the
Pipelinebound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with aPipelineLayoutthat is compatible for push constants, with thePipelineLayoutused 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 thePipelinebound 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
Pipelineobject 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
Pipelineobject bound to the pipeline bind point used by this command, since that pipeline was bound - If the
Pipelineobject bound to the pipeline bind point used by this command accesses aSamplerobject that uses unnormalized coordinates, that sampler must not be used to sample from anyImagewith aImageViewof the typeIMAGE_VIEW_TYPE_3D,IMAGE_VIEW_TYPE_CUBE,IMAGE_VIEW_TYPE_1D_ARRAY,IMAGE_VIEW_TYPE_2D_ARRAYorIMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage - If the
Pipelineobject bound to the pipeline bind point used by this command accesses aSamplerobject that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-VOpImageSample*orOpImageSparseSample*instructions withImplicitLod,DreforProjin their name, in any shader stage - If the
Pipelineobject bound to the pipeline bind point used by this command accesses aSamplerobject 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
Pipelineobject 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
Pipelineobject 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
commandBufferis an unprotected command buffer, any resource accessed by thePipelineobject bound to the pipeline bind point used by this command must not be a protected resource - If a
ImageViewis accessed usingOpImageWriteas a result of this command, then theTypeof theTexeloperand of that instruction must have at least as many components as the image view’s format. - 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
maxRecursionDepthused to create the bound ray tracing pipeline - If
commandBufferis a protected command buffer, any resource written to by thePipelineobject bound to the pipeline bind point used by this command must not be an unprotected resource - If
commandBufferis a protected command buffer, pipeline stages other than the framebuffer-space and compute stages in thePipelineobject bound to the pipeline bind point must not write to any resource - If
raygenShaderBindingTableBufferis non-sparse then it must be bound completely and contiguously to a singleDeviceMemoryobject raygenShaderBindingOffsetmust be less than the size ofraygenShaderBindingTableBufferraygenShaderBindingOffsetmust be a multiple ofPhysicalDeviceRayTracingPropertiesNV::shaderGroupBaseAlignment- If
missShaderBindingTableBufferis non-sparse then it must be bound completely and contiguously to a singleDeviceMemoryobject missShaderBindingOffsetmust be less than the size ofmissShaderBindingTableBuffermissShaderBindingOffsetmust be a multiple ofPhysicalDeviceRayTracingPropertiesNV::shaderGroupBaseAlignment- If
hitShaderBindingTableBufferis non-sparse then it must be bound completely and contiguously to a singleDeviceMemoryobject hitShaderBindingOffsetmust be less than the size ofhitShaderBindingTableBufferhitShaderBindingOffsetmust be a multiple ofPhysicalDeviceRayTracingPropertiesNV::shaderGroupBaseAlignment- If
callableShaderBindingTableBufferis non-sparse then it must be bound completely and contiguously to a singleDeviceMemoryobject callableShaderBindingOffsetmust be less than the size ofcallableShaderBindingTableBuffercallableShaderBindingOffsetmust be a multiple ofPhysicalDeviceRayTracingPropertiesNV::shaderGroupBaseAlignmentmissShaderBindingStridemust be a multiple ofPhysicalDeviceRayTracingPropertiesNV::shaderGroupHandleSizehitShaderBindingStridemust be a multiple ofPhysicalDeviceRayTracingPropertiesNV::shaderGroupHandleSizecallableShaderBindingStridemust be a multiple ofPhysicalDeviceRayTracingPropertiesNV::shaderGroupHandleSizemissShaderBindingStridemust be less than or equal toPhysicalDeviceRayTracingPropertiesNV::maxShaderGroupStridehitShaderBindingStridemust be less than or equal toPhysicalDeviceRayTracingPropertiesNV::maxShaderGroupStridecallableShaderBindingStridemust be less than or equal toPhysicalDeviceRayTracingPropertiesNV::maxShaderGroupStridewidthmust be less than or equal toPhysicalDeviceLimits::maxComputeWorkGroupCount[0]heightmust be less than or equal toPhysicalDeviceLimits::maxComputeWorkGroupCount[1]depthmust be less than or equal toPhysicalDeviceLimits::maxComputeWorkGroupCount[2]
Valid Usage (Implicit)
commandBuffermust be a validCommandBufferhandle
raygenShaderBindingTableBuffermust be a validBufferhandle- If
missShaderBindingTableBufferis notNULL_HANDLE,missShaderBindingTableBuffermust be a validBufferhandle - If
hitShaderBindingTableBufferis notNULL_HANDLE,hitShaderBindingTableBuffermust be a validBufferhandle - If
callableShaderBindingTableBufferis notNULL_HANDLE,callableShaderBindingTableBuffermust be a validBufferhandle commandBuffermust be in the recording state- The
CommandPoolthatcommandBufferwas allocated from must support compute operations - This command must only be called outside of a render pass instance
- Each of
callableShaderBindingTableBuffer,commandBuffer,hitShaderBindingTableBuffer,missShaderBindingTableBuffer, andraygenShaderBindingTableBufferthat are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the sameDevice
Host Synchronization
- Host access to
commandBuffermust be externally synchronized
- Host access to the
CommandPoolthatcommandBufferwas 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 Source #
Arguments
| :: forall io. MonadIO io | |
| => Device |
|
| -> AccelerationStructureKHR |
|
| -> ("dataSize" ::: Word64) |
|
| -> ("data" ::: Ptr ()) |
|
| -> io () |
vkGetAccelerationStructureHandleNV - Get opaque acceleration structure handle
Return Codes
See Also
createRayTracingPipelinesNV Source #
Arguments
| :: forall io. MonadIO io | |
| => Device |
|
| -> PipelineCache |
|
| -> ("createInfos" ::: Vector (SomeStruct RayTracingPipelineCreateInfoNV)) |
|
| -> ("allocator" ::: Maybe AllocationCallbacks) |
|
| -> io (Result, "pipelines" ::: Vector Pipeline) |
vkCreateRayTracingPipelinesNV - Creates a new ray tracing pipeline object
Valid Usage
- If the
flagsmember of any element ofpCreateInfoscontains thePIPELINE_CREATE_DERIVATIVE_BITflag, and thebasePipelineIndexmember of that same element is not-1,basePipelineIndexmust be less than the index intopCreateInfosthat corresponds to that element
- If the
flagsmember of any element ofpCreateInfoscontains thePIPELINE_CREATE_DERIVATIVE_BITflag, the base pipeline must have been created with thePIPELINE_CREATE_ALLOW_DERIVATIVES_BITflag set - If
pipelineCachewas created withPIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT, host access topipelineCachemust be externally synchronized
Valid Usage (Implicit)
devicemust be a validDevicehandle
- If
pipelineCacheis notNULL_HANDLE,pipelineCachemust be a validPipelineCachehandle pCreateInfosmust be a valid pointer to an array ofcreateInfoCountvalidRayTracingPipelineCreateInfoNVstructures- If
pAllocatoris notNULL,pAllocatormust be a valid pointer to a validAllocationCallbacksstructure pPipelinesmust be a valid pointer to an array ofcreateInfoCountPipelinehandlescreateInfoCountmust be greater than0- If
pipelineCacheis 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
typeisRAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NVthengeneralShadermust be a valid index intoRayTracingPipelineCreateInfoNV::pStagesreferring to a shader ofSHADER_STAGE_RAYGEN_BIT_NV,SHADER_STAGE_MISS_BIT_NV, orSHADER_STAGE_CALLABLE_BIT_NV
- If
typeisRAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NVthenclosestHitShader,anyHitShader, andintersectionShadermust beSHADER_UNUSED_NV - If
typeisRAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NVthenintersectionShadermust be a valid index intoRayTracingPipelineCreateInfoNV::pStagesreferring to a shader ofSHADER_STAGE_INTERSECTION_BIT_NV - If
typeisRAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NVthenintersectionShadermust beSHADER_UNUSED_NV closestHitShadermust be eitherSHADER_UNUSED_NVor a valid index intoRayTracingPipelineCreateInfoNV::pStagesreferring to a shader ofSHADER_STAGE_CLOSEST_HIT_BIT_NVanyHitShadermust be eitherSHADER_UNUSED_NVor a valid index intoRayTracingPipelineCreateInfoNV::pStagesreferring to a shader ofSHADER_STAGE_ANY_HIT_BIT_NV
Valid Usage (Implicit)
sTypemust beSTRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV
pNextmust beNULLtypemust be a validRayTracingShaderGroupTypeKHRvalue
See Also
RayTracingPipelineCreateInfoNV,
RayTracingShaderGroupTypeKHR,
StructureType
Constructors
| RayTracingShaderGroupCreateInfoNV | |
Fields
| |
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
flagscontains thePIPELINE_CREATE_DERIVATIVE_BITflag, andbasePipelineIndexis-1,basePipelineHandlemust be a valid handle to a ray tracingPipeline
- If
flagscontains thePIPELINE_CREATE_DERIVATIVE_BITflag, andbasePipelineHandleisNULL_HANDLE,basePipelineIndexmust be a valid index into the calling command’spCreateInfosparameter - If
flagscontains thePIPELINE_CREATE_DERIVATIVE_BITflag, andbasePipelineIndexis not-1,basePipelineHandlemust beNULL_HANDLE - If
flagscontains thePIPELINE_CREATE_DERIVATIVE_BITflag, andbasePipelineHandleis notNULL_HANDLE,basePipelineIndexmust be-1 - The
stagemember of at least one element ofpStagesmust 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 layoutmust be consistent with all shaders specified inpStages- The number of resources in
layoutaccessible to each shader stage that is used by the pipeline must be less than or equal toPhysicalDeviceLimits::maxPerStageResources flagsmust not includePIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV- If the
pipelineCreationCacheControl
feature is not enabled,
flagsmust not includePIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXTorPIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT flagsmust not includePIPELINE_CREATE_LIBRARY_BIT_KHRmaxRecursionDepthmust be less than or equal toPhysicalDeviceRayTracingPropertiesNV::maxRecursionDepthflagsmust not includePIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHRflagsmust not includePIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHRflagsmust not includePIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHRflagsmust not includePIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHRflagsmust not includePIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHRflagsmust not includePIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHRflagsmust not include bothPIPELINE_CREATE_DEFER_COMPILE_BIT_NVandPIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXTat the same time
Valid Usage (Implicit)
sTypemust beSTRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV
pNextmust beNULLor a pointer to a valid instance ofPipelineCreationFeedbackCreateInfoEXT- The
sTypevalue of each struct in thepNextchain must be unique flagsmust be a valid combination ofPipelineCreateFlagBitsvaluespStagesmust be a valid pointer to an array ofstageCountvalidPipelineShaderStageCreateInfostructurespGroupsmust be a valid pointer to an array ofgroupCountvalidRayTracingShaderGroupCreateInfoNVstructureslayoutmust be a validPipelineLayouthandlestageCountmust be greater than0groupCountmust be greater than0- Both of
basePipelineHandle, andlayoutthat 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
Constructors
| RayTracingPipelineCreateInfoNV | |
Fields
| |
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
vertexOffsetmust be less than the size ofvertexData
vertexOffsetmust be a multiple of the component size ofvertexFormatvertexFormatmust be one ofFORMAT_R32G32B32_SFLOAT,FORMAT_R32G32_SFLOAT,FORMAT_R16G16B16_SFLOAT,FORMAT_R16G16_SFLOAT,FORMAT_R16G16_SNORM, orFORMAT_R16G16B16_SNORMindexOffsetmust be less than the size ofindexDataindexOffsetmust be a multiple of the element size ofindexTypeindexTypemust beINDEX_TYPE_UINT16,INDEX_TYPE_UINT32, orINDEX_TYPE_NONE_NVindexDatamust beNULL_HANDLEifindexTypeisINDEX_TYPE_NONE_NVindexDatamust be a validBufferhandle ifindexTypeis notINDEX_TYPE_NONE_NVindexCountmust be0ifindexTypeisINDEX_TYPE_NONE_NVtransformOffsetmust be less than the size oftransformDatatransformOffsetmust be a multiple of16
Valid Usage (Implicit)
sTypemust beSTRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV
pNextmust beNULL- If
vertexDatais notNULL_HANDLE,vertexDatamust be a validBufferhandle vertexFormatmust be a validFormatvalue- If
indexDatais notNULL_HANDLE,indexDatamust be a validBufferhandle indexTypemust be a validIndexTypevalue- If
transformDatais notNULL_HANDLE,transformDatamust be a validBufferhandle - Each of
indexData,transformData, andvertexDatathat 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
Constructors
| GeometryTrianglesNV | |
Fields
| |
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
offsetmust be less than the size ofaabbData
offsetmust be a multiple of8stridemust be a multiple of8
Valid Usage (Implicit)
sTypemust beSTRUCTURE_TYPE_GEOMETRY_AABB_NV
pNextmust beNULL- If
aabbDatais notNULL_HANDLE,aabbDatamust be a validBufferhandle
See Also
Constructors
| GeometryAABBNV | |
Fields
| |
Instances
data GeometryDataNV Source #
VkGeometryDataNV - Structure specifying geometry in a bottom-level acceleration structure
Valid Usage (Implicit)
See Also
Constructors
| GeometryDataNV | |
Fields
| |
Instances
| Show GeometryDataNV Source # | |
Defined in Vulkan.Extensions.VK_NV_ray_tracing Methods showsPrec :: Int -> GeometryDataNV -> ShowS # show :: GeometryDataNV -> String # showList :: [GeometryDataNV] -> ShowS # | |
| FromCStruct GeometryDataNV Source # | |
Defined in Vulkan.Extensions.VK_NV_ray_tracing Methods peekCStruct :: Ptr GeometryDataNV -> IO GeometryDataNV Source # | |
| ToCStruct GeometryDataNV Source # | |
Defined in Vulkan.Extensions.VK_NV_ray_tracing Methods 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 Methods | |
data GeometryNV Source #
VkGeometryNV - Structure specifying a geometry in a bottom-level acceleration structure
Valid Usage (Implicit)
See Also
AccelerationStructureInfoNV, GeometryDataNV,
GeometryFlagsKHR,
GeometryTypeKHR,
StructureType
Constructors
| GeometryNV | |
Fields
| |
Instances
| Show GeometryNV Source # | |
Defined in Vulkan.Extensions.VK_NV_ray_tracing Methods showsPrec :: Int -> GeometryNV -> ShowS # show :: GeometryNV -> String # showList :: [GeometryNV] -> ShowS # | |
| FromCStruct GeometryNV Source # | |
Defined in Vulkan.Extensions.VK_NV_ray_tracing Methods peekCStruct :: Ptr GeometryNV -> IO GeometryNV Source # | |
| ToCStruct GeometryNV Source # | |
Defined in Vulkan.Extensions.VK_NV_ray_tracing Methods 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 Methods 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
geometryCountmust be less than or equal toPhysicalDeviceRayTracingPropertiesNV::maxGeometryCount
instanceCountmust 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
typeisACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NVthengeometryCountmust be0 - If
typeisACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NVtheninstanceCountmust be0 - If
typeisACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NVthen thegeometryTypemember of each geometry inpGeometriesmust be the same - If
flagshas theBUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NVbit set, then it must not have theBUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NVbit set scratchmust have been created withBUFFER_USAGE_RAY_TRACING_BIT_NVusage flag- If
instanceDatais notNULL_HANDLE,instanceDatamust have been created withBUFFER_USAGE_RAY_TRACING_BIT_NVusage flag
Valid Usage (Implicit)
sTypemust beSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV
pNextmust beNULLtypemust be a validAccelerationStructureTypeNVvalueflagsmust be a valid combination ofBuildAccelerationStructureFlagBitsNVvalues- If
geometryCountis not0,pGeometriesmust be a valid pointer to an array ofgeometryCountvalidGeometryNVstructures
See Also
AccelerationStructureCreateInfoNV, AccelerationStructureTypeNV,
BuildAccelerationStructureFlagsNV, GeometryNV,
StructureType,
cmdBuildAccelerationStructureNV
Constructors
| AccelerationStructureInfoNV | |
Fields
| |
Instances
| Show AccelerationStructureInfoNV Source # | |
Defined in Vulkan.Extensions.VK_NV_ray_tracing Methods showsPrec :: Int -> AccelerationStructureInfoNV -> ShowS # show :: AccelerationStructureInfoNV -> String # showList :: [AccelerationStructureInfoNV] -> ShowS # | |
| FromCStruct AccelerationStructureInfoNV Source # | |
Defined in Vulkan.Extensions.VK_NV_ray_tracing | |
| ToCStruct AccelerationStructureInfoNV Source # | |
Defined in Vulkan.Extensions.VK_NV_ray_tracing Methods 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 # | |
Defined in Vulkan.Extensions.VK_NV_ray_tracing Methods | |
data AccelerationStructureCreateInfoNV Source #
VkAccelerationStructureCreateInfoNV - Structure specifying the parameters of a newly created acceleration structure object
Valid Usage
- If
compactedSizeis not0then bothinfo.geometryCountandinfo.instanceCountmust be0
Valid Usage (Implicit)
sTypemust beSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV
pNextmust beNULLinfomust be a validAccelerationStructureInfoNVstructure
See Also
AccelerationStructureInfoNV,
DeviceSize,
StructureType,
createAccelerationStructureNV
Constructors
| AccelerationStructureCreateInfoNV | |
Fields
| |
Instances
| Show AccelerationStructureCreateInfoNV Source # | |
Defined in Vulkan.Extensions.VK_NV_ray_tracing Methods showsPrec :: Int -> AccelerationStructureCreateInfoNV -> ShowS # | |
| FromCStruct AccelerationStructureCreateInfoNV Source # | |
Defined in Vulkan.Extensions.VK_NV_ray_tracing | |
| ToCStruct AccelerationStructureCreateInfoNV Source # | |
Defined in Vulkan.Extensions.VK_NV_ray_tracing Methods withCStruct :: AccelerationStructureCreateInfoNV -> (Ptr AccelerationStructureCreateInfoNV -> IO b) -> IO b Source # pokeCStruct :: Ptr AccelerationStructureCreateInfoNV -> AccelerationStructureCreateInfoNV -> IO b -> IO b Source # withZeroCStruct :: (Ptr AccelerationStructureCreateInfoNV -> IO b) -> IO b Source # pokeZeroCStruct :: Ptr AccelerationStructureCreateInfoNV -> IO b -> IO b Source # cStructSize :: Int Source # | |
| Zero AccelerationStructureCreateInfoNV Source # | |
Defined in Vulkan.Extensions.VK_NV_ray_tracing Methods | |
data AccelerationStructureMemoryRequirementsInfoNV Source #
VkAccelerationStructureMemoryRequirementsInfoNV - Structure specifying acceleration to query for memory requirements
Valid Usage (Implicit)
See Also
AccelerationStructureMemoryRequirementsTypeNV,
AccelerationStructureNV,
StructureType,
getAccelerationStructureMemoryRequirementsNV
Constructors
| AccelerationStructureMemoryRequirementsInfoNV | |
Fields
| |
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
Constructors
| PhysicalDeviceRayTracingPropertiesNV | |
Fields
| |
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
Constructors
| AccelerationStructureKHR Word64 |
Instances
data BindAccelerationStructureMemoryInfoKHR Source #
VkBindAccelerationStructureMemoryInfoKHR - Structure specifying acceleration structure memory binding
Valid Usage
accelerationStructuremust not already be backed by a memory object
memoryOffsetmust be less than the size ofmemorymemorymust have been allocated using one of the memory types allowed in thememoryTypeBitsmember of theMemoryRequirementsstructure returned from a call togetAccelerationStructureMemoryRequirementsKHRwithaccelerationStructureandtypeofACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_KHRmemoryOffsetmust be an integer multiple of thealignmentmember of theMemoryRequirementsstructure returned from a call togetAccelerationStructureMemoryRequirementsKHRwithaccelerationStructureandtypeofACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_KHR- The
sizemember of theMemoryRequirementsstructure returned from a call togetAccelerationStructureMemoryRequirementsKHRwithaccelerationStructureandtypeofACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_KHRmust be less than or equal to the size ofmemoryminusmemoryOffset
Valid Usage (Implicit)
pNextmust beNULLaccelerationStructuremust be a validAccelerationStructureKHRhandlememorymust be a validDeviceMemoryhandle- If
deviceIndexCountis not0,pDeviceIndicesmust be a valid pointer to an array ofdeviceIndexCountuint32_tvalues - Both of
accelerationStructure, andmemorymust have been created, allocated, or retrieved from the sameDevice
See Also
AccelerationStructureKHR,
DeviceMemory,
DeviceSize,
StructureType,
bindAccelerationStructureMemoryKHR,
bindAccelerationStructureMemoryNV
Constructors
| BindAccelerationStructureMemoryInfoKHR | |
Fields
| |
Instances
data WriteDescriptorSetAccelerationStructureKHR Source #
VkWriteDescriptorSetAccelerationStructureKHR - Structure specifying acceleration structure descriptor info
Valid Usage
accelerationStructureCountmust be equal todescriptorCountin the extended structure
- Each acceleration structure in
pAccelerationStructuresmust have been created withACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR
Valid Usage (Implicit)
pAccelerationStructuresmust be a valid pointer to an array ofaccelerationStructureCountvalidAccelerationStructureKHRhandlesaccelerationStructureCountmust be greater than0
See Also
Constructors
| WriteDescriptorSetAccelerationStructureKHR | |
Fields
| |
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
Constructors
| AabbPositionsKHR | |
Fields
| |
Instances
data TransformMatrixKHR Source #
VkTransformMatrixKHR - Structure specifying a 3x4 affine transformation matrix
See Also
Constructors
| TransformMatrixKHR | |
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
Constructors
| AccelerationStructureInstanceKHR | |
Fields
| |
Instances
| Show AccelerationStructureInstanceKHR Source # | |
Defined in Vulkan.Extensions.VK_KHR_ray_tracing Methods showsPrec :: Int -> AccelerationStructureInstanceKHR -> ShowS # | |
| FromCStruct AccelerationStructureInstanceKHR Source # | |
Defined in Vulkan.Extensions.VK_KHR_ray_tracing | |
| ToCStruct AccelerationStructureInstanceKHR Source # | |
Defined in Vulkan.Extensions.VK_KHR_ray_tracing Methods withCStruct :: AccelerationStructureInstanceKHR -> (Ptr AccelerationStructureInstanceKHR -> IO b) -> IO b Source # pokeCStruct :: Ptr AccelerationStructureInstanceKHR -> AccelerationStructureInstanceKHR -> IO b -> IO b Source # withZeroCStruct :: (Ptr AccelerationStructureInstanceKHR -> IO b) -> IO b Source # pokeZeroCStruct :: Ptr AccelerationStructureInstanceKHR -> IO b -> IO b Source # cStructSize :: Int Source # | |
| Zero AccelerationStructureInstanceKHR Source # | |
Defined in Vulkan.Extensions.VK_KHR_ray_tracing Methods | |
destroyAccelerationStructureKHR Source #
Arguments
| :: forall io. MonadIO io | |
| => Device |
|
| -> AccelerationStructureKHR |
|
| -> ("allocator" ::: Maybe AllocationCallbacks) |
|
| -> io () |
vkDestroyAccelerationStructureKHR - Destroy an acceleration structure object
Valid Usage
- All submitted commands that refer to
accelerationStructuremust have completed execution
- If
AllocationCallbackswere provided whenaccelerationStructurewas created, a compatible set of callbacks must be provided here - If no
AllocationCallbackswere provided whenaccelerationStructurewas created,pAllocatormust beNULL
Valid Usage (Implicit)
devicemust be a validDevicehandle
- If
accelerationStructureis notNULL_HANDLE,accelerationStructuremust be a validAccelerationStructureKHRhandle - If
pAllocatoris notNULL,pAllocatormust be a valid pointer to a validAllocationCallbacksstructure - If
accelerationStructureis a valid handle, it must have been created, allocated, or retrieved fromdevice
Host Synchronization
- Host access to
accelerationStructuremust be externally synchronized
See Also
bindAccelerationStructureMemoryKHR Source #
Arguments
| :: forall io. MonadIO io | |
| => Device |
|
| -> ("bindInfos" ::: Vector BindAccelerationStructureMemoryInfoKHR) |
|
| -> io () |
vkBindAccelerationStructureMemoryKHR - Bind acceleration structure memory
Return Codes
See Also
cmdWriteAccelerationStructuresPropertiesKHR Source #
Arguments
| :: forall io. MonadIO io | |
| => CommandBuffer |
|
| -> ("accelerationStructures" ::: Vector AccelerationStructureKHR) |
|
| -> QueryType |
|
| -> QueryPool |
|
| -> ("firstQuery" ::: Word32) |
|
| -> io () |
vkCmdWriteAccelerationStructuresPropertiesKHR - Write acceleration structure result parameters to query results.
Valid Usage
queryPoolmust have been created with aqueryTypematchingqueryType
- The queries identified by
queryPoolandfirstQuerymust be unavailable - All acceleration structures in
accelerationStructuresmust have been built withBUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHRifqueryTypeisQUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR queryTypemust beQUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHRorQUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR
Valid Usage (Implicit)
commandBuffermust be a validCommandBufferhandle
pAccelerationStructuresmust be a valid pointer to an array ofaccelerationStructureCountvalidAccelerationStructureKHRhandlesqueryTypemust be a validQueryTypevaluequeryPoolmust be a validQueryPoolhandlecommandBuffermust be in the recording state- The
CommandPoolthatcommandBufferwas allocated from must support compute operations - This command must only be called outside of a render pass instance
accelerationStructureCountmust be greater than0- Each of
commandBuffer,queryPool, and the elements ofpAccelerationStructuresmust have been created, allocated, or retrieved from the sameDevice
Host Synchronization
- Host access to
commandBuffermust be externally synchronized
- Host access to the
CommandPoolthatcommandBufferwas 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 Source #
Arguments
| :: forall io. MonadIO io | |
| => Device |
|
| -> Pipeline |
|
| -> ("firstGroup" ::: Word32) |
|
| -> ("groupCount" ::: Word32) |
|
| -> ("dataSize" ::: Word64) |
|
| -> ("data" ::: Ptr ()) |
|
| -> io () |
vkGetRayTracingShaderGroupHandlesKHR - Query ray tracing pipeline shader group handles
Valid Usage
firstGroupmust be less than the number of shader groups inpipeline
- The sum of
firstGroupandgroupCountmust be less than or equal to the number of shader groups inpipeline dataSizemust be at leastPhysicalDeviceRayTracingPropertiesKHR::shaderGroupHandleSize×groupCountpipelinemust have not been created withPIPELINE_CREATE_LIBRARY_BIT_KHR
Valid Usage (Implicit)
devicemust be a validDevicehandle
pipelinemust be a validPipelinehandlepDatamust be a valid pointer to an array ofdataSizebytesdataSizemust be greater than0pipelinemust 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
Constructors
| DebugReportObjectTypeEXT Int32 |
Bundled Patterns
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
Constructors
| GeometryInstanceFlagBitsKHR Flags |
Bundled Patterns
| 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
Constructors
| GeometryFlagBitsKHR Flags |
Bundled Patterns
| 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
Constructors
| BuildAccelerationStructureFlagBitsKHR Flags |
Bundled Patterns
Instances
newtype CopyAccelerationStructureModeKHR Source #
VkCopyAccelerationStructureModeKHR - Acceleration structure copy mode
See Also
CopyAccelerationStructureInfoKHR,
CopyAccelerationStructureToMemoryInfoKHR,
CopyMemoryToAccelerationStructureInfoKHR,
cmdCopyAccelerationStructureNV
Constructors
| CopyAccelerationStructureModeKHR Int32 |
Bundled Patterns
| 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
Constructors
| AccelerationStructureTypeKHR Int32 |
Bundled Patterns
| 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
Constructors
| GeometryTypeKHR Int32 |
Bundled Patterns
| 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
Constructors
| AccelerationStructureMemoryRequirementsTypeKHR Int32 |
Bundled Patterns
| 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
Constructors
| RayTracingShaderGroupTypeKHR Int32 |
Bundled Patterns
| 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 #