// Copyright 2016-2021 The Khronos Group, Inc.
//
// SPDX-License-Identifier: CC-BY-4.0

include::{generated}/meta/{refprefix}VK_KHR_workgroup_memory_explicit_layout.txt[]

=== Other Extension Metadata

*Last Modified Date*::
    2020-06-01
*IP Status*::
    No known IP claims.
*Interactions and External Dependencies*::
 - This extension requires
   {spirv}/KHR/SPV_KHR_workgroup_memory_explicit_layout.html[`SPV_KHR_workgroup_memory_explicit_layout`]
*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
{spirv}/KHR/SPV_KHR_workgroup_memory_explicit_layout.html[`SPV_KHR_workgroup_memory_explicit_layout`]
SPIR-V extension, which allows shaders to explicitly define the layout of
code: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.

include::{generated}/interfaces/VK_KHR_workgroup_memory_explicit_layout.txt[]

=== New SPIR-V Capabilities

 * <<spirvenv-capabilities-table-WorkgroupMemoryExplicitLayoutKHR,
   code:WorkgroupMemoryExplicitLayoutKHR>>
 * <<spirvenv-capabilities-table-WorkgroupMemoryExplicitLayout8BitAccessKHR,
   code:WorkgroupMemoryExplicitLayout8BitAccessKHR>>
 * <<spirvenv-capabilities-table-WorkgroupMemoryExplicitLayout16BitAccessKHR,
   code:WorkgroupMemoryExplicitLayout16BitAccessKHR>>

=== Version History

 * Revision 1, 2020-06-01 (Caio Marcelo de Oliveira Filho)
   - Initial version
