vulkan-3.1.0.0: Bindings to the Vulkan graphics API.

Safe HaskellNone
LanguageHaskell2010

Graphics.Vulkan.Extensions.VK_NV_ray_tracing

Synopsis

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

Success
Failure

See Also

Device, Pipeline

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 a AccelerationStructureCreateInfoNV 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 a AccelerationStructureNV 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 valid Device handle

Return Codes

Success
Failure

See Also

AccelerationStructureCreateInfoNV, AccelerationStructureNV, AllocationCallbacks, Device

withAccelerationStructureNV :: forall r. Device -> AccelerationStructureCreateInfoNV -> Maybe AllocationCallbacks -> (AccelerationStructureNV -> IO r) -> IO r Source #

A safe wrapper for createAccelerationStructureNV and destroyAccelerationStructureNV using bracket

The allocated value must not be returned from the provided computation

destroyAccelerationStructureNV :: forall io. MonadIO io => Device -> AccelerationStructureNV -> ("allocator" ::: Maybe AllocationCallbacks) -> io () Source #

vkDestroyAccelerationStructureNV - 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 when accelerationStructure was created, a compatible set of callbacks must be provided here
  • If no AllocationCallbacks were provided when accelerationStructure was created, pAllocator must be NULL

Valid Usage (Implicit)

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

See Also

AccelerationStructureNV, AllocationCallbacks, Device

getAccelerationStructureMemoryRequirementsNV :: forall a io. (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

bindAccelerationStructureMemoryNV :: forall io. MonadIO io => Device -> ("bindInfos" ::: Vector BindAccelerationStructureMemoryInfoNV) -> io () Source #

vkBindAccelerationStructureMemoryNV - Bind acceleration structure memory

Parameters

  • device is the logical device that owns the acceleration structures and memory.

Return Codes

Success
Failure

See Also

BindAccelerationStructureMemoryInfoNV, Device

cmdCopyAccelerationStructureNV :: forall io. MonadIO io => CommandBuffer -> ("dst" ::: AccelerationStructureNV) -> ("src" ::: AccelerationStructureNV) -> CopyAccelerationStructureModeNV -> 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 a CopyAccelerationStructureModeNV value specifying additional operations to perform during the copy.

Valid Usage

Valid Usage (Implicit)

Host Synchronization

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

Command Properties

'

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

See Also

AccelerationStructureNV, CommandBuffer, CopyAccelerationStructureModeNV

cmdWriteAccelerationStructuresPropertiesNV :: forall io. MonadIO io => CommandBuffer -> ("accelerationStructures" ::: Vector AccelerationStructureNV) -> QueryType -> QueryPool -> ("firstQuery" ::: Word32) -> io () Source #

vkCmdWriteAccelerationStructuresPropertiesNV - 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 a QueryType 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 the accelerationStructureCount number of results.

Valid Usage

Valid Usage (Implicit)

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

Host Synchronization

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

Command Properties

'

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

See Also

AccelerationStructureNV, CommandBuffer, QueryPool, QueryType

cmdBuildAccelerationStructureNV :: forall io. MonadIO io => CommandBuffer -> AccelerationStructureInfoNV -> ("instanceData" ::: Buffer) -> ("instanceOffset" ::: DeviceSize) -> ("update" ::: Bool) -> ("dst" ::: AccelerationStructureNV) -> ("src" ::: AccelerationStructureNV) -> ("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 instance data that will be used to build the acceleration structure as described in Accelerator structure instances. This parameter must be NULL for bottom level acceleration structures.
  • instanceOffset is the offset in bytes (relative to the start of instanceData) at which the instance data is located.
  • update specifies whether to update the dst acceleration structure with the data in src.
  • 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 the dst acceleration structure.
  • scratch is the Buffer that will be used as scratch memory for the build.
  • scratchOffset is the offset in bytes relative to the start of scratch that will be used as a scratch memory.

Valid Usage

Valid Usage (Implicit)

Host Synchronization

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

Command Properties

'

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

See Also

AccelerationStructureInfoNV, AccelerationStructureNV, 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 to raygenShaderBindingTableBuffer) 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 to missShaderBindingTableBuffer) of the miss shader being used for the trace.
  • missShaderBindingStride is the size in bytes of each shader binding table record in missShaderBindingTableBuffer.
  • hitShaderBindingTableBuffer is the buffer object that holds the shader binding table data for the hit shader stages.
  • hitShaderBindingOffset is the offset in bytes (relative to hitShaderBindingTableBuffer) of the hit shader group being used for the trace.
  • hitShaderBindingStride is the size in bytes of each shader binding table record in hitShaderBindingTableBuffer.
  • callableShaderBindingTableBuffer is the buffer object that holds the shader binding table data for the callable shader stage.
  • callableShaderBindingOffset is the offset in bytes (relative to callableShaderBindingTableBuffer) of the callable shader being used for the trace.
  • callableShaderBindingStride is the size in bytes of each shader binding table record in callableShaderBindingTableBuffer.
  • 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

