vulkan
Safe HaskellNone
LanguageHaskell2010

Vulkan.Extensions.VK_KHR_ray_tracing_maintenance1

Description

Name

VK_KHR_ray_tracing_maintenance1 - device extension

VK_KHR_ray_tracing_maintenance1

Name String
VK_KHR_ray_tracing_maintenance1
Extension Type
Device extension
Registered Extension Number
387
Revision
1
Ratification Status
Ratified
Extension and Version Dependencies
VK_KHR_acceleration_structure
API Interactions
  • Interacts with VK_VERSION_1_3
  • Interacts with VK_EXT_device_generated_commands
  • Interacts with VK_KHR_ray_tracing_pipeline
  • Interacts with VK_KHR_synchronization2
SPIR-V Dependencies
Contact

Other Extension Metadata

Last Modified Date
2022-02-21
Interactions and External Dependencies
  • This extension provides API support for GLSL_EXT_ray_cull_mask
  • Interacts with VK_KHR_ray_tracing_pipeline
  • Interacts with VK_KHR_synchronization2
Contributors
  • Stu Smith, AMD
  • Tobias Hector, AMD
  • Marius Bjorge, Arm
  • Tom Olson, Arm
  • Yuriy O’Donnell, Epic Games
  • Yunpeng Zhu, Huawei
  • Andrew Garrard, Imagination
  • Dae Kim, Imagination
  • Joshua Barczak, Intel
  • Lionel Landwerlin, Intel
  • Daniel Koch, NVIDIA
  • Eric Werness, NVIDIA
  • Spencer Fricke, Samsung

Description

VK_KHR_ray_tracing_maintenance1 adds a collection of minor ray tracing features, none of which would warrant an entire extension of their own.

The new features are as follows:

New Commands

If VK_KHR_ray_tracing_pipeline is supported:

New Structures

If VK_KHR_ray_tracing_pipeline is supported:

New Enum Constants

If VK_KHR_synchronization2 or Vulkan Version 1.3 and VK_KHR_ray_tracing_pipeline is supported:

If VK_EXT_device_generated_commands is supported:

If VK_KHR_synchronization2 or Vulkan Version 1.3 is supported:

New Built-In Variables

New SPIR-V Capabilities

Issues

None Yet!

Version History

  • Revision 1, 2022-02-21 (Members of the Vulkan Ray Tracing TSG)

    • internal revisions

See Also

No cross-references are available

Document Notes

For more information, see the Vulkan Specification.

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

Synopsis

Documentation

cmdTraceRaysIndirect2KHR Source #

Arguments

:: MonadIO io 
=> CommandBuffer

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

-> ("indirectDeviceAddress" ::: DeviceAddress)

indirectDeviceAddress is a buffer device address which is a pointer to a TraceRaysIndirectCommand2KHR structure containing the trace ray parameters.

-> io () 

vkCmdTraceRaysIndirect2KHR - Initialize an indirect ray tracing dispatch with indirect shader binding tables

Description

cmdTraceRaysIndirect2KHR behaves similarly to cmdTraceRaysIndirectKHR except that shader binding table parameters as well as dispatch dimensions are read by the device from indirectDeviceAddress during execution.

Valid Usage

Valid Usage (Implicit)

  • indirectDeviceAddress must be a valid DeviceAddress value
  • commandBuffer must be in the recording state
  • The CommandPool that commandBuffer was allocated from must support QUEUE_COMPUTE_BIT operations
  • This command must only be called outside of a render pass instance
  • This command must not be called between suspended render pass instances
  • This command must only be called outside of a video coding scope

Host Synchronization

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

Command Properties

'

Command Buffer LevelsRender Pass ScopeVideo Coding ScopeSupported Queue TypesCommand Type
Primary SecondaryOutside Outside VK_QUEUE_COMPUTE_BIT Action

Conditional Rendering

vkCmdTraceRaysIndirect2KHR is not affected by conditional rendering

See Also

VK_KHR_ray_tracing_maintenance1, VK_KHR_ray_tracing_pipeline, CommandBuffer, DeviceAddress

data TraceRaysIndirectCommand2KHR Source #

VkTraceRaysIndirectCommand2KHR - Structure specifying the parameters of an indirect trace ray command with indirect shader binding tables

Description

The members of TraceRaysIndirectCommand2KHR have the same meaning as the similarly named parameters of cmdTraceRaysKHR.

Indirect shader binding table buffer parameters must satisfy the same memory alignment and binding requirements as their counterparts in cmdTraceRaysIndirectKHR and cmdTraceRaysKHR.

Valid Usage

Valid Usage (Implicit)

  • missShaderBindingTableAddress must be a valid DeviceAddress value
  • hitShaderBindingTableAddress must be a valid DeviceAddress value
  • callableShaderBindingTableAddress must be a valid DeviceAddress value

See Also

VK_KHR_ray_tracing_maintenance1, VK_KHR_ray_tracing_pipeline, DeviceAddress, DeviceSize

Constructors

TraceRaysIndirectCommand2KHR 

Fields

Instances

Instances details
Eq TraceRaysIndirectCommand2KHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_ray_tracing_maintenance1

Storable TraceRaysIndirectCommand2KHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_ray_tracing_maintenance1

Show TraceRaysIndirectCommand2KHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_ray_tracing_maintenance1

FromCStruct TraceRaysIndirectCommand2KHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_ray_tracing_maintenance1

ToCStruct TraceRaysIndirectCommand2KHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_ray_tracing_maintenance1

Zero TraceRaysIndirectCommand2KHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_ray_tracing_maintenance1

