// Copyright (c) 2016-2019 Advanced Micro Devices, Inc.
//
// SPDX-License-Identifier: CC-BY-4.0

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

=== Other Extension Metadata

*Last Modified Date*::
    2019-04-11
*IP Status*::
    No known IP claims.
*Interactions and External Dependencies*::
  - This extension requires
    {spirv}/AMD/SPV_AMD_gpu_shader_half_float.html[`SPV_AMD_gpu_shader_half_float`]
*Contributors*::
  - Daniel Rakos, AMD
  - Dominik Witczak, AMD
  - Donglin Wei, AMD
  - Graham Sellers, AMD
  - Qun Lin, AMD
  - Rex Xu, AMD

=== Description

This extension adds support for using half float variables in shaders.

=== Deprecation by `VK_KHR_shader_float16_int8`

Functionality in this extension was included in
`apiext:VK_KHR_shader_float16_int8` extension, when
slink:VkPhysicalDeviceShaderFloat16Int8FeaturesKHR::pname:shaderFloat16 is
enabled.

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

=== Version History

 * Revision 2, 2019-04-11 (Tobias Hector)
   - Marked as deprecated
 * Revision 1, 2016-09-21 (Dominik Witczak)
   - Initial draft