Valid Usage (Implicit)

  • raygenShaderBindingTableBuffer must be a valid Buffer handle
  • If missShaderBindingTableBuffer is not NULL_HANDLE, missShaderBindingTableBuffer must be a valid Buffer handle
  • If hitShaderBindingTableBuffer is not NULL_HANDLE, hitShaderBindingTableBuffer must be a valid Buffer handle
  • If callableShaderBindingTableBuffer is not NULL_HANDLE, callableShaderBindingTableBuffer must be a valid Buffer handle
  • commandBuffer must be in the recording state
  • The CommandPool that commandBuffer was allocated from must support compute operations
  • This command must only be called outside of a render pass instance
  • Each of callableShaderBindingTableBuffer, commandBuffer, hitShaderBindingTableBuffer, missShaderBindingTableBuffer, and raygenShaderBindingTableBuffer that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same Device

Host Synchronization

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

Command Properties

'

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

See Also

Buffer, CommandBuffer, DeviceSize

getRayTracingShaderGroupHandlesNV :: forall io. MonadIO io => Device -> Pipeline -> ("firstGroup" ::: Word32) -> ("groupCount" ::: Word32) -> ("dataSize" ::: Word64) -> ("data" ::: Ptr ()) -> io () Source #

vkGetRayTracingShaderGroupHandlesNV - 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 the RayTracingShaderGroupCreateInfoNV::pGroups array.
  • groupCount is the number of shader handles to retrieve.
  • dataSize is the size in bytes of the buffer pointed to by pData.
  • pData is a pointer to a user-allocated buffer where the results will be written.

Valid Usage

  • The sum of firstGroup and groupCount must be less than the number of shader groups in pipeline.

Valid Usage (Implicit)

  • device must be a valid Device handle
  • pipeline must be a valid Pipeline handle
  • pData must be a valid pointer to an array of dataSize bytes
  • dataSize must be greater than 0
  • pipeline must have been created, allocated, or retrieved from device

Return Codes

Success
Failure

See Also

Device, Pipeline

