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_KHR_workgroup_memory_explicit_layout

Name

VK_KHR_workgroup_memory_explicit_layout - device extension

VK_KHR_workgroup_memory_explicit_layout

Name String

VK_KHR_workgroup_memory_explicit_layout

Extension Type

Device extension

Registered Extension Number

337

Revision

1

Ratification Status

Ratified

Extension and Version Dependencies

VK_KHR_get_physical_device_properties2

or

Vulkan Version 1.1

SPIR-V Dependencies
Contact

Other Extension Metadata

Last Modified Date

2020-06-01

IP Status

No known IP claims.

Interactions and External Dependencies
Contributors
  • Caio Marcelo de Oliveira Filho, Intel

  • Jeff Bolz, NVIDIA

  • Graeme Leese, Broadcom

  • Faith Ekstrand, Intel

  • Daniel Koch, NVIDIA

Description

This extension adds Vulkan support for the SPV_KHR_workgroup_memory_explicit_layout SPIR-V extension, which allows shaders to explicitly define the layout of Workgroup storage class memory and create aliases between variables from that storage class in a compute shader.

The aliasing feature allows different “views” on the same data, so the shader can bulk copy data from another storage class using one type (e.g. an array of large vectors), and then use the data with a more specific type. It also enables reducing the amount of workgroup memory consumed by allowing the shader to alias data whose lifetimes do not overlap.

The explicit layout support and some form of aliasing is also required for layering OpenCL on top of Vulkan.

New Structures

New Enum Constants

New SPIR-V Capabilities

Version History

  • Revision 1, 2020-06-01 (Caio Marcelo de Oliveira Filho)

    • Initial version

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.

  • 3 types
  • Packagevulkan-3.27
  • Exports5
  • LanguageGHC2021
  • LicenceBSD-3-Clause
  • SourceVK_KHR_workgroup_memory_explicit_layout.hs

VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR - Structure describing the workgroup storage explicit layout features that can be supported by an implementation

Members

This structure describes the following features:

Description

If the PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR 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 PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR, 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_workgroup_memory_explicit_layout, Bool32, StructureType

Constructors

  • PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR
    • workgroupMemoryExplicitLayout :: Bool

      workgroupMemoryExplicitLayout indicates whether the implementation supports the SPIR-V WorkgroupMemoryExplicitLayoutKHR capability.

    • workgroupMemoryExplicitLayoutScalarBlockLayout :: Bool

      workgroupMemoryExplicitLayoutScalarBlockLayout indicates whether the implementation supports scalar alignment for laying out Workgroup Blocks.

    • workgroupMemoryExplicitLayout8BitAccess :: Bool

      workgroupMemoryExplicitLayout8BitAccess indicates whether objects in the Workgroup storage class with the Block decoration can have 8-bit integer members. If this feature is not enabled, 8-bit integer members must not be used in such objects. This also indicates whether shader modules can declare the WorkgroupMemoryExplicitLayout8BitAccessKHR capability.

    • workgroupMemoryExplicitLayout16BitAccess :: Bool

      workgroupMemoryExplicitLayout16BitAccess indicates whether objects in the Workgroup storage class with the Block decoration can have 16-bit integer and 16-bit floating-point members. If this feature is not enabled, 16-bit integer or 16-bit floating-point members must not be used in such objects. This also indicates whether shader modules can declare the WorkgroupMemoryExplicitLayout16BitAccessKHR capability.

Instances6Eq, Show, Storable, FromCStruct, ToCStruct, Zero