vulkan-3.15: Bindings to the Vulkan graphics API.
Safe HaskellNone
LanguageHaskell2010

Vulkan.Extensions.VK_KHR_workgroup_memory_explicit_layout

Description

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
Extension and Version Dependencies
  • Requires Vulkan 1.0
  • Requires VK_KHR_get_physical_device_properties2
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
  • Jason 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

PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR

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

data PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR Source #

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. PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR can also be used in the pNext chain of DeviceCreateInfo to selectively enable these features.

Valid Usage (Implicit)

See Also

VK_KHR_workgroup_memory_explicit_layout, Bool32, StructureType

Constructors

PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR 

Fields

  • 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.

Instances

Instances details
Eq PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_workgroup_memory_explicit_layout

Show PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_workgroup_memory_explicit_layout

Storable PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_workgroup_memory_explicit_layout

FromCStruct PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_workgroup_memory_explicit_layout

ToCStruct PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_workgroup_memory_explicit_layout

Zero PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_workgroup_memory_explicit_layout

type KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME = "VK_KHR_workgroup_memory_explicit_layout" Source #