// Copyright (c) 2018-2020 Google LLC
//
// SPDX-License-Identifier: CC-BY-4.0

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

=== Other Extension Metadata

*Last Modified Date*::
    2018-07-09
*IP Status*::
    No known IP claims.
*Interactions and External Dependencies*::
  - This extension requires
    {spirv}/GOOGLE/SPV_GOOGLE_decorate_string.html[`SPV_GOOGLE_decorate_string`]
*Contributors*::
  - Hai Nguyen, Google
  - Neil Henning, AMD

=== Description

The `VK_GOOGLE_decorate_string` extension allows use of the
`SPV_GOOGLE_decorate_string` extension in SPIR-V shader modules.

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

=== Version History

  * Revision 1, 2018-07-09 (Neil Henning)
    - Initial draft
