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

GHC 9.14.1 · lts/ghc-9.14.x · 3e2d568 · 2026-10-11

Modulevulkan-3.27GHC2021

Vulkan.Extensions.VK_NV_displacement_micromap

Name

VK_NV_displacement_micromap - device extension

VK_NV_displacement_micromap

Name String

VK_NV_displacement_micromap

Extension Type

Device extension

Registered Extension Number

398

Revision

2

Ratification Status

Not ratified

Extension and Version Dependencies

VK_EXT_opacity_micromap

  • __This is a provisional extension and must be used with caution. See the description of provisional header files for enablement and stability details.__

Deprecation State
Contact

Other Extension Metadata

Last Modified Date

2023-03-17

Interactions and External Dependencies

TBD

Contributors
  • Christoph Kubisch, NVIDIA

  • Eric Werness, NVIDIA

Description

Ray tracing can very efficiently render from geometry which has very fine detail, but when using only a basic triangle representation, memory consumption can be an issue. This extension adds the ability to add a displacement map to add more detail to triangles in an acceleration structure with an efficient in-memory format. The format is externally visible to allow the application to compress its internal geometry representations into the compressed format ahead of time. This format adds displacements along a defined vector to subtriangle vertices which are subdivided from the main triangles.

This extension provides:

New Structures

New Enums

New Enum Constants

Issues

  1. What is the status of this extension?

  • Deprecated. The VK_NV_cluster_acceleration_structure extension is not a one-to-one replacement for this extension but enables similar performance improvements for high-tessellation geometry and is considered the preferred direction to improve high-tessellation geometry performance.

Version History

  • Revision 1, 2023-03-17 (Eric Werness)

    • Initial public revision

  • Revision 2, 2023-07-07 (Eric Werness)

    • Add shader support for decode intrinsics

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.

  • 12 types
  • Packagevulkan-3.27
  • Exports32
  • LanguageGHC2021
  • LicenceBSD-3-Clause
  • SourceVK_NV_displacement_micromap.hs

VkPhysicalDeviceDisplacementMicromapFeaturesNV - Structure describing the ray tracing displacement micromap features that can be supported by an implementation

Members

This structure describes the following feature:

Description

If the PhysicalDeviceDisplacementMicromapFeaturesNV 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 PhysicalDeviceDisplacementMicromapFeaturesNV, 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_NV_displacement_micromap, Bool32, StructureType

Constructors

Instances6Eq, Show, Storable, FromCStruct, ToCStruct, Zero

VkPhysicalDeviceDisplacementMicromapPropertiesNV - Structure describing the displacement micromap properties of a physical device

Description

If the PhysicalDeviceDisplacementMicromapPropertiesNV structure is included in the pNext chain of the PhysicalDeviceProperties2 structure passed to getPhysicalDeviceProperties2, it is filled in with each corresponding implementation-dependent property.

Structure Chaining

Extends the structure

See Also

VK_NV_displacement_micromap, StructureType

Constructors

Instances6Eq, Show, Storable, FromCStruct, ToCStruct, Zero

VkAccelerationStructureTrianglesDisplacementMicromapNV - Structure specifying a displacement micromap in a bottom-level acceleration structure

Description

If AccelerationStructureTrianglesDisplacementMicromapNV is included in the pNext chain of a AccelerationStructureGeometryTrianglesDataKHR structure, that geometry will reference that micromap.

For each triangle in the geometry, the acceleration structure build fetches an index from indexBuffer using indexType and indexStride. That triangle uses the displacement micromap information from micromap at that index plus baseTriangle.

Only one of pUsageCounts or ppUsageCounts can be a valid pointer, the other must be NULL. The elements of the non-NULL array describe the total count used to build this geometry. For a given format and subdivisionLevel the number of triangles in this geometry matching those values after indirection must be equal to the sum of matching count provided.

Valid Usage

  • displacementVectorFormat must not be FORMAT_UNDEFINED

  • Only one of pUsageCounts or ppUsageCounts can be a valid pointer, the other must be NULL

Valid Usage (Implicit)

  • displacementBiasAndScaleFormat must be a valid Format value

  • displacementVectorFormat must be a valid Format value

  • indexType must be a valid IndexType value

  • If usageCountsCount is not 0, and pUsageCounts is not NULL, pUsageCounts must be a valid pointer to an array of usageCountsCount MicromapUsageEXT structures

  • If usageCountsCount is not 0, and ppUsageCounts is not NULL, ppUsageCounts must be a valid pointer to an array of usageCountsCount valid pointers to MicromapUsageEXT structures

  • If micromap is not NULL_HANDLE, micromap must be a valid MicromapEXT handle

Structure Chaining

Extends the structure

See Also

VK_NV_displacement_micromap, DeviceOrHostAddressConstKHR, DeviceSize, Format, IndexType, MicromapEXT, MicromapUsageEXT, StructureType

Constructors

Instances3Show, ToCStruct, Zero
newtypenewtype DisplacementMicromapFormatNV
#

VkDisplacementMicromapFormatNV - Format enum for displacement micromaps

Description

For compactness, these values are stored as 16-bit in some structures.

See Also

VK_NV_displacement_micromap

Instances6Eq, Ord, Read, Show, Storable, Zero
newtypenewtype MicromapEXT
#
Instances7Eq, Ord, Show, Storable, HasObjectType, IsHandle, …
datadata MicromapUsageEXT
#

VkMicromapUsageEXT - Structure specifying the usage information used to build a micromap

Description

The format is interpreted based on the type of the micromap using it.

See Also

VK_EXT_opacity_micromap, AccelerationStructureTrianglesDisplacementMicromapNV, AccelerationStructureTrianglesOpacityMicromapEXT, MicromapBuildInfoEXT

Constructors

Instances6Eq, Show, Storable, FromCStruct, ToCStruct, Zero

VkBuildAccelerationStructureFlagBitsKHR - Bitmask specifying additional parameters for acceleration structure builds

Description

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.

BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR and BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR are allowed to be used together. In that case, the result of the compaction copy is used as the source of a build with mode of BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR to perform the compacted update.

See Also

VK_KHR_acceleration_structure, VK_NV_ray_tracing, BuildAccelerationStructureFlagsKHR

Instances8Eq, Ord, Read, Show, Bits, FiniteBits, …
newtypenewtype MicromapTypeEXT
#

VkMicromapTypeEXT - Type of micromap

Description

See Also

VK_EXT_opacity_micromap, MicromapBuildInfoEXT, MicromapCreateInfoEXT

Instances6Eq, Ord, Read, Show, Storable, Zero