Structures

VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT

Structure describing features supported by VK_EXT_shader_atomic_float2

The VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT structure is defined as:

typedef struct VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT {
    VkStructureType sType;
    void* pNext;
    VkBool32 shaderBufferFloat16Atomics;
    VkBool32 shaderBufferFloat16AtomicAdd;
    VkBool32 shaderBufferFloat16AtomicMinMax;
    VkBool32 shaderBufferFloat32AtomicMinMax;
    VkBool32 shaderBufferFloat64AtomicMinMax;
    VkBool32 shaderSharedFloat16Atomics;
    VkBool32 shaderSharedFloat16AtomicAdd;
    VkBool32 shaderSharedFloat16AtomicMinMax;
    VkBool32 shaderSharedFloat32AtomicMinMax;
    VkBool32 shaderSharedFloat64AtomicMinMax;
    VkBool32 shaderImageFloat32AtomicMinMax;
    VkBool32 sparseImageFloat32AtomicMinMax;
} VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT;

This structure describes the following features:

  • sType is a VkStructureType value identifying this structure.
  • pNext is NULL or a pointer to a structure extending this structure.
  • shaderBufferFloat16Atomics indicates whether shaders can perform 16-bit floating-point load, store, and exchange atomic operations on storage buffers.
  • shaderBufferFloat16AtomicAdd indicates whether shaders can perform 16-bit floating-point add atomic operations on storage buffers.
  • shaderBufferFloat16AtomicMinMax indicates whether shaders can perform 16-bit floating-point min and max atomic operations on storage buffers.
  • shaderBufferFloat32AtomicMinMax indicates whether shaders can perform 32-bit floating-point min and max atomic operations on storage buffers.
  • shaderBufferFloat64AtomicMinMax indicates whether shaders can perform 64-bit floating-point min and max atomic operations on storage buffers.
  • shaderSharedFloat16Atomics indicates whether shaders can perform 16-bit floating-point load, store and exchange atomic operations on shared and payload memory.
  • shaderSharedFloat16AtomicAdd indicates whether shaders can perform 16-bit floating-point add atomic operations on shared and payload memory.
  • shaderSharedFloat16AtomicMinMax indicates whether shaders can perform 16-bit floating-point min and max atomic operations on shared and payload memory.
  • shaderSharedFloat32AtomicMinMax indicates whether shaders can perform 32-bit floating-point min and max atomic operations on shared and payload memory.
  • shaderSharedFloat64AtomicMinMax indicates whether shaders can perform 64-bit floating-point min and max atomic operations on shared and payload memory.
  • shaderImageFloat32AtomicMinMax indicates whether shaders can perform 32-bit floating-point min and max atomic image operations.
  • sparseImageFloat32AtomicMinMax indicates whether 32-bit floating-point min and max atomic operations can be used on sparse images.

If the VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT structure is included in the pNext chain of the VkPhysicalDeviceFeatures2 structure passed to vkGetPhysicalDeviceFeatures2, it is filled in to indicate whether each corresponding feature is supported. VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT can also be used in the pNext chain of VkDeviceCreateInfo to selectively enable these features.

Valid Usage (Implicit)

VUID-VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT-sType-sType

sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT