HORIZON HASKELLDocslts/ghc-9.14.x45dd5372026-10-11Search names, modules, packages, or :: a typeCtrl K

GHC 9.14.1 · lts/ghc-9.14.x · 45dd537 · 2026-10-11

Modulevulkan-3.27GHC2021

Vulkan.Extensions.VK_KHR_ray_tracing_maintenance1

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.

  • 5 types
  • 1 value
  • Packagevulkan-3.27
  • Exports25
  • LanguageGHC2021
  • LicenceBSD-3-Clause
  • SourceVK_KHR_ray_tracing_maintenance1.hs
valuecmdTraceRaysIndirect2KHR
  1. :: MonadIO io
  2. => CommandBuffer

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

  3. -> "indirectDeviceAddress" ::: DeviceAddress

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

  4. -> 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 Levels

Render Pass Scope

Video Coding Scope

Supported Queue Types

Command Type

Primary Secondary

Outside

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

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

Instances6Eq, Show, Storable, FromCStruct, ToCStruct, Zero

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.

Structure Chaining

Extends the structures

See Also

VK_KHR_ray_tracing_maintenance1, Bool32, StructureType

Constructors

Instances6Eq, Show, Storable, FromCStruct, ToCStruct, Zero
newtypenewtype IndirectCommandsTokenTypeEXT
#

VkIndirectCommandsTokenTypeEXT - Enum specifying token commands

Description

'

Common Tokens

Command Data

INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT

u32[]

array of indices into the indirect execution set

INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_EXT

u32[]

raw data

INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_DATA_EXT

u8[]

raw data

INDIRECT_COMMANDS_TOKEN_TYPE_SEQUENCE_INDEX_EXT

u32

placeholder data (not accessed by shader)

INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_DATA_SEQUENCE_INDEX_EXT

u32

placeholder data (not accessed by shader)

Compute Tokens

INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_EXT

DispatchIndirectCommand

Ray Tracing Tokens

INDIRECT_COMMANDS_TOKEN_TYPE_TRACE_RAYS2_EXT

TraceRaysIndirectCommand2KHR

Graphics State Tokens

INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_EXT

BindIndexBufferIndirectCommandEXT

INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_EXT

BindVertexBufferIndirectCommandEXT

Graphics Draw Tokens

INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_EXT

DrawIndexedIndirectCommand

INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_EXT

DrawIndirectCommand

INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_EXT

DrawMeshTasksIndirectCommandEXT

INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV_EXT

DrawMeshTasksIndirectCommandNV

Graphics Draw Count Tokens

INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_COUNT_EXT

DrawIndirectCountIndirectCommandEXT

with VkDrawIndexedIndirectCommand

INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_COUNT_EXT

DrawIndirectCountIndirectCommandEXT

with VkDrawIndirectCommand

INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_EXT

DrawIndirectCountIndirectCommandEXT

with VkDrawMeshTasksIndirectCommandEXT

INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_NV_EXT

DrawIndirectCountIndirectCommandEXT

with VkDrawMeshTasksIndirectCommandNV

Supported Indirect Command Tokens

See Also

VK_EXT_device_generated_commands, IndirectCommandsLayoutTokenEXT

Instances6Eq, Ord, Read, Show, Storable, Zero