data PhysicalDeviceRayTracingMaintenance1FeaturesKHR Source #

VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR - Structure describing the ray tracing maintenance features that can be supported by an implementation

Members

This structure describes the following features:

Description

If the PhysicalDeviceRayTracingMaintenance1FeaturesKHR structure is included in the pNext chain of the PhysicalDeviceFeatures2 structure passed to getPhysicalDeviceFeatures2, it is filled in to indicate whether each corresponding feature is supported. If the application wishes to use a Device with any features described by PhysicalDeviceRayTracingMaintenance1FeaturesKHR, it must add an instance of the structure, with the desired feature members set to TRUE, to the pNext chain of DeviceCreateInfo when creating the Device.

Valid Usage (Implicit)

See Also

VK_KHR_ray_tracing_maintenance1, Bool32, StructureType

Constructors

PhysicalDeviceRayTracingMaintenance1FeaturesKHR 

Fields

Instances

Instances details
Eq PhysicalDeviceRayTracingMaintenance1FeaturesKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_ray_tracing_maintenance1

Storable PhysicalDeviceRayTracingMaintenance1FeaturesKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_ray_tracing_maintenance1

Show PhysicalDeviceRayTracingMaintenance1FeaturesKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_ray_tracing_maintenance1

FromCStruct PhysicalDeviceRayTracingMaintenance1FeaturesKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_ray_tracing_maintenance1

ToCStruct PhysicalDeviceRayTracingMaintenance1FeaturesKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_ray_tracing_maintenance1

Zero PhysicalDeviceRayTracingMaintenance1FeaturesKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_ray_tracing_maintenance1

type KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME = "VK_KHR_ray_tracing_maintenance1" Source #

newtype IndirectCommandsTokenTypeEXT Source #

VkIndirectCommandsTokenTypeEXT - Enum specifying token commands

Description

'

Common TokensCommand Data
INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXTu32[] array of indices into the indirect execution set
INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_EXTu32[] raw data
INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_DATA_EXTu8[] raw data
INDIRECT_COMMANDS_TOKEN_TYPE_SEQUENCE_INDEX_EXTu32 placeholder data (not accessed by shader)
INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_DATA_SEQUENCE_INDEX_EXTu32 placeholder data (not accessed by shader)
Compute Tokens
INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_EXTDispatchIndirectCommand
Ray Tracing Tokens
INDIRECT_COMMANDS_TOKEN_TYPE_TRACE_RAYS2_EXTTraceRaysIndirectCommand2KHR
Graphics State Tokens
INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_EXTBindIndexBufferIndirectCommandEXT
INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_EXTBindVertexBufferIndirectCommandEXT
Graphics Draw Tokens
INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_EXTDrawIndexedIndirectCommand
INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_EXTDrawIndirectCommand
INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_EXTDrawMeshTasksIndirectCommandEXT
INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV_EXTDrawMeshTasksIndirectCommandNV
Graphics Draw Count Tokens
INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_COUNT_EXTDrawIndirectCountIndirectCommandEXT with VkDrawIndexedIndirectCommand
INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_COUNT_EXTDrawIndirectCountIndirectCommandEXT with VkDrawIndirectCommand
INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_EXTDrawIndirectCountIndirectCommandEXT with VkDrawMeshTasksIndirectCommandEXT
INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_NV_EXTDrawIndirectCountIndirectCommandEXT with VkDrawMeshTasksIndirectCommandNV

Supported Indirect Command Tokens

See Also

VK_EXT_device_generated_commands, IndirectCommandsLayoutTokenEXT

Bundled Patterns

pattern INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_EXT :: IndirectCommandsTokenTypeEXT 
pattern INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_COUNT_EXT :: IndirectCommandsTokenTypeEXT 
pattern INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_EXT :: IndirectCommandsTokenTypeEXT 
pattern INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_COUNT_EXT :: IndirectCommandsTokenTypeEXT 
pattern INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_EXT :: IndirectCommandsTokenTypeEXT 
pattern INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_EXT :: IndirectCommandsTokenTypeEXT 
pattern INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_NV_EXT :: IndirectCommandsTokenTypeEXT 
pattern INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_EXT :: IndirectCommandsTokenTypeEXT 
pattern INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV_EXT :: IndirectCommandsTokenTypeEXT 
pattern INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT :: IndirectCommandsTokenTypeEXT 
pattern INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_EXT :: IndirectCommandsTokenTypeEXT 
pattern INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_EXT :: IndirectCommandsTokenTypeEXT 
pattern INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_DATA_EXT :: IndirectCommandsTokenTypeEXT 
pattern INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_DATA_SEQUENCE_INDEX_EXT :: IndirectCommandsTokenTypeEXT 
pattern INDIRECT_COMMANDS_TOKEN_TYPE_SEQUENCE_INDEX_EXT :: IndirectCommandsTokenTypeEXT 
pattern INDIRECT_COMMANDS_TOKEN_TYPE_TRACE_RAYS2_EXT :: IndirectCommandsTokenTypeEXT 
pattern INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_EXT :: IndirectCommandsTokenTypeEXT 

Instances

Instances details
Eq IndirectCommandsTokenTypeEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_device_generated_commands

Ord IndirectCommandsTokenTypeEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_device_generated_commands

Storable IndirectCommandsTokenTypeEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_device_generated_commands

Read IndirectCommandsTokenTypeEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_device_generated_commands

Show IndirectCommandsTokenTypeEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_device_generated_commands

Zero IndirectCommandsTokenTypeEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_device_generated_commands