Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Name
VK_EXT_shader_atomic_float2 - device extension
VK_EXT_shader_atomic_float2
- Name String
VK_EXT_shader_atomic_float2
- Extension Type
- Device extension
- Registered Extension Number
- 274
- Revision
- 1
- Ratification Status
- Not ratified
- Extension and Version Dependencies
- VK_EXT_shader_atomic_float
- Contact
Other Extension Metadata
- Last Modified Date
- 2020-08-14
- IP Status
- No known IP claims.
- Interactions and External Dependencies
- This extension requires the VK_EXT_shader_atomic_float extension.
- This extension requires SPV_EXT_shader_atomic_float_min_max and SPV_EXT_shader_atomic_float16_add
- 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
New Enum Constants
Issues
1) Should this extension add support for 16-bit image atomics?
RESOLVED: No. While Vulkan supports creating storage images with
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
See Also
PhysicalDeviceShaderAtomicFloat2FeaturesEXT
Document Notes
For more information, see the Vulkan Specification
This page is a generated document. Fixes and changes should be made to the generator scripts, not directly.
Synopsis
- data PhysicalDeviceShaderAtomicFloat2FeaturesEXT = PhysicalDeviceShaderAtomicFloat2FeaturesEXT {
- shaderBufferFloat16Atomics :: Bool
- shaderBufferFloat16AtomicAdd :: Bool
- shaderBufferFloat16AtomicMinMax :: Bool
- shaderBufferFloat32AtomicMinMax :: Bool
- shaderBufferFloat64AtomicMinMax :: Bool
- shaderSharedFloat16Atomics :: Bool
- shaderSharedFloat16AtomicAdd :: Bool
- shaderSharedFloat16AtomicMinMax :: Bool
- shaderSharedFloat32AtomicMinMax :: Bool
- shaderSharedFloat64AtomicMinMax :: Bool
- shaderImageFloat32AtomicMinMax :: Bool
- sparseImageFloat32AtomicMinMax :: Bool
- type EXT_SHADER_ATOMIC_FLOAT_2_SPEC_VERSION = 1
- pattern EXT_SHADER_ATOMIC_FLOAT_2_SPEC_VERSION :: forall a. Integral a => a
- type EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME = "VK_EXT_shader_atomic_float2"
- pattern EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a
Documentation
data PhysicalDeviceShaderAtomicFloat2FeaturesEXT Source #
VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT - Structure describing features supported by VK_EXT_shader_atomic_float2
Members
This structure describes the following features:
Description
If the PhysicalDeviceShaderAtomicFloat2FeaturesEXT
structure is
included in the pNext
chain of the
PhysicalDeviceFeatures2
structure passed to
getPhysicalDeviceFeatures2
,
it is filled in to indicate whether each corresponding feature is
supported. PhysicalDeviceShaderAtomicFloat2FeaturesEXT
can also be
used in the pNext
chain of DeviceCreateInfo
to
selectively enable these features.
Valid Usage (Implicit)
See Also
Instances
pattern EXT_SHADER_ATOMIC_FLOAT_2_SPEC_VERSION :: forall a. Integral a => a Source #
type EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME = "VK_EXT_shader_atomic_float2" Source #
pattern EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a Source #