VK_EXT_shader_atomic_float2
Other Extension Metadata
Last Modified Date
2020-08-14
IP Status
No known IP claims.
Interactions and External Dependencies
- This extension provides API support for
GLSL_EXT_shader_atomic_float2
Contributors
- Faith Ekstrand, Intel
Description
This extension allows a shader to perform 16-bit floating-point atomic
operations on buffer and workgroup memory as well as floating-point atomic
minimum and maximum operations on buffer, workgroup, and image memory.
It advertises the SPIR-V AtomicFloat16AddEXT
capability which allows
atomic add operations on 16-bit floating-point numbers and the SPIR-V
AtomicFloat16MinMaxEXT
, AtomicFloat32MinMaxEXT
and
AtomicFloat64MinMaxEXT
capabilities which allow atomic minimum and
maximum operations on floating-point numbers.
The supported operations include OpAtomicFAddEXT
, OpAtomicFMinEXT
and OpAtomicFMaxEXT
.
New Structures
- Extending VkPhysicalDeviceFeatures2, VkDeviceCreateInfo:
New Enum Constants
VK_EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME
VK_EXT_SHADER_ATOMIC_FLOAT_2_SPEC_VERSION
- Extending VkStructureType:
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT
Issues
1) Should this extension add support for 16-bit image atomics?
RESOLVED: No.
While Vulkan supports creating storage images with
VK_FORMAT_R16_SFLOAT
and doing load and store on them, the data in the
shader has a 32-bit representation.
Vulkan currently has no facility for even basic reading or writing such
images using 16-bit float values in the shader.
Adding such functionality would be required before 16-bit image atomics
would make sense and is outside the scope of this extension.
New SPIR-V Capabilities
Version History
- Revision 1, 2020-08-14 (Faith Ekstrand)
- Internal revisions