C Specification

The VkPhysicalDeviceRayTracingFeaturesKHR structure is defined as:

// Provided by VK_KHR_ray_tracing
typedef struct VkPhysicalDeviceRayTracingFeaturesKHR {
    VkStructureType    sType;
    void*              pNext;
    VkBool32           rayTracing;
    VkBool32           rayTracingShaderGroupHandleCaptureReplay;
    VkBool32           rayTracingShaderGroupHandleCaptureReplayMixed;
    VkBool32           rayTracingAccelerationStructureCaptureReplay;
    VkBool32           rayTracingIndirectTraceRays;
    VkBool32           rayTracingIndirectAccelerationStructureBuild;
    VkBool32           rayTracingHostAccelerationStructureCommands;
    VkBool32           rayQuery;
    VkBool32           rayTracingPrimitiveCulling;
} VkPhysicalDeviceRayTracingFeaturesKHR;

Members

The members of the VkPhysicalDeviceRayTracingFeaturesKHR structure describe the following features:

Description

  • rayTracing indicates whether the implementation supports ray tracing functionality. See Ray Tracing.

  • rayTracingShaderGroupHandleCaptureReplay indicates whether the implementation supports saving and reusing shader group handles, e.g. for trace capture and replay.

  • rayTracingShaderGroupHandleCaptureReplayMixed indicates whether the implementation supports reuse of shader group handles being arbitrarily mixed with creation of non-reused shader group handles. If this is VK_FALSE, all reused shader group handles must be specified before any non-reused handles may be created.

  • rayTracingAccelerationStructureCaptureReplay indicates whether the implementation supports saving and reusing acceleration structure device addresses, e.g. for trace capture and replay.

  • rayTracingIndirectTraceRays indicates whether the implementation supports indirect trace ray commands, e.g. vkCmdTraceRaysIndirectKHR.

  • rayTracingIndirectAccelerationStructureBuild indicates whether the implementation supports indirect acceleration structure build commands, e.g. vkCmdBuildAccelerationStructureIndirectKHR.

  • rayTracingHostAccelerationStructureCommands indicates whether the implementation supports host side acceleration structure commands, e.g. vkBuildAccelerationStructureKHR, vkCopyAccelerationStructureKHR, vkCopyAccelerationStructureToMemoryKHR, vkCopyMemoryToAccelerationStructureKHR, vkWriteAccelerationStructuresPropertiesKHR.

  • rayQuery indicates whether the implementation supports ray query (OpRayQueryProceedKHR) functionality.

  • rayTracingPrimitiveCulling indicates whether the implementation supports primitive culling during ray traversal.

If the VkPhysicalDeviceRayTracingFeaturesKHR structure is included in the pNext chain of VkPhysicalDeviceFeatures2, it is filled with values indicating whether the feature is supported. VkPhysicalDeviceRayTracingFeaturesKHR can also be used in the pNext chain of VkDeviceCreateInfo to enable the features.

Valid Usage
  • If rayTracingShaderGroupHandleCaptureReplayMixed is VK_TRUE, rayTracingShaderGroupHandleCaptureReplay must also be VK_TRUE

Valid Usage (Implicit)
  • sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_FEATURES_KHR

See Also

VkBool32, VkStructureType

Document Notes

For more information, see the Vulkan Specification

This page is extracted from the Vulkan Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2020 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0