content: {-# OPTIONS_HADDOCK ignore-exports#-}
  {-# LANGUAGE DataKinds                  #-}
  {-# LANGUAGE FlexibleInstances          #-}
  {-# LANGUAGE GeneralizedNewtypeDeriving #-}
  {-# LANGUAGE KindSignatures             #-}
  {-# LANGUAGE PatternSynonyms            #-}
  {-# LANGUAGE StandaloneDeriving         #-}
  {-# LANGUAGE Strict                     #-}
  {-# LANGUAGE TypeSynonymInstances       #-}
  module Graphics.Vulkan.Types.Enum.Format
         (VkFormat(VkFormat, VK_FORMAT_UNDEFINED,
                   VK_FORMAT_R4G4_UNORM_PACK8, VK_FORMAT_R4G4B4A4_UNORM_PACK16,
                   VK_FORMAT_B4G4R4A4_UNORM_PACK16, VK_FORMAT_R5G6B5_UNORM_PACK16,
                   VK_FORMAT_B5G6R5_UNORM_PACK16, VK_FORMAT_R5G5B5A1_UNORM_PACK16,
                   VK_FORMAT_B5G5R5A1_UNORM_PACK16, VK_FORMAT_A1R5G5B5_UNORM_PACK16,
                   VK_FORMAT_R8_UNORM, VK_FORMAT_R8_SNORM, VK_FORMAT_R8_USCALED,
                   VK_FORMAT_R8_SSCALED, VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT,
                   VK_FORMAT_R8_SRGB, VK_FORMAT_R8G8_UNORM, VK_FORMAT_R8G8_SNORM,
                   VK_FORMAT_R8G8_USCALED, VK_FORMAT_R8G8_SSCALED,
                   VK_FORMAT_R8G8_UINT, VK_FORMAT_R8G8_SINT, VK_FORMAT_R8G8_SRGB,
                   VK_FORMAT_R8G8B8_UNORM, VK_FORMAT_R8G8B8_SNORM,
                   VK_FORMAT_R8G8B8_USCALED, VK_FORMAT_R8G8B8_SSCALED,
                   VK_FORMAT_R8G8B8_UINT, VK_FORMAT_R8G8B8_SINT,
                   VK_FORMAT_R8G8B8_SRGB, VK_FORMAT_B8G8R8_UNORM,
                   VK_FORMAT_B8G8R8_SNORM, VK_FORMAT_B8G8R8_USCALED,
                   VK_FORMAT_B8G8R8_SSCALED, VK_FORMAT_B8G8R8_UINT,
                   VK_FORMAT_B8G8R8_SINT, VK_FORMAT_B8G8R8_SRGB,
                   VK_FORMAT_R8G8B8A8_UNORM, VK_FORMAT_R8G8B8A8_SNORM,
                   VK_FORMAT_R8G8B8A8_USCALED, VK_FORMAT_R8G8B8A8_SSCALED,
                   VK_FORMAT_R8G8B8A8_UINT, VK_FORMAT_R8G8B8A8_SINT,
                   VK_FORMAT_R8G8B8A8_SRGB, VK_FORMAT_B8G8R8A8_UNORM,
                   VK_FORMAT_B8G8R8A8_SNORM, VK_FORMAT_B8G8R8A8_USCALED,
                   VK_FORMAT_B8G8R8A8_SSCALED, VK_FORMAT_B8G8R8A8_UINT,
                   VK_FORMAT_B8G8R8A8_SINT, VK_FORMAT_B8G8R8A8_SRGB,
                   VK_FORMAT_A8B8G8R8_UNORM_PACK32, VK_FORMAT_A8B8G8R8_SNORM_PACK32,
                   VK_FORMAT_A8B8G8R8_USCALED_PACK32,
                   VK_FORMAT_A8B8G8R8_SSCALED_PACK32, VK_FORMAT_A8B8G8R8_UINT_PACK32,
                   VK_FORMAT_A8B8G8R8_SINT_PACK32, VK_FORMAT_A8B8G8R8_SRGB_PACK32,
                   VK_FORMAT_A2R10G10B10_UNORM_PACK32,
                   VK_FORMAT_A2R10G10B10_SNORM_PACK32,
                   VK_FORMAT_A2R10G10B10_USCALED_PACK32,
                   VK_FORMAT_A2R10G10B10_SSCALED_PACK32,
                   VK_FORMAT_A2R10G10B10_UINT_PACK32,
                   VK_FORMAT_A2R10G10B10_SINT_PACK32,
                   VK_FORMAT_A2B10G10R10_UNORM_PACK32,
                   VK_FORMAT_A2B10G10R10_SNORM_PACK32,
                   VK_FORMAT_A2B10G10R10_USCALED_PACK32,
                   VK_FORMAT_A2B10G10R10_SSCALED_PACK32,
                   VK_FORMAT_A2B10G10R10_UINT_PACK32,
                   VK_FORMAT_A2B10G10R10_SINT_PACK32, VK_FORMAT_R16_UNORM,
                   VK_FORMAT_R16_SNORM, VK_FORMAT_R16_USCALED, VK_FORMAT_R16_SSCALED,
                   VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R16_SFLOAT,
                   VK_FORMAT_R16G16_UNORM, VK_FORMAT_R16G16_SNORM,
                   VK_FORMAT_R16G16_USCALED, VK_FORMAT_R16G16_SSCALED,
                   VK_FORMAT_R16G16_UINT, VK_FORMAT_R16G16_SINT,
                   VK_FORMAT_R16G16_SFLOAT, VK_FORMAT_R16G16B16_UNORM,
                   VK_FORMAT_R16G16B16_SNORM, VK_FORMAT_R16G16B16_USCALED,
                   VK_FORMAT_R16G16B16_SSCALED, VK_FORMAT_R16G16B16_UINT,
                   VK_FORMAT_R16G16B16_SINT, VK_FORMAT_R16G16B16_SFLOAT,
                   VK_FORMAT_R16G16B16A16_UNORM, VK_FORMAT_R16G16B16A16_SNORM,
                   VK_FORMAT_R16G16B16A16_USCALED, VK_FORMAT_R16G16B16A16_SSCALED,
                   VK_FORMAT_R16G16B16A16_UINT, VK_FORMAT_R16G16B16A16_SINT,
                   VK_FORMAT_R16G16B16A16_SFLOAT, VK_FORMAT_R32_UINT,
                   VK_FORMAT_R32_SINT, VK_FORMAT_R32_SFLOAT, VK_FORMAT_R32G32_UINT,
                   VK_FORMAT_R32G32_SINT, VK_FORMAT_R32G32_SFLOAT,
                   VK_FORMAT_R32G32B32_UINT, VK_FORMAT_R32G32B32_SINT,
                   VK_FORMAT_R32G32B32_SFLOAT, VK_FORMAT_R32G32B32A32_UINT,
                   VK_FORMAT_R32G32B32A32_SINT, VK_FORMAT_R32G32B32A32_SFLOAT,
                   VK_FORMAT_R64_UINT, VK_FORMAT_R64_SINT, VK_FORMAT_R64_SFLOAT,
                   VK_FORMAT_R64G64_UINT, VK_FORMAT_R64G64_SINT,
                   VK_FORMAT_R64G64_SFLOAT, VK_FORMAT_R64G64B64_UINT,
                   VK_FORMAT_R64G64B64_SINT, VK_FORMAT_R64G64B64_SFLOAT,
                   VK_FORMAT_R64G64B64A64_UINT, VK_FORMAT_R64G64B64A64_SINT,
                   VK_FORMAT_R64G64B64A64_SFLOAT, VK_FORMAT_B10G11R11_UFLOAT_PACK32,
                   VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, VK_FORMAT_D16_UNORM,
                   VK_FORMAT_X8_D24_UNORM_PACK32, VK_FORMAT_D32_SFLOAT,
                   VK_FORMAT_S8_UINT, VK_FORMAT_D16_UNORM_S8_UINT,
                   VK_FORMAT_D24_UNORM_S8_UINT, VK_FORMAT_D32_SFLOAT_S8_UINT,
                   VK_FORMAT_BC1_RGB_UNORM_BLOCK, VK_FORMAT_BC1_RGB_SRGB_BLOCK,
                   VK_FORMAT_BC1_RGBA_UNORM_BLOCK, VK_FORMAT_BC1_RGBA_SRGB_BLOCK,
                   VK_FORMAT_BC2_UNORM_BLOCK, VK_FORMAT_BC2_SRGB_BLOCK,
                   VK_FORMAT_BC3_UNORM_BLOCK, VK_FORMAT_BC3_SRGB_BLOCK,
                   VK_FORMAT_BC4_UNORM_BLOCK, VK_FORMAT_BC4_SNORM_BLOCK,
                   VK_FORMAT_BC5_UNORM_BLOCK, VK_FORMAT_BC5_SNORM_BLOCK,
                   VK_FORMAT_BC6H_UFLOAT_BLOCK, VK_FORMAT_BC6H_SFLOAT_BLOCK,
                   VK_FORMAT_BC7_UNORM_BLOCK, VK_FORMAT_BC7_SRGB_BLOCK,
                   VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK,
                   VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK,
                   VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK,
                   VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK,
                   VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK,
                   VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK, VK_FORMAT_EAC_R11_UNORM_BLOCK,
                   VK_FORMAT_EAC_R11_SNORM_BLOCK, VK_FORMAT_EAC_R11G11_UNORM_BLOCK,
                   VK_FORMAT_EAC_R11G11_SNORM_BLOCK, VK_FORMAT_ASTC_4x4_UNORM_BLOCK,
                   VK_FORMAT_ASTC_4x4_SRGB_BLOCK, VK_FORMAT_ASTC_5x4_UNORM_BLOCK,
                   VK_FORMAT_ASTC_5x4_SRGB_BLOCK, VK_FORMAT_ASTC_5x5_UNORM_BLOCK,
                   VK_FORMAT_ASTC_5x5_SRGB_BLOCK, VK_FORMAT_ASTC_6x5_UNORM_BLOCK,
                   VK_FORMAT_ASTC_6x5_SRGB_BLOCK, VK_FORMAT_ASTC_6x6_UNORM_BLOCK,
                   VK_FORMAT_ASTC_6x6_SRGB_BLOCK, VK_FORMAT_ASTC_8x5_UNORM_BLOCK,
                   VK_FORMAT_ASTC_8x5_SRGB_BLOCK, VK_FORMAT_ASTC_8x6_UNORM_BLOCK,
                   VK_FORMAT_ASTC_8x6_SRGB_BLOCK, VK_FORMAT_ASTC_8x8_UNORM_BLOCK,
                   VK_FORMAT_ASTC_8x8_SRGB_BLOCK, VK_FORMAT_ASTC_10x5_UNORM_BLOCK,
                   VK_FORMAT_ASTC_10x5_SRGB_BLOCK, VK_FORMAT_ASTC_10x6_UNORM_BLOCK,
                   VK_FORMAT_ASTC_10x6_SRGB_BLOCK, VK_FORMAT_ASTC_10x8_UNORM_BLOCK,
                   VK_FORMAT_ASTC_10x8_SRGB_BLOCK, VK_FORMAT_ASTC_10x10_UNORM_BLOCK,
                   VK_FORMAT_ASTC_10x10_SRGB_BLOCK, VK_FORMAT_ASTC_12x10_UNORM_BLOCK,
                   VK_FORMAT_ASTC_12x10_SRGB_BLOCK, VK_FORMAT_ASTC_12x12_UNORM_BLOCK,
                   VK_FORMAT_ASTC_12x12_SRGB_BLOCK),
          VkFormatFeatureBitmask(VkFormatFeatureBitmask,
                                 VkFormatFeatureFlags, VkFormatFeatureFlagBits,
                                 VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT,
                                 VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT,
                                 VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT,
                                 VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT,
                                 VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT,
                                 VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT,
                                 VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT,
                                 VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT,
                                 VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT,
                                 VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT,
                                 VK_FORMAT_FEATURE_BLIT_SRC_BIT, VK_FORMAT_FEATURE_BLIT_DST_BIT,
                                 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT),
          VkFormatFeatureFlags, VkFormatFeatureFlagBits)
         where
  import Data.Bits                       (Bits, FiniteBits)
  import Foreign.Storable                (Storable)
  import GHC.Read                        (choose, expectP)
  import Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType, Int32)
  import Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
  import Text.ParserCombinators.ReadPrec (prec, step, (+++))
  import Text.Read                       (Read (..), parens)
  import Text.Read.Lex                   (Lexeme (..))
  
  -- | Vulkan format definitions
  --
  --   type = @enum@
  --
  --
  --   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormat VkFormat registry at www.khronos.org>
  newtype VkFormat = VkFormat Int32
                     deriving (Eq, Ord, Enum, Storable)
  
  instance Show VkFormat where
      showsPrec _ VK_FORMAT_UNDEFINED = showString "VK_FORMAT_UNDEFINED"
      showsPrec _ VK_FORMAT_R4G4_UNORM_PACK8
        = showString "VK_FORMAT_R4G4_UNORM_PACK8"
      showsPrec _ VK_FORMAT_R4G4B4A4_UNORM_PACK16
        = showString "VK_FORMAT_R4G4B4A4_UNORM_PACK16"
      showsPrec _ VK_FORMAT_B4G4R4A4_UNORM_PACK16
        = showString "VK_FORMAT_B4G4R4A4_UNORM_PACK16"
      showsPrec _ VK_FORMAT_R5G6B5_UNORM_PACK16
        = showString "VK_FORMAT_R5G6B5_UNORM_PACK16"
      showsPrec _ VK_FORMAT_B5G6R5_UNORM_PACK16
        = showString "VK_FORMAT_B5G6R5_UNORM_PACK16"
      showsPrec _ VK_FORMAT_R5G5B5A1_UNORM_PACK16
        = showString "VK_FORMAT_R5G5B5A1_UNORM_PACK16"
      showsPrec _ VK_FORMAT_B5G5R5A1_UNORM_PACK16
        = showString "VK_FORMAT_B5G5R5A1_UNORM_PACK16"
      showsPrec _ VK_FORMAT_A1R5G5B5_UNORM_PACK16
        = showString "VK_FORMAT_A1R5G5B5_UNORM_PACK16"
      showsPrec _ VK_FORMAT_R8_UNORM = showString "VK_FORMAT_R8_UNORM"
      showsPrec _ VK_FORMAT_R8_SNORM = showString "VK_FORMAT_R8_SNORM"
      showsPrec _ VK_FORMAT_R8_USCALED
        = showString "VK_FORMAT_R8_USCALED"
      showsPrec _ VK_FORMAT_R8_SSCALED
        = showString "VK_FORMAT_R8_SSCALED"
      showsPrec _ VK_FORMAT_R8_UINT = showString "VK_FORMAT_R8_UINT"
      showsPrec _ VK_FORMAT_R8_SINT = showString "VK_FORMAT_R8_SINT"
      showsPrec _ VK_FORMAT_R8_SRGB = showString "VK_FORMAT_R8_SRGB"
      showsPrec _ VK_FORMAT_R8G8_UNORM
        = showString "VK_FORMAT_R8G8_UNORM"
      showsPrec _ VK_FORMAT_R8G8_SNORM
        = showString "VK_FORMAT_R8G8_SNORM"
      showsPrec _ VK_FORMAT_R8G8_USCALED
        = showString "VK_FORMAT_R8G8_USCALED"
      showsPrec _ VK_FORMAT_R8G8_SSCALED
        = showString "VK_FORMAT_R8G8_SSCALED"
      showsPrec _ VK_FORMAT_R8G8_UINT = showString "VK_FORMAT_R8G8_UINT"
      showsPrec _ VK_FORMAT_R8G8_SINT = showString "VK_FORMAT_R8G8_SINT"
      showsPrec _ VK_FORMAT_R8G8_SRGB = showString "VK_FORMAT_R8G8_SRGB"
      showsPrec _ VK_FORMAT_R8G8B8_UNORM
        = showString "VK_FORMAT_R8G8B8_UNORM"
      showsPrec _ VK_FORMAT_R8G8B8_SNORM
        = showString "VK_FORMAT_R8G8B8_SNORM"
      showsPrec _ VK_FORMAT_R8G8B8_USCALED
        = showString "VK_FORMAT_R8G8B8_USCALED"
      showsPrec _ VK_FORMAT_R8G8B8_SSCALED
        = showString "VK_FORMAT_R8G8B8_SSCALED"
      showsPrec _ VK_FORMAT_R8G8B8_UINT
        = showString "VK_FORMAT_R8G8B8_UINT"
      showsPrec _ VK_FORMAT_R8G8B8_SINT
        = showString "VK_FORMAT_R8G8B8_SINT"
      showsPrec _ VK_FORMAT_R8G8B8_SRGB
        = showString "VK_FORMAT_R8G8B8_SRGB"
      showsPrec _ VK_FORMAT_B8G8R8_UNORM
        = showString "VK_FORMAT_B8G8R8_UNORM"
      showsPrec _ VK_FORMAT_B8G8R8_SNORM
        = showString "VK_FORMAT_B8G8R8_SNORM"
      showsPrec _ VK_FORMAT_B8G8R8_USCALED
        = showString "VK_FORMAT_B8G8R8_USCALED"
      showsPrec _ VK_FORMAT_B8G8R8_SSCALED
        = showString "VK_FORMAT_B8G8R8_SSCALED"
      showsPrec _ VK_FORMAT_B8G8R8_UINT
        = showString "VK_FORMAT_B8G8R8_UINT"
      showsPrec _ VK_FORMAT_B8G8R8_SINT
        = showString "VK_FORMAT_B8G8R8_SINT"
      showsPrec _ VK_FORMAT_B8G8R8_SRGB
        = showString "VK_FORMAT_B8G8R8_SRGB"
      showsPrec _ VK_FORMAT_R8G8B8A8_UNORM
        = showString "VK_FORMAT_R8G8B8A8_UNORM"
      showsPrec _ VK_FORMAT_R8G8B8A8_SNORM
        = showString "VK_FORMAT_R8G8B8A8_SNORM"
      showsPrec _ VK_FORMAT_R8G8B8A8_USCALED
        = showString "VK_FORMAT_R8G8B8A8_USCALED"
      showsPrec _ VK_FORMAT_R8G8B8A8_SSCALED
        = showString "VK_FORMAT_R8G8B8A8_SSCALED"
      showsPrec _ VK_FORMAT_R8G8B8A8_UINT
        = showString "VK_FORMAT_R8G8B8A8_UINT"
      showsPrec _ VK_FORMAT_R8G8B8A8_SINT
        = showString "VK_FORMAT_R8G8B8A8_SINT"
      showsPrec _ VK_FORMAT_R8G8B8A8_SRGB
        = showString "VK_FORMAT_R8G8B8A8_SRGB"
      showsPrec _ VK_FORMAT_B8G8R8A8_UNORM
        = showString "VK_FORMAT_B8G8R8A8_UNORM"
      showsPrec _ VK_FORMAT_B8G8R8A8_SNORM
        = showString "VK_FORMAT_B8G8R8A8_SNORM"
      showsPrec _ VK_FORMAT_B8G8R8A8_USCALED
        = showString "VK_FORMAT_B8G8R8A8_USCALED"
      showsPrec _ VK_FORMAT_B8G8R8A8_SSCALED
        = showString "VK_FORMAT_B8G8R8A8_SSCALED"
      showsPrec _ VK_FORMAT_B8G8R8A8_UINT
        = showString "VK_FORMAT_B8G8R8A8_UINT"
      showsPrec _ VK_FORMAT_B8G8R8A8_SINT
        = showString "VK_FORMAT_B8G8R8A8_SINT"
      showsPrec _ VK_FORMAT_B8G8R8A8_SRGB
        = showString "VK_FORMAT_B8G8R8A8_SRGB"
      showsPrec _ VK_FORMAT_A8B8G8R8_UNORM_PACK32
        = showString "VK_FORMAT_A8B8G8R8_UNORM_PACK32"
      showsPrec _ VK_FORMAT_A8B8G8R8_SNORM_PACK32
        = showString "VK_FORMAT_A8B8G8R8_SNORM_PACK32"
      showsPrec _ VK_FORMAT_A8B8G8R8_USCALED_PACK32
        = showString "VK_FORMAT_A8B8G8R8_USCALED_PACK32"
      showsPrec _ VK_FORMAT_A8B8G8R8_SSCALED_PACK32
        = showString "VK_FORMAT_A8B8G8R8_SSCALED_PACK32"
      showsPrec _ VK_FORMAT_A8B8G8R8_UINT_PACK32
        = showString "VK_FORMAT_A8B8G8R8_UINT_PACK32"
      showsPrec _ VK_FORMAT_A8B8G8R8_SINT_PACK32
        = showString "VK_FORMAT_A8B8G8R8_SINT_PACK32"
      showsPrec _ VK_FORMAT_A8B8G8R8_SRGB_PACK32
        = showString "VK_FORMAT_A8B8G8R8_SRGB_PACK32"
      showsPrec _ VK_FORMAT_A2R10G10B10_UNORM_PACK32
        = showString "VK_FORMAT_A2R10G10B10_UNORM_PACK32"
      showsPrec _ VK_FORMAT_A2R10G10B10_SNORM_PACK32
        = showString "VK_FORMAT_A2R10G10B10_SNORM_PACK32"
      showsPrec _ VK_FORMAT_A2R10G10B10_USCALED_PACK32
        = showString "VK_FORMAT_A2R10G10B10_USCALED_PACK32"
      showsPrec _ VK_FORMAT_A2R10G10B10_SSCALED_PACK32
        = showString "VK_FORMAT_A2R10G10B10_SSCALED_PACK32"
      showsPrec _ VK_FORMAT_A2R10G10B10_UINT_PACK32
        = showString "VK_FORMAT_A2R10G10B10_UINT_PACK32"
      showsPrec _ VK_FORMAT_A2R10G10B10_SINT_PACK32
        = showString "VK_FORMAT_A2R10G10B10_SINT_PACK32"
      showsPrec _ VK_FORMAT_A2B10G10R10_UNORM_PACK32
        = showString "VK_FORMAT_A2B10G10R10_UNORM_PACK32"
      showsPrec _ VK_FORMAT_A2B10G10R10_SNORM_PACK32
        = showString "VK_FORMAT_A2B10G10R10_SNORM_PACK32"
      showsPrec _ VK_FORMAT_A2B10G10R10_USCALED_PACK32
        = showString "VK_FORMAT_A2B10G10R10_USCALED_PACK32"
      showsPrec _ VK_FORMAT_A2B10G10R10_SSCALED_PACK32
        = showString "VK_FORMAT_A2B10G10R10_SSCALED_PACK32"
      showsPrec _ VK_FORMAT_A2B10G10R10_UINT_PACK32
        = showString "VK_FORMAT_A2B10G10R10_UINT_PACK32"
      showsPrec _ VK_FORMAT_A2B10G10R10_SINT_PACK32
        = showString "VK_FORMAT_A2B10G10R10_SINT_PACK32"
      showsPrec _ VK_FORMAT_R16_UNORM = showString "VK_FORMAT_R16_UNORM"
      showsPrec _ VK_FORMAT_R16_SNORM = showString "VK_FORMAT_R16_SNORM"
      showsPrec _ VK_FORMAT_R16_USCALED
        = showString "VK_FORMAT_R16_USCALED"
      showsPrec _ VK_FORMAT_R16_SSCALED
        = showString "VK_FORMAT_R16_SSCALED"
      showsPrec _ VK_FORMAT_R16_UINT = showString "VK_FORMAT_R16_UINT"
      showsPrec _ VK_FORMAT_R16_SINT = showString "VK_FORMAT_R16_SINT"
      showsPrec _ VK_FORMAT_R16_SFLOAT
        = showString "VK_FORMAT_R16_SFLOAT"
      showsPrec _ VK_FORMAT_R16G16_UNORM
        = showString "VK_FORMAT_R16G16_UNORM"
      showsPrec _ VK_FORMAT_R16G16_SNORM
        = showString "VK_FORMAT_R16G16_SNORM"
      showsPrec _ VK_FORMAT_R16G16_USCALED
        = showString "VK_FORMAT_R16G16_USCALED"
      showsPrec _ VK_FORMAT_R16G16_SSCALED
        = showString "VK_FORMAT_R16G16_SSCALED"
      showsPrec _ VK_FORMAT_R16G16_UINT
        = showString "VK_FORMAT_R16G16_UINT"
      showsPrec _ VK_FORMAT_R16G16_SINT
        = showString "VK_FORMAT_R16G16_SINT"
      showsPrec _ VK_FORMAT_R16G16_SFLOAT
        = showString "VK_FORMAT_R16G16_SFLOAT"
      showsPrec _ VK_FORMAT_R16G16B16_UNORM
        = showString "VK_FORMAT_R16G16B16_UNORM"
      showsPrec _ VK_FORMAT_R16G16B16_SNORM
        = showString "VK_FORMAT_R16G16B16_SNORM"
      showsPrec _ VK_FORMAT_R16G16B16_USCALED
        = showString "VK_FORMAT_R16G16B16_USCALED"
      showsPrec _ VK_FORMAT_R16G16B16_SSCALED
        = showString "VK_FORMAT_R16G16B16_SSCALED"
      showsPrec _ VK_FORMAT_R16G16B16_UINT
        = showString "VK_FORMAT_R16G16B16_UINT"
      showsPrec _ VK_FORMAT_R16G16B16_SINT
        = showString "VK_FORMAT_R16G16B16_SINT"
      showsPrec _ VK_FORMAT_R16G16B16_SFLOAT
        = showString "VK_FORMAT_R16G16B16_SFLOAT"
      showsPrec _ VK_FORMAT_R16G16B16A16_UNORM
        = showString "VK_FORMAT_R16G16B16A16_UNORM"
      showsPrec _ VK_FORMAT_R16G16B16A16_SNORM
        = showString "VK_FORMAT_R16G16B16A16_SNORM"
      showsPrec _ VK_FORMAT_R16G16B16A16_USCALED
        = showString "VK_FORMAT_R16G16B16A16_USCALED"
      showsPrec _ VK_FORMAT_R16G16B16A16_SSCALED
        = showString "VK_FORMAT_R16G16B16A16_SSCALED"
      showsPrec _ VK_FORMAT_R16G16B16A16_UINT
        = showString "VK_FORMAT_R16G16B16A16_UINT"
      showsPrec _ VK_FORMAT_R16G16B16A16_SINT
        = showString "VK_FORMAT_R16G16B16A16_SINT"
      showsPrec _ VK_FORMAT_R16G16B16A16_SFLOAT
        = showString "VK_FORMAT_R16G16B16A16_SFLOAT"
      showsPrec _ VK_FORMAT_R32_UINT = showString "VK_FORMAT_R32_UINT"
      showsPrec _ VK_FORMAT_R32_SINT = showString "VK_FORMAT_R32_SINT"
      showsPrec _ VK_FORMAT_R32_SFLOAT
        = showString "VK_FORMAT_R32_SFLOAT"
      showsPrec _ VK_FORMAT_R32G32_UINT
        = showString "VK_FORMAT_R32G32_UINT"
      showsPrec _ VK_FORMAT_R32G32_SINT
        = showString "VK_FORMAT_R32G32_SINT"
      showsPrec _ VK_FORMAT_R32G32_SFLOAT
        = showString "VK_FORMAT_R32G32_SFLOAT"
      showsPrec _ VK_FORMAT_R32G32B32_UINT
        = showString "VK_FORMAT_R32G32B32_UINT"
      showsPrec _ VK_FORMAT_R32G32B32_SINT
        = showString "VK_FORMAT_R32G32B32_SINT"
      showsPrec _ VK_FORMAT_R32G32B32_SFLOAT
        = showString "VK_FORMAT_R32G32B32_SFLOAT"
      showsPrec _ VK_FORMAT_R32G32B32A32_UINT
        = showString "VK_FORMAT_R32G32B32A32_UINT"
      showsPrec _ VK_FORMAT_R32G32B32A32_SINT
        = showString "VK_FORMAT_R32G32B32A32_SINT"
      showsPrec _ VK_FORMAT_R32G32B32A32_SFLOAT
        = showString "VK_FORMAT_R32G32B32A32_SFLOAT"
      showsPrec _ VK_FORMAT_R64_UINT = showString "VK_FORMAT_R64_UINT"
      showsPrec _ VK_FORMAT_R64_SINT = showString "VK_FORMAT_R64_SINT"
      showsPrec _ VK_FORMAT_R64_SFLOAT
        = showString "VK_FORMAT_R64_SFLOAT"
      showsPrec _ VK_FORMAT_R64G64_UINT
        = showString "VK_FORMAT_R64G64_UINT"
      showsPrec _ VK_FORMAT_R64G64_SINT
        = showString "VK_FORMAT_R64G64_SINT"
      showsPrec _ VK_FORMAT_R64G64_SFLOAT
        = showString "VK_FORMAT_R64G64_SFLOAT"
      showsPrec _ VK_FORMAT_R64G64B64_UINT
        = showString "VK_FORMAT_R64G64B64_UINT"
      showsPrec _ VK_FORMAT_R64G64B64_SINT
        = showString "VK_FORMAT_R64G64B64_SINT"
      showsPrec _ VK_FORMAT_R64G64B64_SFLOAT
        = showString "VK_FORMAT_R64G64B64_SFLOAT"
      showsPrec _ VK_FORMAT_R64G64B64A64_UINT
        = showString "VK_FORMAT_R64G64B64A64_UINT"
      showsPrec _ VK_FORMAT_R64G64B64A64_SINT
        = showString "VK_FORMAT_R64G64B64A64_SINT"
      showsPrec _ VK_FORMAT_R64G64B64A64_SFLOAT
        = showString "VK_FORMAT_R64G64B64A64_SFLOAT"
      showsPrec _ VK_FORMAT_B10G11R11_UFLOAT_PACK32
        = showString "VK_FORMAT_B10G11R11_UFLOAT_PACK32"
      showsPrec _ VK_FORMAT_E5B9G9R9_UFLOAT_PACK32
        = showString "VK_FORMAT_E5B9G9R9_UFLOAT_PACK32"
      showsPrec _ VK_FORMAT_D16_UNORM = showString "VK_FORMAT_D16_UNORM"
      showsPrec _ VK_FORMAT_X8_D24_UNORM_PACK32
        = showString "VK_FORMAT_X8_D24_UNORM_PACK32"
      showsPrec _ VK_FORMAT_D32_SFLOAT
        = showString "VK_FORMAT_D32_SFLOAT"
      showsPrec _ VK_FORMAT_S8_UINT = showString "VK_FORMAT_S8_UINT"
      showsPrec _ VK_FORMAT_D16_UNORM_S8_UINT
        = showString "VK_FORMAT_D16_UNORM_S8_UINT"
      showsPrec _ VK_FORMAT_D24_UNORM_S8_UINT
        = showString "VK_FORMAT_D24_UNORM_S8_UINT"
      showsPrec _ VK_FORMAT_D32_SFLOAT_S8_UINT
        = showString "VK_FORMAT_D32_SFLOAT_S8_UINT"
      showsPrec _ VK_FORMAT_BC1_RGB_UNORM_BLOCK
        = showString "VK_FORMAT_BC1_RGB_UNORM_BLOCK"
      showsPrec _ VK_FORMAT_BC1_RGB_SRGB_BLOCK
        = showString "VK_FORMAT_BC1_RGB_SRGB_BLOCK"
      showsPrec _ VK_FORMAT_BC1_RGBA_UNORM_BLOCK
        = showString "VK_FORMAT_BC1_RGBA_UNORM_BLOCK"
      showsPrec _ VK_FORMAT_BC1_RGBA_SRGB_BLOCK
        = showString "VK_FORMAT_BC1_RGBA_SRGB_BLOCK"
      showsPrec _ VK_FORMAT_BC2_UNORM_BLOCK
        = showString "VK_FORMAT_BC2_UNORM_BLOCK"
      showsPrec _ VK_FORMAT_BC2_SRGB_BLOCK
        = showString "VK_FORMAT_BC2_SRGB_BLOCK"
      showsPrec _ VK_FORMAT_BC3_UNORM_BLOCK
        = showString "VK_FORMAT_BC3_UNORM_BLOCK"
      showsPrec _ VK_FORMAT_BC3_SRGB_BLOCK
        = showString "VK_FORMAT_BC3_SRGB_BLOCK"
      showsPrec _ VK_FORMAT_BC4_UNORM_BLOCK
        = showString "VK_FORMAT_BC4_UNORM_BLOCK"
      showsPrec _ VK_FORMAT_BC4_SNORM_BLOCK
        = showString "VK_FORMAT_BC4_SNORM_BLOCK"
      showsPrec _ VK_FORMAT_BC5_UNORM_BLOCK
        = showString "VK_FORMAT_BC5_UNORM_BLOCK"
      showsPrec _ VK_FORMAT_BC5_SNORM_BLOCK
        = showString "VK_FORMAT_BC5_SNORM_BLOCK"
      showsPrec _ VK_FORMAT_BC6H_UFLOAT_BLOCK
        = showString "VK_FORMAT_BC6H_UFLOAT_BLOCK"
      showsPrec _ VK_FORMAT_BC6H_SFLOAT_BLOCK
        = showString "VK_FORMAT_BC6H_SFLOAT_BLOCK"
      showsPrec _ VK_FORMAT_BC7_UNORM_BLOCK
        = showString "VK_FORMAT_BC7_UNORM_BLOCK"
      showsPrec _ VK_FORMAT_BC7_SRGB_BLOCK
        = showString "VK_FORMAT_BC7_SRGB_BLOCK"
      showsPrec _ VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK
        = showString "VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK"
      showsPrec _ VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK
        = showString "VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK"
      showsPrec _ VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK
        = showString "VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK"
      showsPrec _ VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK
        = showString "VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK"
      showsPrec _ VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK
        = showString "VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK"
      showsPrec _ VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK
        = showString "VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK"
      showsPrec _ VK_FORMAT_EAC_R11_UNORM_BLOCK
        = showString "VK_FORMAT_EAC_R11_UNORM_BLOCK"
      showsPrec _ VK_FORMAT_EAC_R11_SNORM_BLOCK
        = showString "VK_FORMAT_EAC_R11_SNORM_BLOCK"
      showsPrec _ VK_FORMAT_EAC_R11G11_UNORM_BLOCK
        = showString "VK_FORMAT_EAC_R11G11_UNORM_BLOCK"
      showsPrec _ VK_FORMAT_EAC_R11G11_SNORM_BLOCK
        = showString "VK_FORMAT_EAC_R11G11_SNORM_BLOCK"
      showsPrec _ VK_FORMAT_ASTC_4x4_UNORM_BLOCK
        = showString "VK_FORMAT_ASTC_4x4_UNORM_BLOCK"
      showsPrec _ VK_FORMAT_ASTC_4x4_SRGB_BLOCK
        = showString "VK_FORMAT_ASTC_4x4_SRGB_BLOCK"
      showsPrec _ VK_FORMAT_ASTC_5x4_UNORM_BLOCK
        = showString "VK_FORMAT_ASTC_5x4_UNORM_BLOCK"
      showsPrec _ VK_FORMAT_ASTC_5x4_SRGB_BLOCK
        = showString "VK_FORMAT_ASTC_5x4_SRGB_BLOCK"
      showsPrec _ VK_FORMAT_ASTC_5x5_UNORM_BLOCK
        = showString "VK_FORMAT_ASTC_5x5_UNORM_BLOCK"
      showsPrec _ VK_FORMAT_ASTC_5x5_SRGB_BLOCK
        = showString "VK_FORMAT_ASTC_5x5_SRGB_BLOCK"
      showsPrec _ VK_FORMAT_ASTC_6x5_UNORM_BLOCK
        = showString "VK_FORMAT_ASTC_6x5_UNORM_BLOCK"
      showsPrec _ VK_FORMAT_ASTC_6x5_SRGB_BLOCK
        = showString "VK_FORMAT_ASTC_6x5_SRGB_BLOCK"
      showsPrec _ VK_FORMAT_ASTC_6x6_UNORM_BLOCK
        = showString "VK_FORMAT_ASTC_6x6_UNORM_BLOCK"
      showsPrec _ VK_FORMAT_ASTC_6x6_SRGB_BLOCK
        = showString "VK_FORMAT_ASTC_6x6_SRGB_BLOCK"
      showsPrec _ VK_FORMAT_ASTC_8x5_UNORM_BLOCK
        = showString "VK_FORMAT_ASTC_8x5_UNORM_BLOCK"
      showsPrec _ VK_FORMAT_ASTC_8x5_SRGB_BLOCK
        = showString "VK_FORMAT_ASTC_8x5_SRGB_BLOCK"
      showsPrec _ VK_FORMAT_ASTC_8x6_UNORM_BLOCK
        = showString "VK_FORMAT_ASTC_8x6_UNORM_BLOCK"
      showsPrec _ VK_FORMAT_ASTC_8x6_SRGB_BLOCK
        = showString "VK_FORMAT_ASTC_8x6_SRGB_BLOCK"
      showsPrec _ VK_FORMAT_ASTC_8x8_UNORM_BLOCK
        = showString "VK_FORMAT_ASTC_8x8_UNORM_BLOCK"
      showsPrec _ VK_FORMAT_ASTC_8x8_SRGB_BLOCK
        = showString "VK_FORMAT_ASTC_8x8_SRGB_BLOCK"
      showsPrec _ VK_FORMAT_ASTC_10x5_UNORM_BLOCK
        = showString "VK_FORMAT_ASTC_10x5_UNORM_BLOCK"
      showsPrec _ VK_FORMAT_ASTC_10x5_SRGB_BLOCK
        = showString "VK_FORMAT_ASTC_10x5_SRGB_BLOCK"
      showsPrec _ VK_FORMAT_ASTC_10x6_UNORM_BLOCK
        = showString "VK_FORMAT_ASTC_10x6_UNORM_BLOCK"
      showsPrec _ VK_FORMAT_ASTC_10x6_SRGB_BLOCK
        = showString "VK_FORMAT_ASTC_10x6_SRGB_BLOCK"
      showsPrec _ VK_FORMAT_ASTC_10x8_UNORM_BLOCK
        = showString "VK_FORMAT_ASTC_10x8_UNORM_BLOCK"
      showsPrec _ VK_FORMAT_ASTC_10x8_SRGB_BLOCK
        = showString "VK_FORMAT_ASTC_10x8_SRGB_BLOCK"
      showsPrec _ VK_FORMAT_ASTC_10x10_UNORM_BLOCK
        = showString "VK_FORMAT_ASTC_10x10_UNORM_BLOCK"
      showsPrec _ VK_FORMAT_ASTC_10x10_SRGB_BLOCK
        = showString "VK_FORMAT_ASTC_10x10_SRGB_BLOCK"
      showsPrec _ VK_FORMAT_ASTC_12x10_UNORM_BLOCK
        = showString "VK_FORMAT_ASTC_12x10_UNORM_BLOCK"
      showsPrec _ VK_FORMAT_ASTC_12x10_SRGB_BLOCK
        = showString "VK_FORMAT_ASTC_12x10_SRGB_BLOCK"
      showsPrec _ VK_FORMAT_ASTC_12x12_UNORM_BLOCK
        = showString "VK_FORMAT_ASTC_12x12_UNORM_BLOCK"
      showsPrec _ VK_FORMAT_ASTC_12x12_SRGB_BLOCK
        = showString "VK_FORMAT_ASTC_12x12_SRGB_BLOCK"
      showsPrec p (VkFormat x)
        = showParen (p >= 11) (showString "VkFormat " . showsPrec 11 x)
  
  instance Read VkFormat where
      readPrec
        = parens
            (choose
               [("VK_FORMAT_UNDEFINED", pure VK_FORMAT_UNDEFINED),
                ("VK_FORMAT_R4G4_UNORM_PACK8", pure VK_FORMAT_R4G4_UNORM_PACK8),
                ("VK_FORMAT_R4G4B4A4_UNORM_PACK16",
                 pure VK_FORMAT_R4G4B4A4_UNORM_PACK16),
                ("VK_FORMAT_B4G4R4A4_UNORM_PACK16",
                 pure VK_FORMAT_B4G4R4A4_UNORM_PACK16),
                ("VK_FORMAT_R5G6B5_UNORM_PACK16",
                 pure VK_FORMAT_R5G6B5_UNORM_PACK16),
                ("VK_FORMAT_B5G6R5_UNORM_PACK16",
                 pure VK_FORMAT_B5G6R5_UNORM_PACK16),
                ("VK_FORMAT_R5G5B5A1_UNORM_PACK16",
                 pure VK_FORMAT_R5G5B5A1_UNORM_PACK16),
                ("VK_FORMAT_B5G5R5A1_UNORM_PACK16",
                 pure VK_FORMAT_B5G5R5A1_UNORM_PACK16),
                ("VK_FORMAT_A1R5G5B5_UNORM_PACK16",
                 pure VK_FORMAT_A1R5G5B5_UNORM_PACK16),
                ("VK_FORMAT_R8_UNORM", pure VK_FORMAT_R8_UNORM),
                ("VK_FORMAT_R8_SNORM", pure VK_FORMAT_R8_SNORM),
                ("VK_FORMAT_R8_USCALED", pure VK_FORMAT_R8_USCALED),
                ("VK_FORMAT_R8_SSCALED", pure VK_FORMAT_R8_SSCALED),
                ("VK_FORMAT_R8_UINT", pure VK_FORMAT_R8_UINT),
                ("VK_FORMAT_R8_SINT", pure VK_FORMAT_R8_SINT),
                ("VK_FORMAT_R8_SRGB", pure VK_FORMAT_R8_SRGB),
                ("VK_FORMAT_R8G8_UNORM", pure VK_FORMAT_R8G8_UNORM),
                ("VK_FORMAT_R8G8_SNORM", pure VK_FORMAT_R8G8_SNORM),
                ("VK_FORMAT_R8G8_USCALED", pure VK_FORMAT_R8G8_USCALED),
                ("VK_FORMAT_R8G8_SSCALED", pure VK_FORMAT_R8G8_SSCALED),
                ("VK_FORMAT_R8G8_UINT", pure VK_FORMAT_R8G8_UINT),
                ("VK_FORMAT_R8G8_SINT", pure VK_FORMAT_R8G8_SINT),
                ("VK_FORMAT_R8G8_SRGB", pure VK_FORMAT_R8G8_SRGB),
                ("VK_FORMAT_R8G8B8_UNORM", pure VK_FORMAT_R8G8B8_UNORM),
                ("VK_FORMAT_R8G8B8_SNORM", pure VK_FORMAT_R8G8B8_SNORM),
                ("VK_FORMAT_R8G8B8_USCALED", pure VK_FORMAT_R8G8B8_USCALED),
                ("VK_FORMAT_R8G8B8_SSCALED", pure VK_FORMAT_R8G8B8_SSCALED),
                ("VK_FORMAT_R8G8B8_UINT", pure VK_FORMAT_R8G8B8_UINT),
                ("VK_FORMAT_R8G8B8_SINT", pure VK_FORMAT_R8G8B8_SINT),
                ("VK_FORMAT_R8G8B8_SRGB", pure VK_FORMAT_R8G8B8_SRGB),
                ("VK_FORMAT_B8G8R8_UNORM", pure VK_FORMAT_B8G8R8_UNORM),
                ("VK_FORMAT_B8G8R8_SNORM", pure VK_FORMAT_B8G8R8_SNORM),
                ("VK_FORMAT_B8G8R8_USCALED", pure VK_FORMAT_B8G8R8_USCALED),
                ("VK_FORMAT_B8G8R8_SSCALED", pure VK_FORMAT_B8G8R8_SSCALED),
                ("VK_FORMAT_B8G8R8_UINT", pure VK_FORMAT_B8G8R8_UINT),
                ("VK_FORMAT_B8G8R8_SINT", pure VK_FORMAT_B8G8R8_SINT),
                ("VK_FORMAT_B8G8R8_SRGB", pure VK_FORMAT_B8G8R8_SRGB),
                ("VK_FORMAT_R8G8B8A8_UNORM", pure VK_FORMAT_R8G8B8A8_UNORM),
                ("VK_FORMAT_R8G8B8A8_SNORM", pure VK_FORMAT_R8G8B8A8_SNORM),
                ("VK_FORMAT_R8G8B8A8_USCALED", pure VK_FORMAT_R8G8B8A8_USCALED),
                ("VK_FORMAT_R8G8B8A8_SSCALED", pure VK_FORMAT_R8G8B8A8_SSCALED),
                ("VK_FORMAT_R8G8B8A8_UINT", pure VK_FORMAT_R8G8B8A8_UINT),
                ("VK_FORMAT_R8G8B8A8_SINT", pure VK_FORMAT_R8G8B8A8_SINT),
                ("VK_FORMAT_R8G8B8A8_SRGB", pure VK_FORMAT_R8G8B8A8_SRGB),
                ("VK_FORMAT_B8G8R8A8_UNORM", pure VK_FORMAT_B8G8R8A8_UNORM),
                ("VK_FORMAT_B8G8R8A8_SNORM", pure VK_FORMAT_B8G8R8A8_SNORM),
                ("VK_FORMAT_B8G8R8A8_USCALED", pure VK_FORMAT_B8G8R8A8_USCALED),
                ("VK_FORMAT_B8G8R8A8_SSCALED", pure VK_FORMAT_B8G8R8A8_SSCALED),
                ("VK_FORMAT_B8G8R8A8_UINT", pure VK_FORMAT_B8G8R8A8_UINT),
                ("VK_FORMAT_B8G8R8A8_SINT", pure VK_FORMAT_B8G8R8A8_SINT),
                ("VK_FORMAT_B8G8R8A8_SRGB", pure VK_FORMAT_B8G8R8A8_SRGB),
                ("VK_FORMAT_A8B8G8R8_UNORM_PACK32",
                 pure VK_FORMAT_A8B8G8R8_UNORM_PACK32),
                ("VK_FORMAT_A8B8G8R8_SNORM_PACK32",
                 pure VK_FORMAT_A8B8G8R8_SNORM_PACK32),
                ("VK_FORMAT_A8B8G8R8_USCALED_PACK32",
                 pure VK_FORMAT_A8B8G8R8_USCALED_PACK32),
                ("VK_FORMAT_A8B8G8R8_SSCALED_PACK32",
                 pure VK_FORMAT_A8B8G8R8_SSCALED_PACK32),
                ("VK_FORMAT_A8B8G8R8_UINT_PACK32",
                 pure VK_FORMAT_A8B8G8R8_UINT_PACK32),
                ("VK_FORMAT_A8B8G8R8_SINT_PACK32",
                 pure VK_FORMAT_A8B8G8R8_SINT_PACK32),
                ("VK_FORMAT_A8B8G8R8_SRGB_PACK32",
                 pure VK_FORMAT_A8B8G8R8_SRGB_PACK32),
                ("VK_FORMAT_A2R10G10B10_UNORM_PACK32",
                 pure VK_FORMAT_A2R10G10B10_UNORM_PACK32),
                ("VK_FORMAT_A2R10G10B10_SNORM_PACK32",
                 pure VK_FORMAT_A2R10G10B10_SNORM_PACK32),
                ("VK_FORMAT_A2R10G10B10_USCALED_PACK32",
                 pure VK_FORMAT_A2R10G10B10_USCALED_PACK32),
                ("VK_FORMAT_A2R10G10B10_SSCALED_PACK32",
                 pure VK_FORMAT_A2R10G10B10_SSCALED_PACK32),
                ("VK_FORMAT_A2R10G10B10_UINT_PACK32",
                 pure VK_FORMAT_A2R10G10B10_UINT_PACK32),
                ("VK_FORMAT_A2R10G10B10_SINT_PACK32",
                 pure VK_FORMAT_A2R10G10B10_SINT_PACK32),
                ("VK_FORMAT_A2B10G10R10_UNORM_PACK32",
                 pure VK_FORMAT_A2B10G10R10_UNORM_PACK32),
                ("VK_FORMAT_A2B10G10R10_SNORM_PACK32",
                 pure VK_FORMAT_A2B10G10R10_SNORM_PACK32),
                ("VK_FORMAT_A2B10G10R10_USCALED_PACK32",
                 pure VK_FORMAT_A2B10G10R10_USCALED_PACK32),
                ("VK_FORMAT_A2B10G10R10_SSCALED_PACK32",
                 pure VK_FORMAT_A2B10G10R10_SSCALED_PACK32),
                ("VK_FORMAT_A2B10G10R10_UINT_PACK32",
                 pure VK_FORMAT_A2B10G10R10_UINT_PACK32),
                ("VK_FORMAT_A2B10G10R10_SINT_PACK32",
                 pure VK_FORMAT_A2B10G10R10_SINT_PACK32),
                ("VK_FORMAT_R16_UNORM", pure VK_FORMAT_R16_UNORM),
                ("VK_FORMAT_R16_SNORM", pure VK_FORMAT_R16_SNORM),
                ("VK_FORMAT_R16_USCALED", pure VK_FORMAT_R16_USCALED),
                ("VK_FORMAT_R16_SSCALED", pure VK_FORMAT_R16_SSCALED),
                ("VK_FORMAT_R16_UINT", pure VK_FORMAT_R16_UINT),
                ("VK_FORMAT_R16_SINT", pure VK_FORMAT_R16_SINT),
                ("VK_FORMAT_R16_SFLOAT", pure VK_FORMAT_R16_SFLOAT),
                ("VK_FORMAT_R16G16_UNORM", pure VK_FORMAT_R16G16_UNORM),
                ("VK_FORMAT_R16G16_SNORM", pure VK_FORMAT_R16G16_SNORM),
                ("VK_FORMAT_R16G16_USCALED", pure VK_FORMAT_R16G16_USCALED),
                ("VK_FORMAT_R16G16_SSCALED", pure VK_FORMAT_R16G16_SSCALED),
                ("VK_FORMAT_R16G16_UINT", pure VK_FORMAT_R16G16_UINT),
                ("VK_FORMAT_R16G16_SINT", pure VK_FORMAT_R16G16_SINT),
                ("VK_FORMAT_R16G16_SFLOAT", pure VK_FORMAT_R16G16_SFLOAT),
                ("VK_FORMAT_R16G16B16_UNORM", pure VK_FORMAT_R16G16B16_UNORM),
                ("VK_FORMAT_R16G16B16_SNORM", pure VK_FORMAT_R16G16B16_SNORM),
                ("VK_FORMAT_R16G16B16_USCALED", pure VK_FORMAT_R16G16B16_USCALED),
                ("VK_FORMAT_R16G16B16_SSCALED", pure VK_FORMAT_R16G16B16_SSCALED),
                ("VK_FORMAT_R16G16B16_UINT", pure VK_FORMAT_R16G16B16_UINT),
                ("VK_FORMAT_R16G16B16_SINT", pure VK_FORMAT_R16G16B16_SINT),
                ("VK_FORMAT_R16G16B16_SFLOAT", pure VK_FORMAT_R16G16B16_SFLOAT),
                ("VK_FORMAT_R16G16B16A16_UNORM",
                 pure VK_FORMAT_R16G16B16A16_UNORM),
                ("VK_FORMAT_R16G16B16A16_SNORM",
                 pure VK_FORMAT_R16G16B16A16_SNORM),
                ("VK_FORMAT_R16G16B16A16_USCALED",
                 pure VK_FORMAT_R16G16B16A16_USCALED),
                ("VK_FORMAT_R16G16B16A16_SSCALED",
                 pure VK_FORMAT_R16G16B16A16_SSCALED),
                ("VK_FORMAT_R16G16B16A16_UINT", pure VK_FORMAT_R16G16B16A16_UINT),
                ("VK_FORMAT_R16G16B16A16_SINT", pure VK_FORMAT_R16G16B16A16_SINT),
                ("VK_FORMAT_R16G16B16A16_SFLOAT",
                 pure VK_FORMAT_R16G16B16A16_SFLOAT),
                ("VK_FORMAT_R32_UINT", pure VK_FORMAT_R32_UINT),
                ("VK_FORMAT_R32_SINT", pure VK_FORMAT_R32_SINT),
                ("VK_FORMAT_R32_SFLOAT", pure VK_FORMAT_R32_SFLOAT),
                ("VK_FORMAT_R32G32_UINT", pure VK_FORMAT_R32G32_UINT),
                ("VK_FORMAT_R32G32_SINT", pure VK_FORMAT_R32G32_SINT),
                ("VK_FORMAT_R32G32_SFLOAT", pure VK_FORMAT_R32G32_SFLOAT),
                ("VK_FORMAT_R32G32B32_UINT", pure VK_FORMAT_R32G32B32_UINT),
                ("VK_FORMAT_R32G32B32_SINT", pure VK_FORMAT_R32G32B32_SINT),
                ("VK_FORMAT_R32G32B32_SFLOAT", pure VK_FORMAT_R32G32B32_SFLOAT),
                ("VK_FORMAT_R32G32B32A32_UINT", pure VK_FORMAT_R32G32B32A32_UINT),
                ("VK_FORMAT_R32G32B32A32_SINT", pure VK_FORMAT_R32G32B32A32_SINT),
                ("VK_FORMAT_R32G32B32A32_SFLOAT",
                 pure VK_FORMAT_R32G32B32A32_SFLOAT),
                ("VK_FORMAT_R64_UINT", pure VK_FORMAT_R64_UINT),
                ("VK_FORMAT_R64_SINT", pure VK_FORMAT_R64_SINT),
                ("VK_FORMAT_R64_SFLOAT", pure VK_FORMAT_R64_SFLOAT),
                ("VK_FORMAT_R64G64_UINT", pure VK_FORMAT_R64G64_UINT),
                ("VK_FORMAT_R64G64_SINT", pure VK_FORMAT_R64G64_SINT),
                ("VK_FORMAT_R64G64_SFLOAT", pure VK_FORMAT_R64G64_SFLOAT),
                ("VK_FORMAT_R64G64B64_UINT", pure VK_FORMAT_R64G64B64_UINT),
                ("VK_FORMAT_R64G64B64_SINT", pure VK_FORMAT_R64G64B64_SINT),
                ("VK_FORMAT_R64G64B64_SFLOAT", pure VK_FORMAT_R64G64B64_SFLOAT),
                ("VK_FORMAT_R64G64B64A64_UINT", pure VK_FORMAT_R64G64B64A64_UINT),
                ("VK_FORMAT_R64G64B64A64_SINT", pure VK_FORMAT_R64G64B64A64_SINT),
                ("VK_FORMAT_R64G64B64A64_SFLOAT",
                 pure VK_FORMAT_R64G64B64A64_SFLOAT),
                ("VK_FORMAT_B10G11R11_UFLOAT_PACK32",
                 pure VK_FORMAT_B10G11R11_UFLOAT_PACK32),
                ("VK_FORMAT_E5B9G9R9_UFLOAT_PACK32",
                 pure VK_FORMAT_E5B9G9R9_UFLOAT_PACK32),
                ("VK_FORMAT_D16_UNORM", pure VK_FORMAT_D16_UNORM),
                ("VK_FORMAT_X8_D24_UNORM_PACK32",
                 pure VK_FORMAT_X8_D24_UNORM_PACK32),
                ("VK_FORMAT_D32_SFLOAT", pure VK_FORMAT_D32_SFLOAT),
                ("VK_FORMAT_S8_UINT", pure VK_FORMAT_S8_UINT),
                ("VK_FORMAT_D16_UNORM_S8_UINT", pure VK_FORMAT_D16_UNORM_S8_UINT),
                ("VK_FORMAT_D24_UNORM_S8_UINT", pure VK_FORMAT_D24_UNORM_S8_UINT),
                ("VK_FORMAT_D32_SFLOAT_S8_UINT",
                 pure VK_FORMAT_D32_SFLOAT_S8_UINT),
                ("VK_FORMAT_BC1_RGB_UNORM_BLOCK",
                 pure VK_FORMAT_BC1_RGB_UNORM_BLOCK),
                ("VK_FORMAT_BC1_RGB_SRGB_BLOCK",
                 pure VK_FORMAT_BC1_RGB_SRGB_BLOCK),
                ("VK_FORMAT_BC1_RGBA_UNORM_BLOCK",
                 pure VK_FORMAT_BC1_RGBA_UNORM_BLOCK),
                ("VK_FORMAT_BC1_RGBA_SRGB_BLOCK",
                 pure VK_FORMAT_BC1_RGBA_SRGB_BLOCK),
                ("VK_FORMAT_BC2_UNORM_BLOCK", pure VK_FORMAT_BC2_UNORM_BLOCK),
                ("VK_FORMAT_BC2_SRGB_BLOCK", pure VK_FORMAT_BC2_SRGB_BLOCK),
                ("VK_FORMAT_BC3_UNORM_BLOCK", pure VK_FORMAT_BC3_UNORM_BLOCK),
                ("VK_FORMAT_BC3_SRGB_BLOCK", pure VK_FORMAT_BC3_SRGB_BLOCK),
                ("VK_FORMAT_BC4_UNORM_BLOCK", pure VK_FORMAT_BC4_UNORM_BLOCK),
                ("VK_FORMAT_BC4_SNORM_BLOCK", pure VK_FORMAT_BC4_SNORM_BLOCK),
                ("VK_FORMAT_BC5_UNORM_BLOCK", pure VK_FORMAT_BC5_UNORM_BLOCK),
                ("VK_FORMAT_BC5_SNORM_BLOCK", pure VK_FORMAT_BC5_SNORM_BLOCK),
                ("VK_FORMAT_BC6H_UFLOAT_BLOCK", pure VK_FORMAT_BC6H_UFLOAT_BLOCK),
                ("VK_FORMAT_BC6H_SFLOAT_BLOCK", pure VK_FORMAT_BC6H_SFLOAT_BLOCK),
                ("VK_FORMAT_BC7_UNORM_BLOCK", pure VK_FORMAT_BC7_UNORM_BLOCK),
                ("VK_FORMAT_BC7_SRGB_BLOCK", pure VK_FORMAT_BC7_SRGB_BLOCK),
                ("VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK",
                 pure VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK),
                ("VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK",
                 pure VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK),
                ("VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK",
                 pure VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK),
                ("VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK",
                 pure VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK),
                ("VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK",
                 pure VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK),
                ("VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK",
                 pure VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK),
                ("VK_FORMAT_EAC_R11_UNORM_BLOCK",
                 pure VK_FORMAT_EAC_R11_UNORM_BLOCK),
                ("VK_FORMAT_EAC_R11_SNORM_BLOCK",
                 pure VK_FORMAT_EAC_R11_SNORM_BLOCK),
                ("VK_FORMAT_EAC_R11G11_UNORM_BLOCK",
                 pure VK_FORMAT_EAC_R11G11_UNORM_BLOCK),
                ("VK_FORMAT_EAC_R11G11_SNORM_BLOCK",
                 pure VK_FORMAT_EAC_R11G11_SNORM_BLOCK),
                ("VK_FORMAT_ASTC_4x4_UNORM_BLOCK",
                 pure VK_FORMAT_ASTC_4x4_UNORM_BLOCK),
                ("VK_FORMAT_ASTC_4x4_SRGB_BLOCK",
                 pure VK_FORMAT_ASTC_4x4_SRGB_BLOCK),
                ("VK_FORMAT_ASTC_5x4_UNORM_BLOCK",
                 pure VK_FORMAT_ASTC_5x4_UNORM_BLOCK),
                ("VK_FORMAT_ASTC_5x4_SRGB_BLOCK",
                 pure VK_FORMAT_ASTC_5x4_SRGB_BLOCK),
                ("VK_FORMAT_ASTC_5x5_UNORM_BLOCK",
                 pure VK_FORMAT_ASTC_5x5_UNORM_BLOCK),
                ("VK_FORMAT_ASTC_5x5_SRGB_BLOCK",
                 pure VK_FORMAT_ASTC_5x5_SRGB_BLOCK),
                ("VK_FORMAT_ASTC_6x5_UNORM_BLOCK",
                 pure VK_FORMAT_ASTC_6x5_UNORM_BLOCK),
                ("VK_FORMAT_ASTC_6x5_SRGB_BLOCK",
                 pure VK_FORMAT_ASTC_6x5_SRGB_BLOCK),
                ("VK_FORMAT_ASTC_6x6_UNORM_BLOCK",
                 pure VK_FORMAT_ASTC_6x6_UNORM_BLOCK),
                ("VK_FORMAT_ASTC_6x6_SRGB_BLOCK",
                 pure VK_FORMAT_ASTC_6x6_SRGB_BLOCK),
                ("VK_FORMAT_ASTC_8x5_UNORM_BLOCK",
                 pure VK_FORMAT_ASTC_8x5_UNORM_BLOCK),
                ("VK_FORMAT_ASTC_8x5_SRGB_BLOCK",
                 pure VK_FORMAT_ASTC_8x5_SRGB_BLOCK),
                ("VK_FORMAT_ASTC_8x6_UNORM_BLOCK",
                 pure VK_FORMAT_ASTC_8x6_UNORM_BLOCK),
                ("VK_FORMAT_ASTC_8x6_SRGB_BLOCK",
                 pure VK_FORMAT_ASTC_8x6_SRGB_BLOCK),
                ("VK_FORMAT_ASTC_8x8_UNORM_BLOCK",
                 pure VK_FORMAT_ASTC_8x8_UNORM_BLOCK),
                ("VK_FORMAT_ASTC_8x8_SRGB_BLOCK",
                 pure VK_FORMAT_ASTC_8x8_SRGB_BLOCK),
                ("VK_FORMAT_ASTC_10x5_UNORM_BLOCK",
                 pure VK_FORMAT_ASTC_10x5_UNORM_BLOCK),
                ("VK_FORMAT_ASTC_10x5_SRGB_BLOCK",
                 pure VK_FORMAT_ASTC_10x5_SRGB_BLOCK),
                ("VK_FORMAT_ASTC_10x6_UNORM_BLOCK",
                 pure VK_FORMAT_ASTC_10x6_UNORM_BLOCK),
                ("VK_FORMAT_ASTC_10x6_SRGB_BLOCK",
                 pure VK_FORMAT_ASTC_10x6_SRGB_BLOCK),
                ("VK_FORMAT_ASTC_10x8_UNORM_BLOCK",
                 pure VK_FORMAT_ASTC_10x8_UNORM_BLOCK),
                ("VK_FORMAT_ASTC_10x8_SRGB_BLOCK",
                 pure VK_FORMAT_ASTC_10x8_SRGB_BLOCK),
                ("VK_FORMAT_ASTC_10x10_UNORM_BLOCK",
                 pure VK_FORMAT_ASTC_10x10_UNORM_BLOCK),
                ("VK_FORMAT_ASTC_10x10_SRGB_BLOCK",
                 pure VK_FORMAT_ASTC_10x10_SRGB_BLOCK),
                ("VK_FORMAT_ASTC_12x10_UNORM_BLOCK",
                 pure VK_FORMAT_ASTC_12x10_UNORM_BLOCK),
                ("VK_FORMAT_ASTC_12x10_SRGB_BLOCK",
                 pure VK_FORMAT_ASTC_12x10_SRGB_BLOCK),
                ("VK_FORMAT_ASTC_12x12_UNORM_BLOCK",
                 pure VK_FORMAT_ASTC_12x12_UNORM_BLOCK),
                ("VK_FORMAT_ASTC_12x12_SRGB_BLOCK",
                 pure VK_FORMAT_ASTC_12x12_SRGB_BLOCK)]
               +++
               prec 10
                 (expectP (Ident "VkFormat") >> (VkFormat <$> step readPrec)))
  
  pattern VK_FORMAT_UNDEFINED :: VkFormat
  
  pattern VK_FORMAT_UNDEFINED = VkFormat 0
  
  pattern VK_FORMAT_R4G4_UNORM_PACK8 :: VkFormat
  
  pattern VK_FORMAT_R4G4_UNORM_PACK8 = VkFormat 1
  
  pattern VK_FORMAT_R4G4B4A4_UNORM_PACK16 :: VkFormat
  
  pattern VK_FORMAT_R4G4B4A4_UNORM_PACK16 = VkFormat 2
  
  pattern VK_FORMAT_B4G4R4A4_UNORM_PACK16 :: VkFormat
  
  pattern VK_FORMAT_B4G4R4A4_UNORM_PACK16 = VkFormat 3
  
  pattern VK_FORMAT_R5G6B5_UNORM_PACK16 :: VkFormat
  
  pattern VK_FORMAT_R5G6B5_UNORM_PACK16 = VkFormat 4
  
  pattern VK_FORMAT_B5G6R5_UNORM_PACK16 :: VkFormat
  
  pattern VK_FORMAT_B5G6R5_UNORM_PACK16 = VkFormat 5
  
  pattern VK_FORMAT_R5G5B5A1_UNORM_PACK16 :: VkFormat
  
  pattern VK_FORMAT_R5G5B5A1_UNORM_PACK16 = VkFormat 6
  
  pattern VK_FORMAT_B5G5R5A1_UNORM_PACK16 :: VkFormat
  
  pattern VK_FORMAT_B5G5R5A1_UNORM_PACK16 = VkFormat 7
  
  pattern VK_FORMAT_A1R5G5B5_UNORM_PACK16 :: VkFormat
  
  pattern VK_FORMAT_A1R5G5B5_UNORM_PACK16 = VkFormat 8
  
  pattern VK_FORMAT_R8_UNORM :: VkFormat
  
  pattern VK_FORMAT_R8_UNORM = VkFormat 9
  
  pattern VK_FORMAT_R8_SNORM :: VkFormat
  
  pattern VK_FORMAT_R8_SNORM = VkFormat 10
  
  pattern VK_FORMAT_R8_USCALED :: VkFormat
  
  pattern VK_FORMAT_R8_USCALED = VkFormat 11
  
  pattern VK_FORMAT_R8_SSCALED :: VkFormat
  
  pattern VK_FORMAT_R8_SSCALED = VkFormat 12
  
  pattern VK_FORMAT_R8_UINT :: VkFormat
  
  pattern VK_FORMAT_R8_UINT = VkFormat 13
  
  pattern VK_FORMAT_R8_SINT :: VkFormat
  
  pattern VK_FORMAT_R8_SINT = VkFormat 14
  
  pattern VK_FORMAT_R8_SRGB :: VkFormat
  
  pattern VK_FORMAT_R8_SRGB = VkFormat 15
  
  pattern VK_FORMAT_R8G8_UNORM :: VkFormat
  
  pattern VK_FORMAT_R8G8_UNORM = VkFormat 16
  
  pattern VK_FORMAT_R8G8_SNORM :: VkFormat
  
  pattern VK_FORMAT_R8G8_SNORM = VkFormat 17
  
  pattern VK_FORMAT_R8G8_USCALED :: VkFormat
  
  pattern VK_FORMAT_R8G8_USCALED = VkFormat 18
  
  pattern VK_FORMAT_R8G8_SSCALED :: VkFormat
  
  pattern VK_FORMAT_R8G8_SSCALED = VkFormat 19
  
  pattern VK_FORMAT_R8G8_UINT :: VkFormat
  
  pattern VK_FORMAT_R8G8_UINT = VkFormat 20
  
  pattern VK_FORMAT_R8G8_SINT :: VkFormat
  
  pattern VK_FORMAT_R8G8_SINT = VkFormat 21
  
  pattern VK_FORMAT_R8G8_SRGB :: VkFormat
  
  pattern VK_FORMAT_R8G8_SRGB = VkFormat 22
  
  pattern VK_FORMAT_R8G8B8_UNORM :: VkFormat
  
  pattern VK_FORMAT_R8G8B8_UNORM = VkFormat 23
  
  pattern VK_FORMAT_R8G8B8_SNORM :: VkFormat
  
  pattern VK_FORMAT_R8G8B8_SNORM = VkFormat 24
  
  pattern VK_FORMAT_R8G8B8_USCALED :: VkFormat
  
  pattern VK_FORMAT_R8G8B8_USCALED = VkFormat 25
  
  pattern VK_FORMAT_R8G8B8_SSCALED :: VkFormat
  
  pattern VK_FORMAT_R8G8B8_SSCALED = VkFormat 26
  
  pattern VK_FORMAT_R8G8B8_UINT :: VkFormat
  
  pattern VK_FORMAT_R8G8B8_UINT = VkFormat 27
  
  pattern VK_FORMAT_R8G8B8_SINT :: VkFormat
  
  pattern VK_FORMAT_R8G8B8_SINT = VkFormat 28
  
  pattern VK_FORMAT_R8G8B8_SRGB :: VkFormat
  
  pattern VK_FORMAT_R8G8B8_SRGB = VkFormat 29
  
  pattern VK_FORMAT_B8G8R8_UNORM :: VkFormat
  
  pattern VK_FORMAT_B8G8R8_UNORM = VkFormat 30
  
  pattern VK_FORMAT_B8G8R8_SNORM :: VkFormat
  
  pattern VK_FORMAT_B8G8R8_SNORM = VkFormat 31
  
  pattern VK_FORMAT_B8G8R8_USCALED :: VkFormat
  
  pattern VK_FORMAT_B8G8R8_USCALED = VkFormat 32
  
  pattern VK_FORMAT_B8G8R8_SSCALED :: VkFormat
  
  pattern VK_FORMAT_B8G8R8_SSCALED = VkFormat 33
  
  pattern VK_FORMAT_B8G8R8_UINT :: VkFormat
  
  pattern VK_FORMAT_B8G8R8_UINT = VkFormat 34
  
  pattern VK_FORMAT_B8G8R8_SINT :: VkFormat
  
  pattern VK_FORMAT_B8G8R8_SINT = VkFormat 35
  
  pattern VK_FORMAT_B8G8R8_SRGB :: VkFormat
  
  pattern VK_FORMAT_B8G8R8_SRGB = VkFormat 36
  
  pattern VK_FORMAT_R8G8B8A8_UNORM :: VkFormat
  
  pattern VK_FORMAT_R8G8B8A8_UNORM = VkFormat 37
  
  pattern VK_FORMAT_R8G8B8A8_SNORM :: VkFormat
  
  pattern VK_FORMAT_R8G8B8A8_SNORM = VkFormat 38
  
  pattern VK_FORMAT_R8G8B8A8_USCALED :: VkFormat
  
  pattern VK_FORMAT_R8G8B8A8_USCALED = VkFormat 39
  
  pattern VK_FORMAT_R8G8B8A8_SSCALED :: VkFormat
  
  pattern VK_FORMAT_R8G8B8A8_SSCALED = VkFormat 40
  
  pattern VK_FORMAT_R8G8B8A8_UINT :: VkFormat
  
  pattern VK_FORMAT_R8G8B8A8_UINT = VkFormat 41
  
  pattern VK_FORMAT_R8G8B8A8_SINT :: VkFormat
  
  pattern VK_FORMAT_R8G8B8A8_SINT = VkFormat 42
  
  pattern VK_FORMAT_R8G8B8A8_SRGB :: VkFormat
  
  pattern VK_FORMAT_R8G8B8A8_SRGB = VkFormat 43
  
  pattern VK_FORMAT_B8G8R8A8_UNORM :: VkFormat
  
  pattern VK_FORMAT_B8G8R8A8_UNORM = VkFormat 44
  
  pattern VK_FORMAT_B8G8R8A8_SNORM :: VkFormat
  
  pattern VK_FORMAT_B8G8R8A8_SNORM = VkFormat 45
  
  pattern VK_FORMAT_B8G8R8A8_USCALED :: VkFormat
  
  pattern VK_FORMAT_B8G8R8A8_USCALED = VkFormat 46
  
  pattern VK_FORMAT_B8G8R8A8_SSCALED :: VkFormat
  
  pattern VK_FORMAT_B8G8R8A8_SSCALED = VkFormat 47
  
  pattern VK_FORMAT_B8G8R8A8_UINT :: VkFormat
  
  pattern VK_FORMAT_B8G8R8A8_UINT = VkFormat 48
  
  pattern VK_FORMAT_B8G8R8A8_SINT :: VkFormat
  
  pattern VK_FORMAT_B8G8R8A8_SINT = VkFormat 49
  
  pattern VK_FORMAT_B8G8R8A8_SRGB :: VkFormat
  
  pattern VK_FORMAT_B8G8R8A8_SRGB = VkFormat 50
  
  pattern VK_FORMAT_A8B8G8R8_UNORM_PACK32 :: VkFormat
  
  pattern VK_FORMAT_A8B8G8R8_UNORM_PACK32 = VkFormat 51
  
  pattern VK_FORMAT_A8B8G8R8_SNORM_PACK32 :: VkFormat
  
  pattern VK_FORMAT_A8B8G8R8_SNORM_PACK32 = VkFormat 52
  
  pattern VK_FORMAT_A8B8G8R8_USCALED_PACK32 :: VkFormat
  
  pattern VK_FORMAT_A8B8G8R8_USCALED_PACK32 = VkFormat 53
  
  pattern VK_FORMAT_A8B8G8R8_SSCALED_PACK32 :: VkFormat
  
  pattern VK_FORMAT_A8B8G8R8_SSCALED_PACK32 = VkFormat 54
  
  pattern VK_FORMAT_A8B8G8R8_UINT_PACK32 :: VkFormat
  
  pattern VK_FORMAT_A8B8G8R8_UINT_PACK32 = VkFormat 55
  
  pattern VK_FORMAT_A8B8G8R8_SINT_PACK32 :: VkFormat
  
  pattern VK_FORMAT_A8B8G8R8_SINT_PACK32 = VkFormat 56
  
  pattern VK_FORMAT_A8B8G8R8_SRGB_PACK32 :: VkFormat
  
  pattern VK_FORMAT_A8B8G8R8_SRGB_PACK32 = VkFormat 57
  
  pattern VK_FORMAT_A2R10G10B10_UNORM_PACK32 :: VkFormat
  
  pattern VK_FORMAT_A2R10G10B10_UNORM_PACK32 = VkFormat 58
  
  pattern VK_FORMAT_A2R10G10B10_SNORM_PACK32 :: VkFormat
  
  pattern VK_FORMAT_A2R10G10B10_SNORM_PACK32 = VkFormat 59
  
  pattern VK_FORMAT_A2R10G10B10_USCALED_PACK32 :: VkFormat
  
  pattern VK_FORMAT_A2R10G10B10_USCALED_PACK32 = VkFormat 60
  
  pattern VK_FORMAT_A2R10G10B10_SSCALED_PACK32 :: VkFormat
  
  pattern VK_FORMAT_A2R10G10B10_SSCALED_PACK32 = VkFormat 61
  
  pattern VK_FORMAT_A2R10G10B10_UINT_PACK32 :: VkFormat
  
  pattern VK_FORMAT_A2R10G10B10_UINT_PACK32 = VkFormat 62
  
  pattern VK_FORMAT_A2R10G10B10_SINT_PACK32 :: VkFormat
  
  pattern VK_FORMAT_A2R10G10B10_SINT_PACK32 = VkFormat 63
  
  pattern VK_FORMAT_A2B10G10R10_UNORM_PACK32 :: VkFormat
  
  pattern VK_FORMAT_A2B10G10R10_UNORM_PACK32 = VkFormat 64
  
  pattern VK_FORMAT_A2B10G10R10_SNORM_PACK32 :: VkFormat
  
  pattern VK_FORMAT_A2B10G10R10_SNORM_PACK32 = VkFormat 65
  
  pattern VK_FORMAT_A2B10G10R10_USCALED_PACK32 :: VkFormat
  
  pattern VK_FORMAT_A2B10G10R10_USCALED_PACK32 = VkFormat 66
  
  pattern VK_FORMAT_A2B10G10R10_SSCALED_PACK32 :: VkFormat
  
  pattern VK_FORMAT_A2B10G10R10_SSCALED_PACK32 = VkFormat 67
  
  pattern VK_FORMAT_A2B10G10R10_UINT_PACK32 :: VkFormat
  
  pattern VK_FORMAT_A2B10G10R10_UINT_PACK32 = VkFormat 68
  
  pattern VK_FORMAT_A2B10G10R10_SINT_PACK32 :: VkFormat
  
  pattern VK_FORMAT_A2B10G10R10_SINT_PACK32 = VkFormat 69
  
  pattern VK_FORMAT_R16_UNORM :: VkFormat
  
  pattern VK_FORMAT_R16_UNORM = VkFormat 70
  
  pattern VK_FORMAT_R16_SNORM :: VkFormat
  
  pattern VK_FORMAT_R16_SNORM = VkFormat 71
  
  pattern VK_FORMAT_R16_USCALED :: VkFormat
  
  pattern VK_FORMAT_R16_USCALED = VkFormat 72
  
  pattern VK_FORMAT_R16_SSCALED :: VkFormat
  
  pattern VK_FORMAT_R16_SSCALED = VkFormat 73
  
  pattern VK_FORMAT_R16_UINT :: VkFormat
  
  pattern VK_FORMAT_R16_UINT = VkFormat 74
  
  pattern VK_FORMAT_R16_SINT :: VkFormat
  
  pattern VK_FORMAT_R16_SINT = VkFormat 75
  
  pattern VK_FORMAT_R16_SFLOAT :: VkFormat
  
  pattern VK_FORMAT_R16_SFLOAT = VkFormat 76
  
  pattern VK_FORMAT_R16G16_UNORM :: VkFormat
  
  pattern VK_FORMAT_R16G16_UNORM = VkFormat 77
  
  pattern VK_FORMAT_R16G16_SNORM :: VkFormat
  
  pattern VK_FORMAT_R16G16_SNORM = VkFormat 78
  
  pattern VK_FORMAT_R16G16_USCALED :: VkFormat
  
  pattern VK_FORMAT_R16G16_USCALED = VkFormat 79
  
  pattern VK_FORMAT_R16G16_SSCALED :: VkFormat
  
  pattern VK_FORMAT_R16G16_SSCALED = VkFormat 80
  
  pattern VK_FORMAT_R16G16_UINT :: VkFormat
  
  pattern VK_FORMAT_R16G16_UINT = VkFormat 81
  
  pattern VK_FORMAT_R16G16_SINT :: VkFormat
  
  pattern VK_FORMAT_R16G16_SINT = VkFormat 82
  
  pattern VK_FORMAT_R16G16_SFLOAT :: VkFormat
  
  pattern VK_FORMAT_R16G16_SFLOAT = VkFormat 83
  
  pattern VK_FORMAT_R16G16B16_UNORM :: VkFormat
  
  pattern VK_FORMAT_R16G16B16_UNORM = VkFormat 84
  
  pattern VK_FORMAT_R16G16B16_SNORM :: VkFormat
  
  pattern VK_FORMAT_R16G16B16_SNORM = VkFormat 85
  
  pattern VK_FORMAT_R16G16B16_USCALED :: VkFormat
  
  pattern VK_FORMAT_R16G16B16_USCALED = VkFormat 86
  
  pattern VK_FORMAT_R16G16B16_SSCALED :: VkFormat
  
  pattern VK_FORMAT_R16G16B16_SSCALED = VkFormat 87
  
  pattern VK_FORMAT_R16G16B16_UINT :: VkFormat
  
  pattern VK_FORMAT_R16G16B16_UINT = VkFormat 88
  
  pattern VK_FORMAT_R16G16B16_SINT :: VkFormat
  
  pattern VK_FORMAT_R16G16B16_SINT = VkFormat 89
  
  pattern VK_FORMAT_R16G16B16_SFLOAT :: VkFormat
  
  pattern VK_FORMAT_R16G16B16_SFLOAT = VkFormat 90
  
  pattern VK_FORMAT_R16G16B16A16_UNORM :: VkFormat
  
  pattern VK_FORMAT_R16G16B16A16_UNORM = VkFormat 91
  
  pattern VK_FORMAT_R16G16B16A16_SNORM :: VkFormat
  
  pattern VK_FORMAT_R16G16B16A16_SNORM = VkFormat 92
  
  pattern VK_FORMAT_R16G16B16A16_USCALED :: VkFormat
  
  pattern VK_FORMAT_R16G16B16A16_USCALED = VkFormat 93
  
  pattern VK_FORMAT_R16G16B16A16_SSCALED :: VkFormat
  
  pattern VK_FORMAT_R16G16B16A16_SSCALED = VkFormat 94
  
  pattern VK_FORMAT_R16G16B16A16_UINT :: VkFormat
  
  pattern VK_FORMAT_R16G16B16A16_UINT = VkFormat 95
  
  pattern VK_FORMAT_R16G16B16A16_SINT :: VkFormat
  
  pattern VK_FORMAT_R16G16B16A16_SINT = VkFormat 96
  
  pattern VK_FORMAT_R16G16B16A16_SFLOAT :: VkFormat
  
  pattern VK_FORMAT_R16G16B16A16_SFLOAT = VkFormat 97
  
  pattern VK_FORMAT_R32_UINT :: VkFormat
  
  pattern VK_FORMAT_R32_UINT = VkFormat 98
  
  pattern VK_FORMAT_R32_SINT :: VkFormat
  
  pattern VK_FORMAT_R32_SINT = VkFormat 99
  
  pattern VK_FORMAT_R32_SFLOAT :: VkFormat
  
  pattern VK_FORMAT_R32_SFLOAT = VkFormat 100
  
  pattern VK_FORMAT_R32G32_UINT :: VkFormat
  
  pattern VK_FORMAT_R32G32_UINT = VkFormat 101
  
  pattern VK_FORMAT_R32G32_SINT :: VkFormat
  
  pattern VK_FORMAT_R32G32_SINT = VkFormat 102
  
  pattern VK_FORMAT_R32G32_SFLOAT :: VkFormat
  
  pattern VK_FORMAT_R32G32_SFLOAT = VkFormat 103
  
  pattern VK_FORMAT_R32G32B32_UINT :: VkFormat
  
  pattern VK_FORMAT_R32G32B32_UINT = VkFormat 104
  
  pattern VK_FORMAT_R32G32B32_SINT :: VkFormat
  
  pattern VK_FORMAT_R32G32B32_SINT = VkFormat 105
  
  pattern VK_FORMAT_R32G32B32_SFLOAT :: VkFormat
  
  pattern VK_FORMAT_R32G32B32_SFLOAT = VkFormat 106
  
  pattern VK_FORMAT_R32G32B32A32_UINT :: VkFormat
  
  pattern VK_FORMAT_R32G32B32A32_UINT = VkFormat 107
  
  pattern VK_FORMAT_R32G32B32A32_SINT :: VkFormat
  
  pattern VK_FORMAT_R32G32B32A32_SINT = VkFormat 108
  
  pattern VK_FORMAT_R32G32B32A32_SFLOAT :: VkFormat
  
  pattern VK_FORMAT_R32G32B32A32_SFLOAT = VkFormat 109
  
  pattern VK_FORMAT_R64_UINT :: VkFormat
  
  pattern VK_FORMAT_R64_UINT = VkFormat 110
  
  pattern VK_FORMAT_R64_SINT :: VkFormat
  
  pattern VK_FORMAT_R64_SINT = VkFormat 111
  
  pattern VK_FORMAT_R64_SFLOAT :: VkFormat
  
  pattern VK_FORMAT_R64_SFLOAT = VkFormat 112
  
  pattern VK_FORMAT_R64G64_UINT :: VkFormat
  
  pattern VK_FORMAT_R64G64_UINT = VkFormat 113
  
  pattern VK_FORMAT_R64G64_SINT :: VkFormat
  
  pattern VK_FORMAT_R64G64_SINT = VkFormat 114
  
  pattern VK_FORMAT_R64G64_SFLOAT :: VkFormat
  
  pattern VK_FORMAT_R64G64_SFLOAT = VkFormat 115
  
  pattern VK_FORMAT_R64G64B64_UINT :: VkFormat
  
  pattern VK_FORMAT_R64G64B64_UINT = VkFormat 116
  
  pattern VK_FORMAT_R64G64B64_SINT :: VkFormat
  
  pattern VK_FORMAT_R64G64B64_SINT = VkFormat 117
  
  pattern VK_FORMAT_R64G64B64_SFLOAT :: VkFormat
  
  pattern VK_FORMAT_R64G64B64_SFLOAT = VkFormat 118
  
  pattern VK_FORMAT_R64G64B64A64_UINT :: VkFormat
  
  pattern VK_FORMAT_R64G64B64A64_UINT = VkFormat 119
  
  pattern VK_FORMAT_R64G64B64A64_SINT :: VkFormat
  
  pattern VK_FORMAT_R64G64B64A64_SINT = VkFormat 120
  
  pattern VK_FORMAT_R64G64B64A64_SFLOAT :: VkFormat
  
  pattern VK_FORMAT_R64G64B64A64_SFLOAT = VkFormat 121
  
  pattern VK_FORMAT_B10G11R11_UFLOAT_PACK32 :: VkFormat
  
  pattern VK_FORMAT_B10G11R11_UFLOAT_PACK32 = VkFormat 122
  
  pattern VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 :: VkFormat
  
  pattern VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 = VkFormat 123
  
  pattern VK_FORMAT_D16_UNORM :: VkFormat
  
  pattern VK_FORMAT_D16_UNORM = VkFormat 124
  
  pattern VK_FORMAT_X8_D24_UNORM_PACK32 :: VkFormat
  
  pattern VK_FORMAT_X8_D24_UNORM_PACK32 = VkFormat 125
  
  pattern VK_FORMAT_D32_SFLOAT :: VkFormat
  
  pattern VK_FORMAT_D32_SFLOAT = VkFormat 126
  
  pattern VK_FORMAT_S8_UINT :: VkFormat
  
  pattern VK_FORMAT_S8_UINT = VkFormat 127
  
  pattern VK_FORMAT_D16_UNORM_S8_UINT :: VkFormat
  
  pattern VK_FORMAT_D16_UNORM_S8_UINT = VkFormat 128
  
  pattern VK_FORMAT_D24_UNORM_S8_UINT :: VkFormat
  
  pattern VK_FORMAT_D24_UNORM_S8_UINT = VkFormat 129
  
  pattern VK_FORMAT_D32_SFLOAT_S8_UINT :: VkFormat
  
  pattern VK_FORMAT_D32_SFLOAT_S8_UINT = VkFormat 130
  
  pattern VK_FORMAT_BC1_RGB_UNORM_BLOCK :: VkFormat
  
  pattern VK_FORMAT_BC1_RGB_UNORM_BLOCK = VkFormat 131
  
  pattern VK_FORMAT_BC1_RGB_SRGB_BLOCK :: VkFormat
  
  pattern VK_FORMAT_BC1_RGB_SRGB_BLOCK = VkFormat 132
  
  pattern VK_FORMAT_BC1_RGBA_UNORM_BLOCK :: VkFormat
  
  pattern VK_FORMAT_BC1_RGBA_UNORM_BLOCK = VkFormat 133
  
  pattern VK_FORMAT_BC1_RGBA_SRGB_BLOCK :: VkFormat
  
  pattern VK_FORMAT_BC1_RGBA_SRGB_BLOCK = VkFormat 134
  
  pattern VK_FORMAT_BC2_UNORM_BLOCK :: VkFormat
  
  pattern VK_FORMAT_BC2_UNORM_BLOCK = VkFormat 135
  
  pattern VK_FORMAT_BC2_SRGB_BLOCK :: VkFormat
  
  pattern VK_FORMAT_BC2_SRGB_BLOCK = VkFormat 136
  
  pattern VK_FORMAT_BC3_UNORM_BLOCK :: VkFormat
  
  pattern VK_FORMAT_BC3_UNORM_BLOCK = VkFormat 137
  
  pattern VK_FORMAT_BC3_SRGB_BLOCK :: VkFormat
  
  pattern VK_FORMAT_BC3_SRGB_BLOCK = VkFormat 138
  
  pattern VK_FORMAT_BC4_UNORM_BLOCK :: VkFormat
  
  pattern VK_FORMAT_BC4_UNORM_BLOCK = VkFormat 139
  
  pattern VK_FORMAT_BC4_SNORM_BLOCK :: VkFormat
  
  pattern VK_FORMAT_BC4_SNORM_BLOCK = VkFormat 140
  
  pattern VK_FORMAT_BC5_UNORM_BLOCK :: VkFormat
  
  pattern VK_FORMAT_BC5_UNORM_BLOCK = VkFormat 141
  
  pattern VK_FORMAT_BC5_SNORM_BLOCK :: VkFormat
  
  pattern VK_FORMAT_BC5_SNORM_BLOCK = VkFormat 142
  
  pattern VK_FORMAT_BC6H_UFLOAT_BLOCK :: VkFormat
  
  pattern VK_FORMAT_BC6H_UFLOAT_BLOCK = VkFormat 143
  
  pattern VK_FORMAT_BC6H_SFLOAT_BLOCK :: VkFormat
  
  pattern VK_FORMAT_BC6H_SFLOAT_BLOCK = VkFormat 144
  
  pattern VK_FORMAT_BC7_UNORM_BLOCK :: VkFormat
  
  pattern VK_FORMAT_BC7_UNORM_BLOCK = VkFormat 145
  
  pattern VK_FORMAT_BC7_SRGB_BLOCK :: VkFormat
  
  pattern VK_FORMAT_BC7_SRGB_BLOCK = VkFormat 146
  
  pattern VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK :: VkFormat
  
  pattern VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = VkFormat 147
  
  pattern VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK :: VkFormat
  
  pattern VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = VkFormat 148
  
  pattern VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK :: VkFormat
  
  pattern VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = VkFormat 149
  
  pattern VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK :: VkFormat
  
  pattern VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = VkFormat 150
  
  pattern VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK :: VkFormat
  
  pattern VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = VkFormat 151
  
  pattern VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK :: VkFormat
  
  pattern VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = VkFormat 152
  
  pattern VK_FORMAT_EAC_R11_UNORM_BLOCK :: VkFormat
  
  pattern VK_FORMAT_EAC_R11_UNORM_BLOCK = VkFormat 153
  
  pattern VK_FORMAT_EAC_R11_SNORM_BLOCK :: VkFormat
  
  pattern VK_FORMAT_EAC_R11_SNORM_BLOCK = VkFormat 154
  
  pattern VK_FORMAT_EAC_R11G11_UNORM_BLOCK :: VkFormat
  
  pattern VK_FORMAT_EAC_R11G11_UNORM_BLOCK = VkFormat 155
  
  pattern VK_FORMAT_EAC_R11G11_SNORM_BLOCK :: VkFormat
  
  pattern VK_FORMAT_EAC_R11G11_SNORM_BLOCK = VkFormat 156
  
  pattern VK_FORMAT_ASTC_4x4_UNORM_BLOCK :: VkFormat
  
  pattern VK_FORMAT_ASTC_4x4_UNORM_BLOCK = VkFormat 157
  
  pattern VK_FORMAT_ASTC_4x4_SRGB_BLOCK :: VkFormat
  
  pattern VK_FORMAT_ASTC_4x4_SRGB_BLOCK = VkFormat 158
  
  pattern VK_FORMAT_ASTC_5x4_UNORM_BLOCK :: VkFormat
  
  pattern VK_FORMAT_ASTC_5x4_UNORM_BLOCK = VkFormat 159
  
  pattern VK_FORMAT_ASTC_5x4_SRGB_BLOCK :: VkFormat
  
  pattern VK_FORMAT_ASTC_5x4_SRGB_BLOCK = VkFormat 160
  
  pattern VK_FORMAT_ASTC_5x5_UNORM_BLOCK :: VkFormat
  
  pattern VK_FORMAT_ASTC_5x5_UNORM_BLOCK = VkFormat 161
  
  pattern VK_FORMAT_ASTC_5x5_SRGB_BLOCK :: VkFormat
  
  pattern VK_FORMAT_ASTC_5x5_SRGB_BLOCK = VkFormat 162
  
  pattern VK_FORMAT_ASTC_6x5_UNORM_BLOCK :: VkFormat
  
  pattern VK_FORMAT_ASTC_6x5_UNORM_BLOCK = VkFormat 163
  
  pattern VK_FORMAT_ASTC_6x5_SRGB_BLOCK :: VkFormat
  
  pattern VK_FORMAT_ASTC_6x5_SRGB_BLOCK = VkFormat 164
  
  pattern VK_FORMAT_ASTC_6x6_UNORM_BLOCK :: VkFormat
  
  pattern VK_FORMAT_ASTC_6x6_UNORM_BLOCK = VkFormat 165
  
  pattern VK_FORMAT_ASTC_6x6_SRGB_BLOCK :: VkFormat
  
  pattern VK_FORMAT_ASTC_6x6_SRGB_BLOCK = VkFormat 166
  
  pattern VK_FORMAT_ASTC_8x5_UNORM_BLOCK :: VkFormat
  
  pattern VK_FORMAT_ASTC_8x5_UNORM_BLOCK = VkFormat 167
  
  pattern VK_FORMAT_ASTC_8x5_SRGB_BLOCK :: VkFormat
  
  pattern VK_FORMAT_ASTC_8x5_SRGB_BLOCK = VkFormat 168
  
  pattern VK_FORMAT_ASTC_8x6_UNORM_BLOCK :: VkFormat
  
  pattern VK_FORMAT_ASTC_8x6_UNORM_BLOCK = VkFormat 169
  
  pattern VK_FORMAT_ASTC_8x6_SRGB_BLOCK :: VkFormat
  
  pattern VK_FORMAT_ASTC_8x6_SRGB_BLOCK = VkFormat 170
  
  pattern VK_FORMAT_ASTC_8x8_UNORM_BLOCK :: VkFormat
  
  pattern VK_FORMAT_ASTC_8x8_UNORM_BLOCK = VkFormat 171
  
  pattern VK_FORMAT_ASTC_8x8_SRGB_BLOCK :: VkFormat
  
  pattern VK_FORMAT_ASTC_8x8_SRGB_BLOCK = VkFormat 172
  
  pattern VK_FORMAT_ASTC_10x5_UNORM_BLOCK :: VkFormat
  
  pattern VK_FORMAT_ASTC_10x5_UNORM_BLOCK = VkFormat 173
  
  pattern VK_FORMAT_ASTC_10x5_SRGB_BLOCK :: VkFormat
  
  pattern VK_FORMAT_ASTC_10x5_SRGB_BLOCK = VkFormat 174
  
  pattern VK_FORMAT_ASTC_10x6_UNORM_BLOCK :: VkFormat
  
  pattern VK_FORMAT_ASTC_10x6_UNORM_BLOCK = VkFormat 175
  
  pattern VK_FORMAT_ASTC_10x6_SRGB_BLOCK :: VkFormat
  
  pattern VK_FORMAT_ASTC_10x6_SRGB_BLOCK = VkFormat 176
  
  pattern VK_FORMAT_ASTC_10x8_UNORM_BLOCK :: VkFormat
  
  pattern VK_FORMAT_ASTC_10x8_UNORM_BLOCK = VkFormat 177
  
  pattern VK_FORMAT_ASTC_10x8_SRGB_BLOCK :: VkFormat
  
  pattern VK_FORMAT_ASTC_10x8_SRGB_BLOCK = VkFormat 178
  
  pattern VK_FORMAT_ASTC_10x10_UNORM_BLOCK :: VkFormat
  
  pattern VK_FORMAT_ASTC_10x10_UNORM_BLOCK = VkFormat 179
  
  pattern VK_FORMAT_ASTC_10x10_SRGB_BLOCK :: VkFormat
  
  pattern VK_FORMAT_ASTC_10x10_SRGB_BLOCK = VkFormat 180
  
  pattern VK_FORMAT_ASTC_12x10_UNORM_BLOCK :: VkFormat
  
  pattern VK_FORMAT_ASTC_12x10_UNORM_BLOCK = VkFormat 181
  
  pattern VK_FORMAT_ASTC_12x10_SRGB_BLOCK :: VkFormat
  
  pattern VK_FORMAT_ASTC_12x10_SRGB_BLOCK = VkFormat 182
  
  pattern VK_FORMAT_ASTC_12x12_UNORM_BLOCK :: VkFormat
  
  pattern VK_FORMAT_ASTC_12x12_UNORM_BLOCK = VkFormat 183
  
  pattern VK_FORMAT_ASTC_12x12_SRGB_BLOCK :: VkFormat
  
  pattern VK_FORMAT_ASTC_12x12_SRGB_BLOCK = VkFormat 184
  
  newtype VkFormatFeatureBitmask (a ::
                                    FlagType) = VkFormatFeatureBitmask VkFlags
                                                deriving (Eq, Ord, Storable)
  
  type VkFormatFeatureFlags = VkFormatFeatureBitmask FlagMask
  
  type VkFormatFeatureFlagBits = VkFormatFeatureBitmask FlagBit
  
  pattern VkFormatFeatureFlagBits ::
          VkFlags -> VkFormatFeatureBitmask FlagBit
  
  pattern VkFormatFeatureFlagBits n = VkFormatFeatureBitmask n
  
  pattern VkFormatFeatureFlags ::
          VkFlags -> VkFormatFeatureBitmask FlagMask
  
  pattern VkFormatFeatureFlags n = VkFormatFeatureBitmask n
  
  deriving instance Bits (VkFormatFeatureBitmask FlagMask)
  
  deriving instance FiniteBits (VkFormatFeatureBitmask FlagMask)
  
  instance Show (VkFormatFeatureBitmask a) where
      showsPrec _ VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
        = showString "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT"
      showsPrec _ VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT
        = showString "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT"
      showsPrec _ VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT
        = showString "VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT"
      showsPrec _ VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT
        = showString "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT"
      showsPrec _ VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT
        = showString "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT"
      showsPrec _ VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT
        = showString "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT"
      showsPrec _ VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT
        = showString "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT"
      showsPrec _ VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT
        = showString "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT"
      showsPrec _ VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT
        = showString "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT"
      showsPrec _ VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT
        = showString "VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT"
      showsPrec _ VK_FORMAT_FEATURE_BLIT_SRC_BIT
        = showString "VK_FORMAT_FEATURE_BLIT_SRC_BIT"
      showsPrec _ VK_FORMAT_FEATURE_BLIT_DST_BIT
        = showString "VK_FORMAT_FEATURE_BLIT_DST_BIT"
      showsPrec _ VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
        = showString "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT"
      showsPrec p (VkFormatFeatureBitmask x)
        = showParen (p >= 11)
            (showString "VkFormatFeatureBitmask " . showsPrec 11 x)
  
  instance Read (VkFormatFeatureBitmask a) where
      readPrec
        = parens
            (choose
               [("VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT",
                 pure VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT),
                ("VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT",
                 pure VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT),
                ("VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT",
                 pure VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT),
                ("VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT",
                 pure VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT),
                ("VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT",
                 pure VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT),
                ("VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT",
                 pure VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT),
                ("VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT",
                 pure VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT),
                ("VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT",
                 pure VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT),
                ("VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT",
                 pure VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT),
                ("VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT",
                 pure VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT),
                ("VK_FORMAT_FEATURE_BLIT_SRC_BIT",
                 pure VK_FORMAT_FEATURE_BLIT_SRC_BIT),
                ("VK_FORMAT_FEATURE_BLIT_DST_BIT",
                 pure VK_FORMAT_FEATURE_BLIT_DST_BIT),
                ("VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT",
                 pure VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT)]
               +++
               prec 10
                 (expectP (Ident "VkFormatFeatureBitmask") >>
                    (VkFormatFeatureBitmask <$> step readPrec)))
  
  -- | Format can be used for sampled images (SAMPLED_IMAGE and COMBINED_IMAGE_SAMPLER descriptor types)
  --
  --   bitpos = @0@
  pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT ::
          VkFormatFeatureBitmask a
  
  pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT =
          VkFormatFeatureBitmask 1
  
  -- | Format can be used for storage images (STORAGE_IMAGE descriptor type)
  --
  --   bitpos = @1@
  pattern VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT ::
          VkFormatFeatureBitmask a
  
  pattern VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT =
          VkFormatFeatureBitmask 2
  
  -- | Format supports atomic operations in case it is used for storage images
  --
  --   bitpos = @2@
  pattern VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT ::
          VkFormatFeatureBitmask a
  
  pattern VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT =
          VkFormatFeatureBitmask 4
  
  -- | Format can be used for uniform texel buffers (TBOs)
  --
  --   bitpos = @3@
  pattern VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT ::
          VkFormatFeatureBitmask a
  
  pattern VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT =
          VkFormatFeatureBitmask 8
  
  -- | Format can be used for storage texel buffers (IBOs)
  --
  --   bitpos = @4@
  pattern VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT ::
          VkFormatFeatureBitmask a
  
  pattern VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT =
          VkFormatFeatureBitmask 16
  
  -- | Format supports atomic operations in case it is used for storage texel buffers
  --
  --   bitpos = @5@
  pattern VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT ::
          VkFormatFeatureBitmask a
  
  pattern VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT =
          VkFormatFeatureBitmask 32
  
  -- | Format can be used for vertex buffers (VBOs)
  --
  --   bitpos = @6@
  pattern VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT ::
          VkFormatFeatureBitmask a
  
  pattern VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT =
          VkFormatFeatureBitmask 64
  
  -- | Format can be used for color attachment images
  --
  --   bitpos = @7@
  pattern VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT ::
          VkFormatFeatureBitmask a
  
  pattern VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT =
          VkFormatFeatureBitmask 128
  
  -- | Format supports blending in case it is used for color attachment images
  --
  --   bitpos = @8@
  pattern VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT ::
          VkFormatFeatureBitmask a
  
  pattern VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT =
          VkFormatFeatureBitmask 256
  
  -- | Format can be used for depth/stencil attachment images
  --
  --   bitpos = @9@
  pattern VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT ::
          VkFormatFeatureBitmask a
  
  pattern VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT =
          VkFormatFeatureBitmask 512
  
  -- | Format can be used as the source image of blits with vkCmdBlitImage
  --
  --   bitpos = @10@
  pattern VK_FORMAT_FEATURE_BLIT_SRC_BIT :: VkFormatFeatureBitmask a
  
  pattern VK_FORMAT_FEATURE_BLIT_SRC_BIT =
          VkFormatFeatureBitmask 1024
  
  -- | Format can be used as the destination image of blits with vkCmdBlitImage
  --
  --   bitpos = @11@
  pattern VK_FORMAT_FEATURE_BLIT_DST_BIT :: VkFormatFeatureBitmask a
  
  pattern VK_FORMAT_FEATURE_BLIT_DST_BIT =
          VkFormatFeatureBitmask 2048
  
  -- | Format can be filtered with VK_FILTER_LINEAR when being sampled
  --
  --   bitpos = @12@
  pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT ::
          VkFormatFeatureBitmask a
  
  pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT =
          VkFormatFeatureBitmask 4096
  