Name Strings

SPV_AMD_gpu_shader_half_float

Contact

See Issues list in the Khronos SPIRV-Registry repository: https://github.com/KhronosGroup/SPIRV-Registry

Contributors

  • Dominik Witczak, AMD

  • Rex Xu, AMD

  • Qun Lin, AMD

  • Daniel Rakos, AMD

  • Donglin Wei, AMD

  • Graham Sellers, AMD

Notice

Copyright (c) 2016 The Khronos Group Inc. Copyright terms at http://www.khronos.org/registry/speccopyright.html

Status

Proposed.

Version

Modified Date: June 12, 2018 Revision: 3

Dependencies

This extension is written against Revision 1 of the version 1.1 of the SPIR-V Specification.

The extension is written against Revision 1 of the OpenGL extension AMD_gpu_shader_half_float.

Overview

This extension is written to provide the functionality of the AMD_gpu_shader_half_float, OpenGL Shading Language Specification extension, for SPIR-V.

This extension introduces 16-bit floating point support to extended instructions described in the GLSL.std.450 extended instruction set.

Extension Name

To enable SPV_AMD_gpu_shader_half_float extension in SPIR-V, use

OpExtension "SPV_AMD_gpu_shader_half_float"

Summary

This extension adds support for 16-bit floating-point component types for the following instructions described in the GLSL.std.450 extended instruction set:

InterpolateAtCentroid
InterpolateAtSample
InterpolateAtOffset

Modifications to the OpenGL Shading Language 4.50 Extended Instruction Set Specification, Version 1.00

Modify Section 2, Binary Form

InterpolateAtCentroid

(Replace the following sentence:)

The operand interpolant must be a pointer to a scalar or vector whose component type is 32-bit floating-point.

(with:)

The operand interpolant must be a pointer to a scalar or vector whose component type is 16- or 32-bit floating-point.

InterpolateAtSample

(Replace the following sentence:)

The operand interpolant must be a pointer to a scalar or vector whose component type is 32-bit floating-point.

(with:)

The operand interpolant must be a pointer to a scalar or vector whose component type is 16- or 32-bit floating-point.

InterpolateAtOffset

(Replace the following sentence:)

The operand interpolant must be a pointer to a scalar or vector whose component type is 32-bit floating-point.

(with:)

The operand interpolant must be a pointer to a scalar or vector whose component type is 16- or 32-bit floating-point.


(Replace the following sentence:)

The offset operand must be a vector of 2 components of 32-bit floating-point type.

(with:)

The offset operand must be a vector of 2 components of 16- or 32-bit floating-point type.

Validation Rules

None.

Issues

None

Revision History

Rev Date Author Changes

3

June 12, 2018

Dominik Witczak

Removenon-interpolate extended instruction modifications, as GLSL.std.450 spec now includes these changes.

2

June 22, 2017

Dominik Witczak

Removed incorrect language regarding accessing the new functionality.

1

September 21, 2016

Dominik Witczak

Initial revision based on AMD_gpu_shader_half_float.