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

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

=== Other Extension Metadata

*Last Modified Date*::
    2019-01-08
*IP Status*::
    No known IP claims.
*Interactions and External Dependencies*::
  - Promoted to Vulkan 1.2 Core
  - This extension provides API support for
    https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GLSL_EXT_shader_subgroup_extended_types.txt[`GLSL_EXT_shader_subgroup_extended_types`]
*Contributors*::
  - Jeff Bolz, NVIDIA
  - Jan-Harald Fredriksen, Arm
  - Neil Henning, AMD
  - Daniel Koch, NVIDIA
  - Jeff Leger, Qualcomm
  - Graeme Leese, Broadcom
  - David Neto, Google
  - Daniel Rakos, AMD

=== Description

This extension enables the Non Uniform Group Operations in SPIR-V to support
8-bit integer, 16-bit integer, 64-bit integer, 16-bit floating-point, and
vectors of these types.

=== Promotion to Vulkan 1.2

All functionality in this extension is included in core Vulkan 1.2, with the
KHR suffix omitted.
The original type, enum and command names are still available as aliases of
the core functionality.

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

=== Version History

  * Revision 1, 2019-01-08 (Neil Henning)
    - Initial draft