getAccelerationStructureHandleNV :: forall io. MonadIO io => Device -> AccelerationStructureNV -> ("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 by pData.
  • pData is a pointer to a user-allocated buffer where the results will be written.

Return Codes

Success
Failure

See Also

AccelerationStructureNV, Device

createRayTracingPipelinesNV :: forall a io. (PokeChain a, MonadIO io) => Device -> PipelineCache -> ("createInfos" ::: Vector (RayTracingPipelineCreateInfoNV a)) -> ("allocator" ::: Maybe AllocationCallbacks) -> io ("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 either NULL_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 the pCreateInfos and pPipelines arrays.
  • pCreateInfos is a pointer to an array of RayTracingPipelineCreateInfoNV 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 of pCreateInfos contains the PIPELINE_CREATE_DERIVATIVE_BIT flag, and the basePipelineIndex member of that same element is not -1, basePipelineIndex must be less than the index into pCreateInfos that corresponds to that element

Valid Usage (Implicit)

  • device must be a valid Device handle
  • If pipelineCache is not NULL_HANDLE, pipelineCache must be a valid PipelineCache handle
  • pCreateInfos must be a valid pointer to an array of createInfoCount valid RayTracingPipelineCreateInfoNV structures
  • If pAllocator is not NULL, pAllocator must be a valid pointer to a valid AllocationCallbacks structure
  • pPipelines must be a valid pointer to an array of createInfoCount Pipeline handles
  • createInfoCount must be greater than 0
  • If pipelineCache is a valid handle, it must have been created, allocated, or retrieved from device

Return Codes

Success
Failure

See Also

AllocationCallbacks, Device, Pipeline, PipelineCache, RayTracingPipelineCreateInfoNV

data RayTracingShaderGroupCreateInfoNV Source #

VkRayTracingShaderGroupCreateInfoNV - Structure specifying shaders in a shader group

Valid Usage

Valid Usage (Implicit)

See Also

RayTracingPipelineCreateInfoNV, RayTracingShaderGroupTypeNV, StructureType

Constructors

RayTracingShaderGroupCreateInfoNV 

Fields

Instances
Show RayTracingShaderGroupCreateInfoNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_ray_tracing

Storable RayTracingShaderGroupCreateInfoNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_ray_tracing

FromCStruct RayTracingShaderGroupCreateInfoNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_ray_tracing

ToCStruct RayTracingShaderGroupCreateInfoNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_ray_tracing

Zero RayTracingShaderGroupCreateInfoNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_ray_tracing

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

Valid Usage (Implicit)

See Also

Pipeline, PipelineCreateFlags, PipelineLayout, PipelineShaderStageCreateInfo, RayTracingShaderGroupCreateInfoNV, StructureType, createRayTracingPipelinesNV

Constructors

RayTracingPipelineCreateInfoNV 

Fields

Instances
Extensible RayTracingPipelineCreateInfoNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_ray_tracing

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

Defined in Graphics.Vulkan.Extensions.VK_NV_ray_tracing

PeekChain es => FromCStruct (RayTracingPipelineCreateInfoNV es) Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_ray_tracing

PokeChain es => ToCStruct (RayTracingPipelineCreateInfoNV es) Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_ray_tracing

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

Defined in Graphics.Vulkan.Extensions.VK_NV_ray_tracing

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

Valid Usage (Implicit)

  • pNext must be NULL
  • If vertexData is not NULL_HANDLE, vertexData must be a valid Buffer handle
  • vertexFormat must be a valid Format value
  • If indexData is not NULL_HANDLE, indexData must be a valid Buffer handle
  • indexType must be a valid IndexType value
  • If transformData is not NULL_HANDLE, transformData must be a valid Buffer handle
  • Each of indexData, transformData, and vertexData that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same Device

See Also

Buffer, DeviceSize, Format, GeometryDataNV, IndexType, StructureType

Constructors

GeometryTrianglesNV 

Fields

  • vertexData :: Buffer

    vertexData is the buffer containing vertex data for this geometry.

  • vertexOffset :: DeviceSize

    vertexOffset is the offset in bytes within vertexData containing vertex data for this geometry.

  • vertexCount :: Word32

    vertexCount is the number of valid vertices.

  • vertexStride :: DeviceSize

    vertexStride is the stride in bytes between each vertex.

  • vertexFormat :: Format

    vertexFormat is the format of each vertex element.

  • indexData :: Buffer

    indexData is the buffer containing index data for this geometry.

  • indexOffset :: DeviceSize

    indexOffset is the offset in bytes within indexData containing index data for this geometry.

  • indexCount :: Word32

    indexCount is the number of indices to include in this geometry.

  • indexType :: IndexType

    indexType is the format of each index.

  • transformData :: Buffer

    transformData is a buffer containing optional reference to an array of 32-bit floats representing a 3x4 row major affine transformation matrix for this geometry.

  • transformOffset :: DeviceSize

    transformOffset is the offset in bytes in transformData of the transform information described above.

Instances
Show GeometryTrianglesNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_ray_tracing

Storable GeometryTrianglesNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_ray_tracing

FromCStruct GeometryTrianglesNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_ray_tracing

ToCStruct GeometryTrianglesNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_ray_tracing

Zero GeometryTrianglesNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_ray_tracing

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 of aabbData
  • offset must be a multiple of 8
  • stride must be a multiple of 8

Valid Usage (Implicit)

  • pNext must be NULL
  • If aabbData is not NULL_HANDLE, aabbData must be a valid Buffer handle

See Also

Buffer, DeviceSize, GeometryDataNV, StructureType

Constructors

GeometryAABBNV 

Fields

  • aabbData :: Buffer

    aabbData is the buffer containing axis-aligned bounding box data.

  • numAABBs :: Word32

    numAABBs is the number of AABBs in this geometry.

  • stride :: Word32

    stride is the stride in bytes between AABBs in aabbData.

  • offset :: DeviceSize

    offset is the offset in bytes of the first AABB in aabbData.

Instances
Show GeometryAABBNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_ray_tracing

Storable GeometryAABBNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_ray_tracing

FromCStruct GeometryAABBNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_ray_tracing

ToCStruct GeometryAABBNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_ray_tracing

Zero GeometryAABBNV Source # 
Instance details

Defined in Graphics.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, GeometryFlagsNV, GeometryTypeNV, StructureType

Constructors

GeometryNV 

Fields

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

Valid Usage (Implicit)

See Also

AccelerationStructureCreateInfoNV, AccelerationStructureTypeNV, BuildAccelerationStructureFlagsNV, GeometryNV, StructureType, cmdBuildAccelerationStructureNV

Constructors

AccelerationStructureInfoNV 

Fields

data AccelerationStructureCreateInfoNV Source #

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

Valid Usage

  • If compactedSize is not 0 then both info.geometryCount and info.instanceCount must be 0

Valid Usage (Implicit)

See Also

AccelerationStructureInfoNV, DeviceSize, StructureType, createAccelerationStructureNV

Constructors

AccelerationStructureCreateInfoNV 

Fields

data BindAccelerationStructureMemoryInfoNV Source #

VkBindAccelerationStructureMemoryInfoNV - Structure specifying acceleration structure memory binding

Valid Usage

  • accelerationStructure must not already be backed by a memory object

Valid Usage (Implicit)

  • pNext must be NULL
  • accelerationStructure must be a valid AccelerationStructureNV handle
  • memory must be a valid DeviceMemory handle
  • If deviceIndexCount is not 0, pDeviceIndices must be a valid pointer to an array of deviceIndexCount uint32_t values
  • Both of accelerationStructure, and memory must have been created, allocated, or retrieved from the same Device

See Also

AccelerationStructureNV, DeviceMemory, DeviceSize, StructureType, bindAccelerationStructureMemoryNV

Constructors

BindAccelerationStructureMemoryInfoNV 

Fields

data WriteDescriptorSetAccelerationStructureNV Source #

VkWriteDescriptorSetAccelerationStructureNV - Structure specifying acceleration structure descriptor info

Valid Usage

  • accelerationStructureCount must be equal to descriptorCount in the extended structure

Valid Usage (Implicit)

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

See Also

AccelerationStructureNV, StructureType

Constructors

WriteDescriptorSetAccelerationStructureNV 

Fields

data AccelerationStructureMemoryRequirementsInfoNV Source #

VkAccelerationStructureMemoryRequirementsInfoNV - Structure specifying acceleration to query for memory requirements

Valid Usage (Implicit)

See Also

AccelerationStructureMemoryRequirementsTypeNV, AccelerationStructureNV, StructureType, getAccelerationStructureMemoryRequirementsNV

Instances
Show AccelerationStructureMemoryRequirementsInfoNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_ray_tracing

Storable AccelerationStructureMemoryRequirementsInfoNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_ray_tracing

FromCStruct AccelerationStructureMemoryRequirementsInfoNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_ray_tracing

ToCStruct AccelerationStructureMemoryRequirementsInfoNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_ray_tracing

Zero AccelerationStructureMemoryRequirementsInfoNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_ray_tracing

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.

Valid Usage (Implicit)

See Also

StructureType

Constructors

PhysicalDeviceRayTracingPropertiesNV 

Fields

Instances
Show PhysicalDeviceRayTracingPropertiesNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_ray_tracing

Storable PhysicalDeviceRayTracingPropertiesNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_ray_tracing

FromCStruct PhysicalDeviceRayTracingPropertiesNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_ray_tracing

ToCStruct PhysicalDeviceRayTracingPropertiesNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_ray_tracing

Zero PhysicalDeviceRayTracingPropertiesNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_ray_tracing

newtype GeometryInstanceFlagBitsNV Source #

VkGeometryInstanceFlagBitsNV - Instance flag bits

Description

GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV and GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV must not be used in the same flag.

See Also

GeometryInstanceFlagsNV

Bundled Patterns

pattern GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV :: GeometryInstanceFlagBitsNV

GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV disables face culling for this instance.

pattern GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV :: GeometryInstanceFlagBitsNV

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

pattern GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV :: GeometryInstanceFlagBitsNV

GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV causes this instance to act as though GEOMETRY_OPAQUE_BIT_NV were specified on all geometries referenced by this instance. This behavior can be overridden by the ray flag gl_RayFlagsNoOpaqueNV.

pattern GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV :: GeometryInstanceFlagBitsNV

GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV causes this instance to act as though GEOMETRY_OPAQUE_BIT_NV were not specified on all geometries referenced by this instance. This behavior can be overridden by the ray flag gl_RayFlagsOpaqueNV.

Instances
Eq GeometryInstanceFlagBitsNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_ray_tracing

Ord GeometryInstanceFlagBitsNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_ray_tracing

Read GeometryInstanceFlagBitsNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_ray_tracing

Show GeometryInstanceFlagBitsNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_ray_tracing

Storable GeometryInstanceFlagBitsNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_ray_tracing

Bits GeometryInstanceFlagBitsNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_ray_tracing

Methods

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

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

xor :: GeometryInstanceFlagBitsNV -> GeometryInstanceFlagBitsNV -> GeometryInstanceFlagBitsNV #

complement :: GeometryInstanceFlagBitsNV -> GeometryInstanceFlagBitsNV #

shift :: GeometryInstanceFlagBitsNV -> Int -> GeometryInstanceFlagBitsNV #

rotate :: GeometryInstanceFlagBitsNV -> Int -> GeometryInstanceFlagBitsNV #

zeroBits :: GeometryInstanceFlagBitsNV #

bit :: Int -> GeometryInstanceFlagBitsNV #

setBit :: GeometryInstanceFlagBitsNV -> Int -> GeometryInstanceFlagBitsNV #

clearBit :: GeometryInstanceFlagBitsNV -> Int -> GeometryInstanceFlagBitsNV #

complementBit :: GeometryInstanceFlagBitsNV -> Int -> GeometryInstanceFlagBitsNV #

testBit :: GeometryInstanceFlagBitsNV -> Int -> Bool #

bitSizeMaybe :: GeometryInstanceFlagBitsNV -> Maybe Int #

bitSize :: GeometryInstanceFlagBitsNV -> Int #

isSigned :: GeometryInstanceFlagBitsNV -> Bool #

shiftL :: GeometryInstanceFlagBitsNV -> Int -> GeometryInstanceFlagBitsNV #

unsafeShiftL :: GeometryInstanceFlagBitsNV -> Int -> GeometryInstanceFlagBitsNV #

shiftR :: GeometryInstanceFlagBitsNV -> Int -> GeometryInstanceFlagBitsNV #

unsafeShiftR :: GeometryInstanceFlagBitsNV -> Int -> GeometryInstanceFlagBitsNV #

rotateL :: GeometryInstanceFlagBitsNV -> Int -> GeometryInstanceFlagBitsNV #

rotateR :: GeometryInstanceFlagBitsNV -> Int -> GeometryInstanceFlagBitsNV #

popCount :: GeometryInstanceFlagBitsNV -> Int #

Zero GeometryInstanceFlagBitsNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_ray_tracing

newtype GeometryFlagBitsNV Source #

VkGeometryFlagBitsNV - Bitmask specifying additional parameters for a geometry

See Also

GeometryFlagsNV

Bundled Patterns

pattern GEOMETRY_OPAQUE_BIT_NV :: GeometryFlagBitsNV

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

pattern GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV :: GeometryFlagBitsNV

GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV indicates that the implementation must only call the any-hit shader a single time for each primitive in this geometry. If this bit is absent an implementation may invoke the any-hit shader more than once for this geometry.

Instances
Eq GeometryFlagBitsNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_ray_tracing

Ord GeometryFlagBitsNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_ray_tracing

Read GeometryFlagBitsNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_ray_tracing

Show GeometryFlagBitsNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_ray_tracing

Storable GeometryFlagBitsNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_ray_tracing

Bits GeometryFlagBitsNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_ray_tracing

Zero GeometryFlagBitsNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_ray_tracing

newtype BuildAccelerationStructureFlagBitsNV Source #

VkBuildAccelerationStructureFlagBitsNV - Bitmask specifying additional parameters for acceleration structure builds

Description

Note

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

See Also

BuildAccelerationStructureFlagsNV

Bundled Patterns

pattern BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV :: BuildAccelerationStructureFlagBitsNV

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

pattern BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV :: BuildAccelerationStructureFlagBitsNV

BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV indicates that the specified acceleration structure can act as the source for cmdCopyAccelerationStructureNV with mode of COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV to produce a compacted acceleration structure.

pattern BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV :: BuildAccelerationStructureFlagBitsNV

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

pattern BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV :: BuildAccelerationStructureFlagBitsNV

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

pattern BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV :: BuildAccelerationStructureFlagBitsNV

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

Instances
Eq BuildAccelerationStructureFlagBitsNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_ray_tracing

Ord BuildAccelerationStructureFlagBitsNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_ray_tracing

Read BuildAccelerationStructureFlagBitsNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_ray_tracing

Show BuildAccelerationStructureFlagBitsNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_ray_tracing

Storable BuildAccelerationStructureFlagBitsNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_ray_tracing

Bits BuildAccelerationStructureFlagBitsNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_ray_tracing

Methods

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

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

xor :: BuildAccelerationStructureFlagBitsNV -> BuildAccelerationStructureFlagBitsNV -> BuildAccelerationStructureFlagBitsNV #

complement :: BuildAccelerationStructureFlagBitsNV -> BuildAccelerationStructureFlagBitsNV #

shift :: BuildAccelerationStructureFlagBitsNV -> Int -> BuildAccelerationStructureFlagBitsNV #

rotate :: BuildAccelerationStructureFlagBitsNV -> Int -> BuildAccelerationStructureFlagBitsNV #

zeroBits :: BuildAccelerationStructureFlagBitsNV #

bit :: Int -> BuildAccelerationStructureFlagBitsNV #

setBit :: BuildAccelerationStructureFlagBitsNV -> Int -> BuildAccelerationStructureFlagBitsNV #

clearBit :: BuildAccelerationStructureFlagBitsNV -> Int -> BuildAccelerationStructureFlagBitsNV #

complementBit :: BuildAccelerationStructureFlagBitsNV -> Int -> BuildAccelerationStructureFlagBitsNV #

testBit :: BuildAccelerationStructureFlagBitsNV -> Int -> Bool #

bitSizeMaybe :: BuildAccelerationStructureFlagBitsNV -> Maybe Int #

bitSize :: BuildAccelerationStructureFlagBitsNV -> Int #

isSigned :: BuildAccelerationStructureFlagBitsNV -> Bool #

shiftL :: BuildAccelerationStructureFlagBitsNV -> Int -> BuildAccelerationStructureFlagBitsNV #

unsafeShiftL :: BuildAccelerationStructureFlagBitsNV -> Int -> BuildAccelerationStructureFlagBitsNV #

shiftR :: BuildAccelerationStructureFlagBitsNV -> Int -> BuildAccelerationStructureFlagBitsNV #

unsafeShiftR :: BuildAccelerationStructureFlagBitsNV -> Int -> BuildAccelerationStructureFlagBitsNV #

rotateL :: BuildAccelerationStructureFlagBitsNV -> Int -> BuildAccelerationStructureFlagBitsNV #

rotateR :: BuildAccelerationStructureFlagBitsNV -> Int -> BuildAccelerationStructureFlagBitsNV #

popCount :: BuildAccelerationStructureFlagBitsNV -> Int #

Zero BuildAccelerationStructureFlagBitsNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_ray_tracing

newtype CopyAccelerationStructureModeNV Source #

VkCopyAccelerationStructureModeNV - Acceleration structure copy mode

See Also

cmdCopyAccelerationStructureNV

Bundled Patterns

pattern COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV :: CopyAccelerationStructureModeNV

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

pattern COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV :: CopyAccelerationStructureModeNV

COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV creates a more compact version of an acceleration structure src into dst. The acceleration structure dst must have been created with a compactedSize corresponding to the one returned by cmdWriteAccelerationStructuresPropertiesNV after the build of the acceleration structure specified by src.

Instances
Eq CopyAccelerationStructureModeNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_ray_tracing

Ord CopyAccelerationStructureModeNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_ray_tracing

Read CopyAccelerationStructureModeNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_ray_tracing

Show CopyAccelerationStructureModeNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_ray_tracing

Storable CopyAccelerationStructureModeNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_ray_tracing

Zero CopyAccelerationStructureModeNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_ray_tracing

newtype AccelerationStructureTypeNV Source #

VkAccelerationStructureTypeNV - Type of acceleration structure

See Also

AccelerationStructureInfoNV

Bundled Patterns

pattern ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV :: AccelerationStructureTypeNV

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

pattern ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV :: AccelerationStructureTypeNV

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

Instances
Eq AccelerationStructureTypeNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_ray_tracing

Ord AccelerationStructureTypeNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_ray_tracing

Read AccelerationStructureTypeNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_ray_tracing

Show AccelerationStructureTypeNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_ray_tracing

Storable AccelerationStructureTypeNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_ray_tracing

Zero AccelerationStructureTypeNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_ray_tracing

newtype GeometryTypeNV Source #

VkGeometryTypeNV - Enum specifying which type of geometry is provided

See Also

GeometryNV

Constructors

GeometryTypeNV Int32 

Bundled Patterns

pattern GEOMETRY_TYPE_TRIANGLES_NV :: GeometryTypeNV

GEOMETRY_TYPE_TRIANGLES_NV indicates that the triangles of GeometryDataNV contains valid data.

pattern GEOMETRY_TYPE_AABBS_NV :: GeometryTypeNV

GEOMETRY_TYPE_AABBS_NV indicates that the aabbs of GeometryDataNV contains valid data.

Instances
Eq GeometryTypeNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_ray_tracing

Ord GeometryTypeNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_ray_tracing

Read GeometryTypeNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_ray_tracing

Show GeometryTypeNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_ray_tracing

Storable GeometryTypeNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_ray_tracing

Zero GeometryTypeNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_ray_tracing

newtype AccelerationStructureMemoryRequirementsTypeNV Source #

VkAccelerationStructureMemoryRequirementsTypeNV - Acceleration structure memory requirement type

See Also

AccelerationStructureMemoryRequirementsInfoNV

Instances
Eq AccelerationStructureMemoryRequirementsTypeNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_ray_tracing

Ord AccelerationStructureMemoryRequirementsTypeNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_ray_tracing

Read AccelerationStructureMemoryRequirementsTypeNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_ray_tracing

Show AccelerationStructureMemoryRequirementsTypeNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_ray_tracing

Storable AccelerationStructureMemoryRequirementsTypeNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_ray_tracing

Zero AccelerationStructureMemoryRequirementsTypeNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_ray_tracing

newtype RayTracingShaderGroupTypeNV Source #

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

RayTracingShaderGroupCreateInfoNV

Bundled Patterns

pattern RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV :: RayTracingShaderGroupTypeNV

RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV indicates a shader group with a single SHADER_STAGE_RAYGEN_BIT_NV, SHADER_STAGE_MISS_BIT_NV, or SHADER_STAGE_CALLABLE_BIT_NV shader in it.

pattern RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV :: RayTracingShaderGroupTypeNV

RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV specifies a shader group that only hits triangles and must not contain an intersection shader, only closest hit and any-hit.

pattern RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV :: RayTracingShaderGroupTypeNV

RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV specifies a shader group that only intersects with custom geometry and must contain an intersection shader and may contain closest hit and any-hit shaders.

Instances
Eq RayTracingShaderGroupTypeNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_ray_tracing

Ord RayTracingShaderGroupTypeNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_ray_tracing

Read RayTracingShaderGroupTypeNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_ray_tracing

Show RayTracingShaderGroupTypeNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_ray_tracing

Storable RayTracingShaderGroupTypeNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_ray_tracing

Zero RayTracingShaderGroupTypeNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_ray_tracing

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 AccelerationStructureNV Source #

Instances
Eq AccelerationStructureNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.Handles

Ord AccelerationStructureNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.Handles

Show AccelerationStructureNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.Handles

Storable AccelerationStructureNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.Handles

Zero AccelerationStructureNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.Handles

IsHandle AccelerationStructureNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.Handles

newtype DebugReportObjectTypeEXT Source #

VkDebugReportObjectTypeEXT - Specify the type of an object handle

Description

'

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

VkDebugReportObjectTypeEXT and Vulkan Handle Relationship

Note

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

See Also

DebugMarkerObjectNameInfoEXT, DebugMarkerObjectTagInfoEXT, debugReportMessageEXT

Bundled Patterns

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

Defined in Graphics.Vulkan.Extensions.VK_EXT_debug_report

Ord DebugReportObjectTypeEXT Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_EXT_debug_report

Read DebugReportObjectTypeEXT Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_EXT_debug_report

Show DebugReportObjectTypeEXT Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_EXT_debug_report

Storable DebugReportObjectTypeEXT Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_EXT_debug_report

Zero DebugReportObjectTypeEXT Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_EXT_debug_report

type SHADER_UNUSED_NV = 4294967295 Source #