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

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

=== Other Extension Metadata

*Last Modified Date*::
    2017-09-05
*IP Status*::
    No known IP claims.
*Interactions and External Dependencies*::
  - This extension requires
    {spirv}/KHR/SPV_KHR_storage_buffer_storage_class.html[`SPV_KHR_storage_buffer_storage_class`]
  - Promoted to Vulkan 1.1 Core
*Contributors*::
  - Alexander Galazin, ARM
  - David Neto, Google

=== Description

This extension adds support for the following SPIR-V extension in Vulkan:

  * `SPV_KHR_storage_buffer_storage_class`

This extension provides a new SPIR-V code:StorageBuffer storage class.
A code:Block-decorated object in this class is equivalent to a
code:BufferBlock-decorated object in the code:Uniform storage class.

=== Promotion to Vulkan 1.1

All functionality in this extension is included in core Vulkan 1.1.

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

=== Version History

  * Revision 1, 2017-03-23 (Alexander Galazin)
    - Initial draft
