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

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

=== Other Extension Metadata

*Last Modified Date*::
    2020-11-18
*IP Status*::
    No known IP claims.
*Interactions and External Dependencies*::
    None
*Contributors*::
  - Alan Baker, Google
  - Jeff Bolz, Nvidia
  - Jason Ekstrand, Intel

=== Description

This extension allows the use of a null constant initializer on shader
Workgroup memory variables, allowing implementations to expose any special
hardware or instructions they may have.
Zero initialization is commonly used by applications running untrusted
content (e.g. web browsers) as way of defeating memory-scraping attacks.

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

=== Version History

  * Revision 1, 2020-11-18 (Alan Baker)
    - Internal draft version

