Dependencies
This extension is written against the SPIR-V Specification, Version 1.5 Revision 2.
This extension requires SPIR-V 1.0.
Extension Name
To use this extension within a SPIR-V module, the following OpExtension must be present in the module:
OpExtension "SPV_EXT_shader_atomic_float_min_max"
New Capabilities
This extension introduces new capabilities:
AtomicFloat16MinMaxEXT AtomicFloat32MinMaxEXT AtomicFloat64MinMaxEXT
Modifications to the SPIR-V Specification, Version 1.5
Modify Section 3.31, "Capability", adding this row to the Capability table:
| Capability | Implicitly Declares | |
|---|---|---|
5616 |
AtomicFloat16MinMaxEXT |
|
5612 |
AtomicFloat32MinMaxEXT |
|
5613 |
AtomicFloat64MinMaxEXT |
|
(Modify section 3.32.18, Atomic Instructions, adding to the end of the list of instructions)
New Instructions
Instructions added under AtomicFloat16MinMaxEXT, AtomicFloat32MinMaxEXT, or AtomicFloat64MinMaxEXT capability:
OpAtomicFMinEXT OpAtomicFMaxEXT
Validation Rules
An OpExtension must be added to the SPIR-V for validation layers to check legal use of this extension:
OpExtension "SPV_EXT_shader_atomic_float_min_max"
-
When using OpAtomicFMinEXT or OpAtomicFMaxEXT only 16-, 32-, or 64-bit floating-point values are allowed.
-
If OpAtomicFMinEXT or OpAtomicFMaxEXT is used with 16-bit floating-point values, the AtomicFloat16MinMaxEXT capability must be declared.
-
If OpAtomicFMinEXT or OpAtomicFMaxEXT is used with 32-bit floating-point values, the AtomicFloat32MinMaxEXT capability must be declared.
-
If OpAtomicFMinEXT or OpAtomicFMaxEXT is used with 64-bit floating-point values, the AtomicFloat64MinMaxEXT capability must be declared.