{-# LINE 1 "src-gen/Graphics/Vulkan/Types/Struct/Performance.hsc" #-}


{-# LANGUAGE DataKinds             #-}
{-# LANGUAGE FlexibleInstances     #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE Strict                #-}
{-# LANGUAGE TypeFamilies          #-}
module Graphics.Vulkan.Types.Struct.Performance
       (VkPerformanceConfigurationAcquireInfoINTEL,
        VkPerformanceCounterDescriptionKHR, VkPerformanceCounterKHR,
        VkPerformanceCounterResultKHR, VkPerformanceMarkerInfoINTEL,
        VkPerformanceOverrideInfoINTEL, VkPerformanceQuerySubmitInfoKHR,
        VkPerformanceStreamMarkerInfoINTEL, VkPerformanceValueDataINTEL,
        VkPerformanceValueINTEL)
       where
import Graphics.Vulkan.Constants                (VK_MAX_DESCRIPTION_SIZE,
                                                 VK_UUID_SIZE)
import Graphics.Vulkan.Marshal
import Graphics.Vulkan.Marshal.Internal
import Graphics.Vulkan.Types.BaseTypes          (VkBool32)
import Graphics.Vulkan.Types.Enum.Performance   (VkPerformanceConfigurationTypeINTEL,
                                                 VkPerformanceCounterDescriptionFlagsKHR,
                                                 VkPerformanceCounterScopeKHR,
                                                 VkPerformanceCounterStorageKHR,
                                                 VkPerformanceCounterUnitKHR,
                                                 VkPerformanceOverrideTypeINTEL,
                                                 VkPerformanceValueTypeINTEL)
import Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
import Graphics.Vulkan.Types.Struct.SubmitInfo  (VkSubmitInfo)

-- | > typedef struct VkPerformanceConfigurationAcquireInfoINTEL {
--   >     VkStructureType sType;
--   >     const void*                         pNext;
--   >     VkPerformanceConfigurationTypeINTEL type;
--   > } VkPerformanceConfigurationAcquireInfoINTEL;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkPerformanceConfigurationAcquireInfoINTEL VkPerformanceConfigurationAcquireInfoINTEL registry at www.khronos.org>
type VkPerformanceConfigurationAcquireInfoINTEL =
     VkStruct VkPerformanceConfigurationAcquireInfoINTEL' -- ' closing tick for hsc2hs

data VkPerformanceConfigurationAcquireInfoINTEL' -- ' closing tick for hsc2hs

instance VulkanMarshal VkPerformanceConfigurationAcquireInfoINTEL
         where
    type StructRep VkPerformanceConfigurationAcquireInfoINTEL =
         'StructMeta "VkPerformanceConfigurationAcquireInfoINTEL" -- ' closing tick for hsc2hs
           VkPerformanceConfigurationAcquireInfoINTEL
           (24)
{-# LINE 49 "src-gen/Graphics/Vulkan/Types/Struct/Performance.hsc" #-}
           8
{-# LINE 50 "src-gen/Graphics/Vulkan/Types/Struct/Performance.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 52 "src-gen/Graphics/Vulkan/Types/Struct/Performance.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False 
                                                   (8)
{-# LINE 57 "src-gen/Graphics/Vulkan/Types/Struct/Performance.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "type" VkPerformanceConfigurationTypeINTEL 'False
                (16)
{-# LINE 62 "src-gen/Graphics/Vulkan/Types/Struct/Performance.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[] -- ' closing tick for hsc2hs

-- | > typedef struct VkPerformanceCounterDescriptionKHR {
--   >     VkStructureType sType;
--   >     const void*                             pNext;
--   >     VkPerformanceCounterDescriptionFlagsKHR flags;
--   >     char                                    name[VK_MAX_DESCRIPTION_SIZE];
--   >     char                                    category[VK_MAX_DESCRIPTION_SIZE];
--   >     char                                    description[VK_MAX_DESCRIPTION_SIZE];
--   > } VkPerformanceCounterDescriptionKHR;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkPerformanceCounterDescriptionKHR VkPerformanceCounterDescriptionKHR registry at www.khronos.org>
type VkPerformanceCounterDescriptionKHR =
     VkStruct VkPerformanceCounterDescriptionKHR' -- ' closing tick for hsc2hs

data VkPerformanceCounterDescriptionKHR' -- ' closing tick for hsc2hs

instance VulkanMarshal VkPerformanceCounterDescriptionKHR where
    type StructRep VkPerformanceCounterDescriptionKHR =
         'StructMeta "VkPerformanceCounterDescriptionKHR" -- ' closing tick for hsc2hs
           VkPerformanceCounterDescriptionKHR
           (792)
{-# LINE 89 "src-gen/Graphics/Vulkan/Types/Struct/Performance.hsc" #-}
           8
{-# LINE 90 "src-gen/Graphics/Vulkan/Types/Struct/Performance.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 92 "src-gen/Graphics/Vulkan/Types/Struct/Performance.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False 
                                                   (8)
{-# LINE 97 "src-gen/Graphics/Vulkan/Types/Struct/Performance.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "flags" VkPerformanceCounterDescriptionFlagsKHR 'True
                (16)
{-# LINE 102 "src-gen/Graphics/Vulkan/Types/Struct/Performance.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "name" CChar 'False 
                                             (20)
{-# LINE 107 "src-gen/Graphics/Vulkan/Types/Struct/Performance.hsc" #-}
                VK_MAX_DESCRIPTION_SIZE
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "category" CChar 'False 
                                                 (276)
{-# LINE 112 "src-gen/Graphics/Vulkan/Types/Struct/Performance.hsc" #-}
                VK_MAX_DESCRIPTION_SIZE
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "description" CChar 'False 
                                                    (532)
{-# LINE 117 "src-gen/Graphics/Vulkan/Types/Struct/Performance.hsc" #-}
                VK_MAX_DESCRIPTION_SIZE
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'True -- ' closing tick for hsc2hs
           '[] -- ' closing tick for hsc2hs

-- | > typedef struct VkPerformanceCounterKHR {
--   >     VkStructureType sType;
--   >     const void*                             pNext;
--   >     VkPerformanceCounterUnitKHR        unit;
--   >     VkPerformanceCounterScopeKHR       scope;
--   >     VkPerformanceCounterStorageKHR     storage;
--   >     uint8_t uuid[VK_UUID_SIZE];
--   > } VkPerformanceCounterKHR;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkPerformanceCounterKHR VkPerformanceCounterKHR registry at www.khronos.org>
type VkPerformanceCounterKHR = VkStruct VkPerformanceCounterKHR' -- ' closing tick for hsc2hs

data VkPerformanceCounterKHR' -- ' closing tick for hsc2hs

instance VulkanMarshal VkPerformanceCounterKHR where
    type StructRep VkPerformanceCounterKHR =
         'StructMeta "VkPerformanceCounterKHR" VkPerformanceCounterKHR -- ' closing tick for hsc2hs
           (48)
{-# LINE 142 "src-gen/Graphics/Vulkan/Types/Struct/Performance.hsc" #-}
           8
{-# LINE 143 "src-gen/Graphics/Vulkan/Types/Struct/Performance.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 145 "src-gen/Graphics/Vulkan/Types/Struct/Performance.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False 
                                                   (8)
{-# LINE 150 "src-gen/Graphics/Vulkan/Types/Struct/Performance.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "unit" VkPerformanceCounterUnitKHR 'False 
                                                                   (16)
{-# LINE 155 "src-gen/Graphics/Vulkan/Types/Struct/Performance.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "scope" VkPerformanceCounterScopeKHR 'False 
                                                                     (20)
{-# LINE 160 "src-gen/Graphics/Vulkan/Types/Struct/Performance.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "storage" VkPerformanceCounterStorageKHR 'False
                (24)
{-# LINE 165 "src-gen/Graphics/Vulkan/Types/Struct/Performance.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "uuid" Word8 'False 
                                             (28)
{-# LINE 170 "src-gen/Graphics/Vulkan/Types/Struct/Performance.hsc" #-}
                VK_UUID_SIZE
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'True -- ' closing tick for hsc2hs
           '[] -- ' closing tick for hsc2hs

-- | // Union of all the possible return types a counter result could return
--
--   > typedef union VkPerformanceCounterResultKHR {
--   >     int32_t  int32;
--   >     int64_t  int64;
--   >     uint32_t uint32;
--   >     uint64_t uint64;
--   >     float    float32;
--   >     double   float64;
--   > } VkPerformanceCounterResultKHR;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkPerformanceCounterResultKHR VkPerformanceCounterResultKHR registry at www.khronos.org>
type VkPerformanceCounterResultKHR =
     VkStruct VkPerformanceCounterResultKHR' -- ' closing tick for hsc2hs

data VkPerformanceCounterResultKHR' -- ' closing tick for hsc2hs

instance VulkanMarshal VkPerformanceCounterResultKHR where
    type StructRep VkPerformanceCounterResultKHR =
         'StructMeta "VkPerformanceCounterResultKHR" -- ' closing tick for hsc2hs
           VkPerformanceCounterResultKHR
           (8)
{-# LINE 199 "src-gen/Graphics/Vulkan/Types/Struct/Performance.hsc" #-}
           8
{-# LINE 200 "src-gen/Graphics/Vulkan/Types/Struct/Performance.hsc" #-}
           '[('FieldMeta "int32" Int32 'False  -- ' closing tick for hsc2hs
                                              (0)
{-# LINE 202 "src-gen/Graphics/Vulkan/Types/Struct/Performance.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "int64" Int64 'False 
                                              (0)
{-# LINE 207 "src-gen/Graphics/Vulkan/Types/Struct/Performance.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "uint32" Word32 'False 
                                                (0)
{-# LINE 212 "src-gen/Graphics/Vulkan/Types/Struct/Performance.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "uint64" Word64 'False 
                                                (0)
{-# LINE 217 "src-gen/Graphics/Vulkan/Types/Struct/Performance.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "float32" ( -- ' closing tick for hsc2hs
                                    Float
{-# LINE 222 "src-gen/Graphics/Vulkan/Types/Struct/Performance.hsc" #-}
                                    ) 'False  -- ' closing tick for hsc2hs
                                             (0)
{-# LINE 224 "src-gen/Graphics/Vulkan/Types/Struct/Performance.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "float64" ( -- ' closing tick for hsc2hs
                                    Double
{-# LINE 229 "src-gen/Graphics/Vulkan/Types/Struct/Performance.hsc" #-}
                                    ) 'False  -- ' closing tick for hsc2hs
                                             (0)
{-# LINE 231 "src-gen/Graphics/Vulkan/Types/Struct/Performance.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'True -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[] -- ' closing tick for hsc2hs

-- | > typedef struct VkPerformanceMarkerInfoINTEL {
--   >     VkStructureType sType;
--   >     const void*                         pNext;
--   >     uint64_t                            marker;
--   > } VkPerformanceMarkerInfoINTEL;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkPerformanceMarkerInfoINTEL VkPerformanceMarkerInfoINTEL registry at www.khronos.org>
type VkPerformanceMarkerInfoINTEL =
     VkStruct VkPerformanceMarkerInfoINTEL' -- ' closing tick for hsc2hs

data VkPerformanceMarkerInfoINTEL' -- ' closing tick for hsc2hs

instance VulkanMarshal VkPerformanceMarkerInfoINTEL where
    type StructRep VkPerformanceMarkerInfoINTEL =
         'StructMeta "VkPerformanceMarkerInfoINTEL" -- ' closing tick for hsc2hs
           VkPerformanceMarkerInfoINTEL
           (24)
{-# LINE 255 "src-gen/Graphics/Vulkan/Types/Struct/Performance.hsc" #-}
           8
{-# LINE 256 "src-gen/Graphics/Vulkan/Types/Struct/Performance.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 258 "src-gen/Graphics/Vulkan/Types/Struct/Performance.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False 
                                                   (8)
{-# LINE 263 "src-gen/Graphics/Vulkan/Types/Struct/Performance.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "marker" Word64 'False 
                                                (16)
{-# LINE 268 "src-gen/Graphics/Vulkan/Types/Struct/Performance.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[] -- ' closing tick for hsc2hs

-- | > typedef struct VkPerformanceOverrideInfoINTEL {
--   >     VkStructureType sType;
--   >     const void*                         pNext;
--   >     VkPerformanceOverrideTypeINTEL      type;
--   >     VkBool32                            enable;
--   >     uint64_t                            parameter;
--   > } VkPerformanceOverrideInfoINTEL;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkPerformanceOverrideInfoINTEL VkPerformanceOverrideInfoINTEL registry at www.khronos.org>
type VkPerformanceOverrideInfoINTEL =
     VkStruct VkPerformanceOverrideInfoINTEL' -- ' closing tick for hsc2hs

data VkPerformanceOverrideInfoINTEL' -- ' closing tick for hsc2hs

instance VulkanMarshal VkPerformanceOverrideInfoINTEL where
    type StructRep VkPerformanceOverrideInfoINTEL =
         'StructMeta "VkPerformanceOverrideInfoINTEL" -- ' closing tick for hsc2hs
           VkPerformanceOverrideInfoINTEL
           (32)
{-# LINE 294 "src-gen/Graphics/Vulkan/Types/Struct/Performance.hsc" #-}
           8
{-# LINE 295 "src-gen/Graphics/Vulkan/Types/Struct/Performance.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 297 "src-gen/Graphics/Vulkan/Types/Struct/Performance.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False 
                                                   (8)
{-# LINE 302 "src-gen/Graphics/Vulkan/Types/Struct/Performance.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "type" VkPerformanceOverrideTypeINTEL 'False 
                                                                      (16)
{-# LINE 307 "src-gen/Graphics/Vulkan/Types/Struct/Performance.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "enable" VkBool32 'False 
                                                  (20)
{-# LINE 312 "src-gen/Graphics/Vulkan/Types/Struct/Performance.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "parameter" Word64 'False 
                                                   (24)
{-# LINE 317 "src-gen/Graphics/Vulkan/Types/Struct/Performance.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[] -- ' closing tick for hsc2hs

-- | > typedef struct VkPerformanceQuerySubmitInfoKHR {
--   >     VkStructureType sType;
--   >     const void*         pNext;
--   >     uint32_t            counterPassIndex;
--   > } VkPerformanceQuerySubmitInfoKHR;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkPerformanceQuerySubmitInfoKHR VkPerformanceQuerySubmitInfoKHR registry at www.khronos.org>
type VkPerformanceQuerySubmitInfoKHR =
     VkStruct VkPerformanceQuerySubmitInfoKHR' -- ' closing tick for hsc2hs

data VkPerformanceQuerySubmitInfoKHR' -- ' closing tick for hsc2hs

instance VulkanMarshal VkPerformanceQuerySubmitInfoKHR where
    type StructRep VkPerformanceQuerySubmitInfoKHR =
         'StructMeta "VkPerformanceQuerySubmitInfoKHR" -- ' closing tick for hsc2hs
           VkPerformanceQuerySubmitInfoKHR
           (24)
{-# LINE 341 "src-gen/Graphics/Vulkan/Types/Struct/Performance.hsc" #-}
           8
{-# LINE 342 "src-gen/Graphics/Vulkan/Types/Struct/Performance.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 344 "src-gen/Graphics/Vulkan/Types/Struct/Performance.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False 
                                                   (8)
{-# LINE 349 "src-gen/Graphics/Vulkan/Types/Struct/Performance.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "counterPassIndex" Word32 'False 
                                                          (16)
{-# LINE 354 "src-gen/Graphics/Vulkan/Types/Struct/Performance.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[VkSubmitInfo] -- ' closing tick for hsc2hs

-- | > typedef struct VkPerformanceStreamMarkerInfoINTEL {
--   >     VkStructureType sType;
--   >     const void*                         pNext;
--   >     uint32_t                            marker;
--   > } VkPerformanceStreamMarkerInfoINTEL;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkPerformanceStreamMarkerInfoINTEL VkPerformanceStreamMarkerInfoINTEL registry at www.khronos.org>
type VkPerformanceStreamMarkerInfoINTEL =
     VkStruct VkPerformanceStreamMarkerInfoINTEL' -- ' closing tick for hsc2hs

data VkPerformanceStreamMarkerInfoINTEL' -- ' closing tick for hsc2hs

instance VulkanMarshal VkPerformanceStreamMarkerInfoINTEL where
    type StructRep VkPerformanceStreamMarkerInfoINTEL =
         'StructMeta "VkPerformanceStreamMarkerInfoINTEL" -- ' closing tick for hsc2hs
           VkPerformanceStreamMarkerInfoINTEL
           (24)
{-# LINE 378 "src-gen/Graphics/Vulkan/Types/Struct/Performance.hsc" #-}
           8
{-# LINE 379 "src-gen/Graphics/Vulkan/Types/Struct/Performance.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 381 "src-gen/Graphics/Vulkan/Types/Struct/Performance.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False 
                                                   (8)
{-# LINE 386 "src-gen/Graphics/Vulkan/Types/Struct/Performance.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "marker" Word32 'False 
                                                (16)
{-# LINE 391 "src-gen/Graphics/Vulkan/Types/Struct/Performance.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[] -- ' closing tick for hsc2hs

-- | > typedef union VkPerformanceValueDataINTEL {
--   >     uint32_t                           value32;
--   >     uint64_t                           value64;
--   >     float                               valueFloat;
--   >     VkBool32                             valueBool;
--   >     const char*  valueString;
--   > } VkPerformanceValueDataINTEL;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkPerformanceValueDataINTEL VkPerformanceValueDataINTEL registry at www.khronos.org>
type VkPerformanceValueDataINTEL =
     VkStruct VkPerformanceValueDataINTEL' -- ' closing tick for hsc2hs

data VkPerformanceValueDataINTEL' -- ' closing tick for hsc2hs

instance VulkanMarshal VkPerformanceValueDataINTEL where
    type StructRep VkPerformanceValueDataINTEL =
         'StructMeta "VkPerformanceValueDataINTEL" -- ' closing tick for hsc2hs
           VkPerformanceValueDataINTEL
           (8)
{-# LINE 417 "src-gen/Graphics/Vulkan/Types/Struct/Performance.hsc" #-}
           8
{-# LINE 418 "src-gen/Graphics/Vulkan/Types/Struct/Performance.hsc" #-}
           '[('FieldMeta "value32" Word32 'False  -- ' closing tick for hsc2hs
                                                 (0)
{-# LINE 420 "src-gen/Graphics/Vulkan/Types/Struct/Performance.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "value64" Word64 'False 
                                                 (0)
{-# LINE 425 "src-gen/Graphics/Vulkan/Types/Struct/Performance.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "valueFloat" ( -- ' closing tick for hsc2hs
                                       Float
{-# LINE 430 "src-gen/Graphics/Vulkan/Types/Struct/Performance.hsc" #-}
                                       ) 'False -- ' closing tick for hsc2hs
                (0)
{-# LINE 432 "src-gen/Graphics/Vulkan/Types/Struct/Performance.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "valueBool" VkBool32 'False 
                                                     (0)
{-# LINE 437 "src-gen/Graphics/Vulkan/Types/Struct/Performance.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "valueString" CString 'False 
                                                      (0)
{-# LINE 442 "src-gen/Graphics/Vulkan/Types/Struct/Performance.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'True -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[] -- ' closing tick for hsc2hs

-- | > typedef struct VkPerformanceValueINTEL {
--   >     VkPerformanceValueTypeINTEL        type;
--   >     VkPerformanceValueDataINTEL        data;
--   > } VkPerformanceValueINTEL;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkPerformanceValueINTEL VkPerformanceValueINTEL registry at www.khronos.org>
type VkPerformanceValueINTEL = VkStruct VkPerformanceValueINTEL' -- ' closing tick for hsc2hs

data VkPerformanceValueINTEL' -- ' closing tick for hsc2hs

instance VulkanMarshal VkPerformanceValueINTEL where
    type StructRep VkPerformanceValueINTEL =
         'StructMeta "VkPerformanceValueINTEL" VkPerformanceValueINTEL -- ' closing tick for hsc2hs
           (16)
{-# LINE 463 "src-gen/Graphics/Vulkan/Types/Struct/Performance.hsc" #-}
           8
{-# LINE 464 "src-gen/Graphics/Vulkan/Types/Struct/Performance.hsc" #-}
           '[('FieldMeta "type" VkPerformanceValueTypeINTEL 'False  -- ' closing tick for hsc2hs
                                                                   (0)
{-# LINE 466 "src-gen/Graphics/Vulkan/Types/Struct/Performance.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "data" VkPerformanceValueDataINTEL 'False 
                                                                   (8)
{-# LINE 471 "src-gen/Graphics/Vulkan/Types/Struct/Performance.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[] -- ' closing tick for hsc2hs