VK_KHR_workgroup_memory_explicit_layout
Other Extension Metadata
Last Modified Date
2020-06-01
IP Status
No known IP claims.
Interactions and External Dependencies
- This extension provides API support for
GL_EXT_shared_memory_block
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
- Extending VkPhysicalDeviceFeatures2, VkDeviceCreateInfo:
New Enum Constants
VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME
VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_SPEC_VERSION
- Extending VkStructureType:
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR
New SPIR-V Capabilities
WorkgroupMemoryExplicitLayoutKHR
WorkgroupMemoryExplicitLayout8BitAccessKHR
WorkgroupMemoryExplicitLayout16BitAccessKHR
Version History
- Revision 1, 2020-06-01 (Caio Marcelo de Oliveira Filho)
- Initial version