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


{-# LANGUAGE CPP                   #-}
{-# LANGUAGE DataKinds             #-}
{-# LANGUAGE FlexibleInstances     #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE Strict                #-}
{-# LANGUAGE TypeFamilies          #-}
{-# LANGUAGE TypeOperators         #-}
{-# LANGUAGE UndecidableInstances  #-}
module Graphics.Vulkan.Types.Struct.EnableBetaExtensions
       (VkAabbPositionsKHR, VkAccelerationStructureBuildGeometryInfoKHR,
        VkAccelerationStructureBuildOffsetInfoKHR,
        VkAccelerationStructureCreateGeometryTypeInfoKHR,
        VkAccelerationStructureCreateInfoKHR,
        VkAccelerationStructureDeviceAddressInfoKHR,
        VkAccelerationStructureGeometryAabbsDataKHR,
        VkAccelerationStructureGeometryDataKHR,
        VkAccelerationStructureGeometryInstancesDataKHR,
        VkAccelerationStructureGeometryKHR,
        VkAccelerationStructureGeometryTrianglesDataKHR,
        VkAccelerationStructureInstanceKHR,
        VkAccelerationStructureMemoryRequirementsInfoKHR,
        VkAccelerationStructureVersionKHR,
        VkBindAccelerationStructureMemoryInfoKHR,
        VkCopyAccelerationStructureInfoKHR,
        VkCopyAccelerationStructureToMemoryInfoKHR,
        VkCopyMemoryToAccelerationStructureInfoKHR,
        VkDeferredOperationInfoKHR, VkDeviceOrHostAddressConstKHR,
        VkDeviceOrHostAddressKHR, VkPhysicalDeviceRayTracingFeaturesKHR,
        VkPhysicalDeviceRayTracingPropertiesKHR,
        VkPipelineLibraryCreateInfoKHR, VkRayTracingPipelineCreateInfoKHR,
        VkRayTracingPipelineInterfaceCreateInfoKHR,
        VkRayTracingShaderGroupCreateInfoKHR, VkStridedBufferRegionKHR,
        VkTraceRaysIndirectCommandKHR, VkTransformMatrixKHR,
        VkWriteDescriptorSetAccelerationStructureKHR)
       where

import GHC.TypeLits (type (+))

import Graphics.Vulkan.Marshal
import Graphics.Vulkan.Marshal.Internal
import Graphics.Vulkan.Types.BaseTypes                           (VkBool32, VkDeviceAddress,
                                                                  VkDeviceSize)
import Graphics.Vulkan.Types.Enum.AccelerationStructure          (VkAccelerationStructureBuildTypeKHR,
                                                                  VkAccelerationStructureMemoryRequirementsTypeKHR,
                                                                  VkAccelerationStructureTypeKHR)
import Graphics.Vulkan.Types.Enum.BuildAccelerationStructureFlag (VkBuildAccelerationStructureFlagsKHR)
import Graphics.Vulkan.Types.Enum.CopyAccelerationStructureMode  (VkCopyAccelerationStructureModeKHR)
import Graphics.Vulkan.Types.Enum.Format                         (VkFormat)
import Graphics.Vulkan.Types.Enum.Geometry                       (VkGeometryFlagsKHR,
                                                                  VkGeometryTypeKHR)
import Graphics.Vulkan.Types.Enum.IndexType                      (VkIndexType)
import Graphics.Vulkan.Types.Enum.Pipeline                       (VkPipelineCreateFlags)
import Graphics.Vulkan.Types.Enum.RayTracingShaderGroupType      (VkRayTracingShaderGroupTypeKHR)
import Graphics.Vulkan.Types.Enum.StructureType                  (VkStructureType)
import Graphics.Vulkan.Types.Handles                             (VkAccelerationStructureKHR,
                                                                  VkBuffer,
                                                                  VkDeferredOperationKHR,
                                                                  VkDeviceMemory,
                                                                  VkPipeline,
                                                                  VkPipelineLayout)
import Graphics.Vulkan.Types.Struct.Device                       (VkDeviceCreateInfo)
import Graphics.Vulkan.Types.Struct.PhysicalDevice               (VkPhysicalDeviceFeatures2,
                                                                  VkPhysicalDeviceProperties2)
import

{-# LINE 68 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
  {-# SOURCE #-}

{-# LINE 70 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
    Graphics.Vulkan.Types.Struct.Pipeline                        (VkPipelineShaderStageCreateInfo)
import {-# SOURCE #-} Graphics.Vulkan.Types.Struct.WriteDescriptorSet (VkWriteDescriptorSet)

-- | > typedef struct VkAabbPositionsKHR {
--   >     float                                                   minX;
--   >     float                                                   minY;
--   >     float                                                   minZ;
--   >     float                                                   maxX;
--   >     float                                                   maxY;
--   >     float                                                   maxZ;
--   > } VkAabbPositionsKHR;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkAabbPositionsKHR VkAabbPositionsKHR registry at www.khronos.org>
type VkAabbPositionsKHR = VkStruct VkAabbPositionsKHR' -- ' closing tick for hsc2hs

data VkAabbPositionsKHR' -- ' closing tick for hsc2hs

instance VulkanMarshal VkAabbPositionsKHR where
    type StructRep VkAabbPositionsKHR =
         'StructMeta "VkAabbPositionsKHR" VkAabbPositionsKHR  -- ' closing tick for hsc2hs
                                                             (24)
{-# LINE 91 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
           4
{-# LINE 92 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
           '[('FieldMeta "minX" (
                                 Float
{-# LINE 94 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                                 ) 'False  -- ' closing tick for hsc2hs
                                          (0)
{-# LINE 96 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "minY" ( -- ' closing tick for hsc2hs
                                 Float
{-# LINE 101 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                                 ) 'False  -- ' closing tick for hsc2hs
                                          (4)
{-# LINE 103 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "minZ" ( -- ' closing tick for hsc2hs
                                 Float
{-# LINE 108 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                                 ) 'False  -- ' closing tick for hsc2hs
                                          (8)
{-# LINE 110 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "maxX" ( -- ' closing tick for hsc2hs
                                 Float
{-# LINE 115 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                                 ) 'False  -- ' closing tick for hsc2hs
                                          (12)
{-# LINE 117 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "maxY" ( -- ' closing tick for hsc2hs
                                 Float
{-# LINE 122 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                                 ) 'False  -- ' closing tick for hsc2hs
                                          (16)
{-# LINE 124 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "maxZ" ( -- ' closing tick for hsc2hs
                                 Float
{-# LINE 129 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                                 ) 'False  -- ' closing tick for hsc2hs
                                          (20)
{-# LINE 131 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.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 VkAccelerationStructureBuildGeometryInfoKHR {
--   >     VkStructureType sType;
--   >     const void*                                                        pNext;
--   >     VkAccelerationStructureTypeKHR                                     type;
--   >     VkBuildAccelerationStructureFlagsKHR               flags;
--   >     VkBool32                                                           update;
--   >     VkAccelerationStructureKHR                         srcAccelerationStructure;
--   >     VkAccelerationStructureKHR                                         dstAccelerationStructure;
--   >     VkBool32                                                           geometryArrayOfPointers;
--   >     uint32_t                                           geometryCount;
--   >     const VkAccelerationStructureGeometryKHR* const*   ppGeometries;
--   >     VkDeviceOrHostAddressKHR                                           scratchData;
--   > } VkAccelerationStructureBuildGeometryInfoKHR;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkAccelerationStructureBuildGeometryInfoKHR VkAccelerationStructureBuildGeometryInfoKHR registry at www.khronos.org>
type VkAccelerationStructureBuildGeometryInfoKHR =
     VkStruct VkAccelerationStructureBuildGeometryInfoKHR' -- ' closing tick for hsc2hs

data VkAccelerationStructureBuildGeometryInfoKHR' -- ' closing tick for hsc2hs

instance VulkanMarshal VkAccelerationStructureBuildGeometryInfoKHR
         where
    type StructRep VkAccelerationStructureBuildGeometryInfoKHR =
         'StructMeta "VkAccelerationStructureBuildGeometryInfoKHR" -- ' closing tick for hsc2hs
           VkAccelerationStructureBuildGeometryInfoKHR
           (72)
{-# LINE 164 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
           8
{-# LINE 165 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 167 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False
                                                   (8)
{-# LINE 172 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "type" VkAccelerationStructureTypeKHR 'False
                                                                      (16)
{-# LINE 177 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "flags" VkBuildAccelerationStructureFlagsKHR 'True
                (20)
{-# LINE 182 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "update" VkBool32 'False
                                                  (24)
{-# LINE 187 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "srcAccelerationStructure" VkAccelerationStructureKHR -- ' closing tick for hsc2hs
                'True -- ' closing tick for hsc2hs
                (32)
{-# LINE 193 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "dstAccelerationStructure" VkAccelerationStructureKHR -- ' closing tick for hsc2hs
                'False -- ' closing tick for hsc2hs
                (40)
{-# LINE 199 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "geometryArrayOfPointers" VkBool32 'False
                                                                   (48)
{-# LINE 204 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "geometryCount" Word32 'True
                                                      (52)
{-# LINE 209 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "ppGeometries" -- ' closing tick for hsc2hs
                (Ptr (Ptr VkAccelerationStructureGeometryKHR))
                'False -- ' closing tick for hsc2hs
                (56)
{-# LINE 216 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "scratchData" VkDeviceOrHostAddressKHR 'False
                                                                       (64)
{-# LINE 221 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.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 VkAccelerationStructureBuildOffsetInfoKHR {
--   >     uint32_t                                                primitiveCount;
--   >     uint32_t                                                primitiveOffset;
--   >     uint32_t                                firstVertex;
--   >     uint32_t                                transformOffset;
--   > } VkAccelerationStructureBuildOffsetInfoKHR;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkAccelerationStructureBuildOffsetInfoKHR VkAccelerationStructureBuildOffsetInfoKHR registry at www.khronos.org>
type VkAccelerationStructureBuildOffsetInfoKHR =
     VkStruct VkAccelerationStructureBuildOffsetInfoKHR' -- ' closing tick for hsc2hs

data VkAccelerationStructureBuildOffsetInfoKHR' -- ' closing tick for hsc2hs

instance VulkanMarshal VkAccelerationStructureBuildOffsetInfoKHR
         where
    type StructRep VkAccelerationStructureBuildOffsetInfoKHR =
         'StructMeta "VkAccelerationStructureBuildOffsetInfoKHR" -- ' closing tick for hsc2hs
           VkAccelerationStructureBuildOffsetInfoKHR
           (16)
{-# LINE 247 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
           4
{-# LINE 248 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
           '[('FieldMeta "primitiveCount" Word32 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 250 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "primitiveOffset" Word32 'False
                                                         (4)
{-# LINE 255 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "firstVertex" Word32 'True
                                                    (8)
{-# LINE 260 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "transformOffset" Word32 'True
                                                        (12)
{-# LINE 265 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.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 VkAccelerationStructureCreateGeometryTypeInfoKHR {
--   >     VkStructureType sType;
--   >     const void*                                             pNext;
--   >     VkGeometryTypeKHR                                       geometryType;
--   >     uint32_t                                                maxPrimitiveCount;
--   >     VkIndexType                                              indexType;
--   >     uint32_t                                maxVertexCount;
--   >     VkFormat                                vertexFormat;
--   >     VkBool32                                allowsTransforms;
--   > } VkAccelerationStructureCreateGeometryTypeInfoKHR;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkAccelerationStructureCreateGeometryTypeInfoKHR VkAccelerationStructureCreateGeometryTypeInfoKHR registry at www.khronos.org>
type VkAccelerationStructureCreateGeometryTypeInfoKHR =
     VkStruct VkAccelerationStructureCreateGeometryTypeInfoKHR' -- ' closing tick for hsc2hs

data VkAccelerationStructureCreateGeometryTypeInfoKHR' -- ' closing tick for hsc2hs

instance VulkanMarshal
           VkAccelerationStructureCreateGeometryTypeInfoKHR
         where
    type StructRep VkAccelerationStructureCreateGeometryTypeInfoKHR =
         'StructMeta "VkAccelerationStructureCreateGeometryTypeInfoKHR" -- ' closing tick for hsc2hs
           VkAccelerationStructureCreateGeometryTypeInfoKHR
           (40)
{-# LINE 296 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
           8
{-# LINE 297 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 299 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False
                                                   (8)
{-# LINE 304 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "geometryType" VkGeometryTypeKHR 'False
                                                                 (16)
{-# LINE 309 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "maxPrimitiveCount" Word32 'False
                                                           (20)
{-# LINE 314 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "indexType" VkIndexType 'False
                                                        (24)
{-# LINE 319 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "maxVertexCount" Word32 'True
                                                       (28)
{-# LINE 324 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "vertexFormat" VkFormat 'True
                                                       (32)
{-# LINE 329 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "allowsTransforms" VkBool32 'True
                                                           (36)
{-# LINE 334 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.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 VkAccelerationStructureCreateInfoKHR {
--   >     VkStructureType sType;
--   >     const void*                                             pNext;
--   >     VkDeviceSize                                            compactedSize;
--   >     VkAccelerationStructureTypeKHR                          type;
--   >     VkBuildAccelerationStructureFlagsKHR    flags;
--   >     uint32_t                                maxGeometryCount;
--   >     const VkAccelerationStructureCreateGeometryTypeInfoKHR* pGeometryInfos;
--   >     VkDeviceAddress                         deviceAddress;
--   > } VkAccelerationStructureCreateInfoKHR;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkAccelerationStructureCreateInfoKHR VkAccelerationStructureCreateInfoKHR registry at www.khronos.org>
type VkAccelerationStructureCreateInfoKHR =
     VkStruct VkAccelerationStructureCreateInfoKHR' -- ' closing tick for hsc2hs

data VkAccelerationStructureCreateInfoKHR' -- ' closing tick for hsc2hs

instance VulkanMarshal VkAccelerationStructureCreateInfoKHR where
    type StructRep VkAccelerationStructureCreateInfoKHR =
         'StructMeta "VkAccelerationStructureCreateInfoKHR" -- ' closing tick for hsc2hs
           VkAccelerationStructureCreateInfoKHR
           (56)
{-# LINE 363 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
           8
{-# LINE 364 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 366 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False
                                                   (8)
{-# LINE 371 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "compactedSize" VkDeviceSize 'False
                                                             (16)
{-# LINE 376 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "type" VkAccelerationStructureTypeKHR 'False
                                                                      (24)
{-# LINE 381 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "flags" VkBuildAccelerationStructureFlagsKHR 'True
                (28)
{-# LINE 386 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "maxGeometryCount" Word32 'True
                                                         (32)
{-# LINE 391 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pGeometryInfos" -- ' closing tick for hsc2hs
                (Ptr VkAccelerationStructureCreateGeometryTypeInfoKHR)
                'False -- ' closing tick for hsc2hs
                (40)
{-# LINE 398 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "deviceAddress" VkDeviceAddress 'True
                                                               (48)
{-# LINE 403 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.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 VkAccelerationStructureDeviceAddressInfoKHR {
--   >     VkStructureType sType;
--   >     const void*                                            pNext;
--   >     VkAccelerationStructureKHR                             accelerationStructure;
--   > } VkAccelerationStructureDeviceAddressInfoKHR;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkAccelerationStructureDeviceAddressInfoKHR VkAccelerationStructureDeviceAddressInfoKHR registry at www.khronos.org>
type VkAccelerationStructureDeviceAddressInfoKHR =
     VkStruct VkAccelerationStructureDeviceAddressInfoKHR' -- ' closing tick for hsc2hs

data VkAccelerationStructureDeviceAddressInfoKHR' -- ' closing tick for hsc2hs

instance VulkanMarshal VkAccelerationStructureDeviceAddressInfoKHR
         where
    type StructRep VkAccelerationStructureDeviceAddressInfoKHR =
         'StructMeta "VkAccelerationStructureDeviceAddressInfoKHR" -- ' closing tick for hsc2hs
           VkAccelerationStructureDeviceAddressInfoKHR
           (24)
{-# LINE 428 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
           8
{-# LINE 429 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 431 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False
                                                   (8)
{-# LINE 436 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "accelerationStructure" VkAccelerationStructureKHR -- ' closing tick for hsc2hs
                'False -- ' closing tick for hsc2hs
                (16)
{-# LINE 442 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.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 VkAccelerationStructureGeometryAabbsDataKHR {
--   >     VkStructureType sType;
--   >     const void*                           pNext;
--   >     VkDeviceOrHostAddressConstKHR         data;
--   >     VkDeviceSize                          stride;
--   > } VkAccelerationStructureGeometryAabbsDataKHR;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkAccelerationStructureGeometryAabbsDataKHR VkAccelerationStructureGeometryAabbsDataKHR registry at www.khronos.org>
type VkAccelerationStructureGeometryAabbsDataKHR =
     VkStruct VkAccelerationStructureGeometryAabbsDataKHR' -- ' closing tick for hsc2hs

data VkAccelerationStructureGeometryAabbsDataKHR' -- ' closing tick for hsc2hs

instance VulkanMarshal VkAccelerationStructureGeometryAabbsDataKHR
         where
    type StructRep VkAccelerationStructureGeometryAabbsDataKHR =
         'StructMeta "VkAccelerationStructureGeometryAabbsDataKHR" -- ' closing tick for hsc2hs
           VkAccelerationStructureGeometryAabbsDataKHR
           (32)
{-# LINE 468 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
           8
{-# LINE 469 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 471 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False
                                                   (8)
{-# LINE 476 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "data" VkDeviceOrHostAddressConstKHR 'False
                                                                     (16)
{-# LINE 481 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "stride" VkDeviceSize 'False
                                                      (24)
{-# LINE 486 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.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 VkAccelerationStructureGeometryDataKHR {
--   >     VkAccelerationStructureGeometryTrianglesDataKHR triangles;
--   >     VkAccelerationStructureGeometryAabbsDataKHR         aabbs;
--   >     VkAccelerationStructureGeometryInstancesDataKHR instances;
--   > } VkAccelerationStructureGeometryDataKHR;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkAccelerationStructureGeometryDataKHR VkAccelerationStructureGeometryDataKHR registry at www.khronos.org>
type VkAccelerationStructureGeometryDataKHR =
     VkStruct VkAccelerationStructureGeometryDataKHR' -- ' closing tick for hsc2hs

data VkAccelerationStructureGeometryDataKHR' -- ' closing tick for hsc2hs

instance VulkanMarshal VkAccelerationStructureGeometryDataKHR where
    type StructRep VkAccelerationStructureGeometryDataKHR =
         'StructMeta "VkAccelerationStructureGeometryDataKHR" -- ' closing tick for hsc2hs
           VkAccelerationStructureGeometryDataKHR
           (64)
{-# LINE 510 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
           8
{-# LINE 511 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
           '[('FieldMeta "triangles"
                VkAccelerationStructureGeometryTrianglesDataKHR
                'False -- ' closing tick for hsc2hs
                (0)
{-# LINE 515 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "aabbs" VkAccelerationStructureGeometryAabbsDataKHR -- ' closing tick for hsc2hs
                'False -- ' closing tick for hsc2hs
                (0)
{-# LINE 521 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "instances" -- ' closing tick for hsc2hs
                VkAccelerationStructureGeometryInstancesDataKHR
                'False -- ' closing tick for hsc2hs
                (0)
{-# LINE 528 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.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 VkAccelerationStructureGeometryInstancesDataKHR {
--   >     VkStructureType sType;
--   >     const void*                           pNext;
--   >     VkBool32                              arrayOfPointers;
--   >     VkDeviceOrHostAddressConstKHR         data;
--   > } VkAccelerationStructureGeometryInstancesDataKHR;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkAccelerationStructureGeometryInstancesDataKHR VkAccelerationStructureGeometryInstancesDataKHR registry at www.khronos.org>
type VkAccelerationStructureGeometryInstancesDataKHR =
     VkStruct VkAccelerationStructureGeometryInstancesDataKHR' -- ' closing tick for hsc2hs

data VkAccelerationStructureGeometryInstancesDataKHR' -- ' closing tick for hsc2hs

instance VulkanMarshal
           VkAccelerationStructureGeometryInstancesDataKHR
         where
    type StructRep VkAccelerationStructureGeometryInstancesDataKHR =
         'StructMeta "VkAccelerationStructureGeometryInstancesDataKHR" -- ' closing tick for hsc2hs
           VkAccelerationStructureGeometryInstancesDataKHR
           (32)
{-# LINE 555 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
           8
{-# LINE 556 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 558 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False
                                                   (8)
{-# LINE 563 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "arrayOfPointers" VkBool32 'False
                                                           (16)
{-# LINE 568 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "data" VkDeviceOrHostAddressConstKHR 'False
                                                                     (24)
{-# LINE 573 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.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 VkAccelerationStructureGeometryKHR {
--   >     VkStructureType sType;
--   >     const void*                            pNext;
--   >     VkGeometryTypeKHR                      geometryType;
--   >     VkAccelerationStructureGeometryDataKHR geometry;
--   >     VkGeometryFlagsKHR     flags;
--   > } VkAccelerationStructureGeometryKHR;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkAccelerationStructureGeometryKHR VkAccelerationStructureGeometryKHR registry at www.khronos.org>
type VkAccelerationStructureGeometryKHR =
     VkStruct VkAccelerationStructureGeometryKHR' -- ' closing tick for hsc2hs

data VkAccelerationStructureGeometryKHR' -- ' closing tick for hsc2hs

instance VulkanMarshal VkAccelerationStructureGeometryKHR where
    type StructRep VkAccelerationStructureGeometryKHR =
         'StructMeta "VkAccelerationStructureGeometryKHR" -- ' closing tick for hsc2hs
           VkAccelerationStructureGeometryKHR
           (96)
{-# LINE 599 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
           8
{-# LINE 600 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 602 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False
                                                   (8)
{-# LINE 607 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "geometryType" VkGeometryTypeKHR 'False
                                                                 (16)
{-# LINE 612 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "geometry" VkAccelerationStructureGeometryDataKHR -- ' closing tick for hsc2hs
                'False -- ' closing tick for hsc2hs
                (24)
{-# LINE 618 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "flags" VkGeometryFlagsKHR 'True
                                                          (88)
{-# LINE 623 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.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 VkAccelerationStructureGeometryTrianglesDataKHR {
--   >     VkStructureType sType;
--   >     const void*                                   pNext;
--   >     VkFormat                                      vertexFormat;
--   >     VkDeviceOrHostAddressConstKHR                 vertexData;
--   >     VkDeviceSize                                  vertexStride;
--   >     VkIndexType                                   indexType;
--   >     VkDeviceOrHostAddressConstKHR indexData;
--   >     VkDeviceOrHostAddressConstKHR transformData;
--   > } VkAccelerationStructureGeometryTrianglesDataKHR;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkAccelerationStructureGeometryTrianglesDataKHR VkAccelerationStructureGeometryTrianglesDataKHR registry at www.khronos.org>
type VkAccelerationStructureGeometryTrianglesDataKHR =
     VkStruct VkAccelerationStructureGeometryTrianglesDataKHR' -- ' closing tick for hsc2hs

data VkAccelerationStructureGeometryTrianglesDataKHR' -- ' closing tick for hsc2hs

instance VulkanMarshal
           VkAccelerationStructureGeometryTrianglesDataKHR
         where
    type StructRep VkAccelerationStructureGeometryTrianglesDataKHR =
         'StructMeta "VkAccelerationStructureGeometryTrianglesDataKHR" -- ' closing tick for hsc2hs
           VkAccelerationStructureGeometryTrianglesDataKHR
           (64)
{-# LINE 654 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
           8
{-# LINE 655 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 657 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False
                                                   (8)
{-# LINE 662 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "vertexFormat" VkFormat 'False
                                                        (16)
{-# LINE 667 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "vertexData" VkDeviceOrHostAddressConstKHR 'False
                (24)
{-# LINE 672 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "vertexStride" VkDeviceSize 'False
                                                            (32)
{-# LINE 677 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "indexType" VkIndexType 'False
                                                        (40)
{-# LINE 682 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "indexData" VkDeviceOrHostAddressConstKHR 'True
                (48)
{-# LINE 687 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "transformData" VkDeviceOrHostAddressConstKHR 'True
                (56)
{-# LINE 692 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.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 VkAccelerationStructureInstanceKHR {
--   >     VkTransformMatrixKHR                                    transform;
--   >     uint32_t                                                instanceCustomIndex:24;
--   >     uint32_t                                                mask:8;
--   >     uint32_t                                                instanceShaderBindingTableRecordOffset:24;
--   >     VkGeometryInstanceFlagsKHR                              flags:8;
--   >     uint64_t                                                accelerationStructureReference;
--   > } VkAccelerationStructureInstanceKHR;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkAccelerationStructureInstanceKHR VkAccelerationStructureInstanceKHR registry at www.khronos.org>
type VkAccelerationStructureInstanceKHR =
     VkStruct VkAccelerationStructureInstanceKHR' -- ' closing tick for hsc2hs

data VkAccelerationStructureInstanceKHR' -- ' closing tick for hsc2hs

instance VulkanMarshal VkAccelerationStructureInstanceKHR where
    type StructRep VkAccelerationStructureInstanceKHR =
         'StructMeta "VkAccelerationStructureInstanceKHR" -- ' closing tick for hsc2hs
           VkAccelerationStructureInstanceKHR
           (64)
{-# LINE 719 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
           8
{-# LINE 720 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
           '[('FieldMeta "transform" VkTransformMatrixKHR 'False 0 -- ' closing tick for hsc2hs
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "instanceCustomIndexAndMask" Word32 'False (48)
{-# LINE 725 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "instanceShaderBindingTableRecordOffsetAndFlags" Word32 'False
                ((48) + 4)
{-# LINE 730 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "accelerationStructureReference" Word64 'False
                ((48) + 8)
{-# LINE 735 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.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 VkAccelerationStructureMemoryRequirementsInfoKHR {
--   >     VkStructureType sType;
--   >     const void*                                                          pNext;
--   >     VkAccelerationStructureMemoryRequirementsTypeKHR                     type;
--   >     VkAccelerationStructureBuildTypeKHR                                  buildType;
--   >     VkAccelerationStructureKHR                                           accelerationStructure;
--   > } VkAccelerationStructureMemoryRequirementsInfoKHR;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkAccelerationStructureMemoryRequirementsInfoKHR VkAccelerationStructureMemoryRequirementsInfoKHR registry at www.khronos.org>
type VkAccelerationStructureMemoryRequirementsInfoKHR =
     VkStruct VkAccelerationStructureMemoryRequirementsInfoKHR' -- ' closing tick for hsc2hs

data VkAccelerationStructureMemoryRequirementsInfoKHR' -- ' closing tick for hsc2hs

instance VulkanMarshal
           VkAccelerationStructureMemoryRequirementsInfoKHR
         where
    type StructRep VkAccelerationStructureMemoryRequirementsInfoKHR =
         'StructMeta "VkAccelerationStructureMemoryRequirementsInfoKHR" -- ' closing tick for hsc2hs
           VkAccelerationStructureMemoryRequirementsInfoKHR
           (32)
{-# LINE 763 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
           8
{-# LINE 764 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 766 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False
                                                   (8)
{-# LINE 771 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "type" VkAccelerationStructureMemoryRequirementsTypeKHR -- ' closing tick for hsc2hs
                'False -- ' closing tick for hsc2hs
                (16)
{-# LINE 777 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "buildType" VkAccelerationStructureBuildTypeKHR 'False
                (20)
{-# LINE 782 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "accelerationStructure" VkAccelerationStructureKHR -- ' closing tick for hsc2hs
                'False -- ' closing tick for hsc2hs
                (24)
{-# LINE 788 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.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 VkAccelerationStructureVersionKHR {
--   >     VkStructureType sType;
--   >     const void*                                            pNext;
--   >     const uint8_t*                    versionData;
--   > } VkAccelerationStructureVersionKHR;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkAccelerationStructureVersionKHR VkAccelerationStructureVersionKHR registry at www.khronos.org>
type VkAccelerationStructureVersionKHR =
     VkStruct VkAccelerationStructureVersionKHR' -- ' closing tick for hsc2hs

data VkAccelerationStructureVersionKHR' -- ' closing tick for hsc2hs

instance VulkanMarshal VkAccelerationStructureVersionKHR where
    type StructRep VkAccelerationStructureVersionKHR =
         'StructMeta "VkAccelerationStructureVersionKHR" -- ' closing tick for hsc2hs
           VkAccelerationStructureVersionKHR
           (24)
{-# LINE 812 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
           8
{-# LINE 813 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 815 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False
                                                   (8)
{-# LINE 820 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "versionData" (Ptr Word8) 'False
                                                          (16)
{-# LINE 825 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.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 VkBindAccelerationStructureMemoryInfoKHR {
--   >     VkStructureType sType;
--   >     const void*                      pNext;
--   >     VkAccelerationStructureKHR       accelerationStructure;
--   >     VkDeviceMemory                   memory;
--   >     VkDeviceSize                     memoryOffset;
--   >     uint32_t         deviceIndexCount;
--   >     const uint32_t*  pDeviceIndices;
--   > } VkBindAccelerationStructureMemoryInfoKHR;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkBindAccelerationStructureMemoryInfoKHR VkBindAccelerationStructureMemoryInfoKHR registry at www.khronos.org>
type VkBindAccelerationStructureMemoryInfoKHR =
     VkStruct VkBindAccelerationStructureMemoryInfoKHR' -- ' closing tick for hsc2hs

data VkBindAccelerationStructureMemoryInfoKHR' -- ' closing tick for hsc2hs

instance VulkanMarshal VkBindAccelerationStructureMemoryInfoKHR
         where
    type StructRep VkBindAccelerationStructureMemoryInfoKHR =
         'StructMeta "VkBindAccelerationStructureMemoryInfoKHR" -- ' closing tick for hsc2hs
           VkBindAccelerationStructureMemoryInfoKHR
           (56)
{-# LINE 854 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
           8
{-# LINE 855 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 857 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False
                                                   (8)
{-# LINE 862 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "accelerationStructure" VkAccelerationStructureKHR -- ' closing tick for hsc2hs
                'False -- ' closing tick for hsc2hs
                (16)
{-# LINE 868 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "memory" VkDeviceMemory 'False
                                                        (24)
{-# LINE 873 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "memoryOffset" VkDeviceSize 'False
                                                            (32)
{-# LINE 878 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "deviceIndexCount" Word32 'True
                                                         (40)
{-# LINE 883 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pDeviceIndices" (Ptr Word32) 'False
                                                              (48)
{-# LINE 888 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.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 VkCopyAccelerationStructureInfoKHR {
--   >     VkStructureType sType;
--   >     const void*                                            pNext;
--   >     VkAccelerationStructureKHR                             src;
--   >     VkAccelerationStructureKHR                             dst;
--   >     VkCopyAccelerationStructureModeKHR                     mode;
--   > } VkCopyAccelerationStructureInfoKHR;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCopyAccelerationStructureInfoKHR VkCopyAccelerationStructureInfoKHR registry at www.khronos.org>
type VkCopyAccelerationStructureInfoKHR =
     VkStruct VkCopyAccelerationStructureInfoKHR' -- ' closing tick for hsc2hs

data VkCopyAccelerationStructureInfoKHR' -- ' closing tick for hsc2hs

instance VulkanMarshal VkCopyAccelerationStructureInfoKHR where
    type StructRep VkCopyAccelerationStructureInfoKHR =
         'StructMeta "VkCopyAccelerationStructureInfoKHR" -- ' closing tick for hsc2hs
           VkCopyAccelerationStructureInfoKHR
           (40)
{-# LINE 914 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
           8
{-# LINE 915 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 917 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False
                                                   (8)
{-# LINE 922 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "src" VkAccelerationStructureKHR 'False
                                                                 (16)
{-# LINE 927 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "dst" VkAccelerationStructureKHR 'False
                                                                 (24)
{-# LINE 932 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "mode" VkCopyAccelerationStructureModeKHR 'False
                (32)
{-# LINE 937 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.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 VkCopyAccelerationStructureToMemoryInfoKHR {
--   >     VkStructureType sType;
--   >     const void*                                            pNext;
--   >     VkAccelerationStructureKHR                             src;
--   >     VkDeviceOrHostAddressKHR                               dst;
--   >     VkCopyAccelerationStructureModeKHR                     mode;
--   > } VkCopyAccelerationStructureToMemoryInfoKHR;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCopyAccelerationStructureToMemoryInfoKHR VkCopyAccelerationStructureToMemoryInfoKHR registry at www.khronos.org>
type VkCopyAccelerationStructureToMemoryInfoKHR =
     VkStruct VkCopyAccelerationStructureToMemoryInfoKHR' -- ' closing tick for hsc2hs

data VkCopyAccelerationStructureToMemoryInfoKHR' -- ' closing tick for hsc2hs

instance VulkanMarshal VkCopyAccelerationStructureToMemoryInfoKHR
         where
    type StructRep VkCopyAccelerationStructureToMemoryInfoKHR =
         'StructMeta "VkCopyAccelerationStructureToMemoryInfoKHR" -- ' closing tick for hsc2hs
           VkCopyAccelerationStructureToMemoryInfoKHR
           (40)
{-# LINE 964 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
           8
{-# LINE 965 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 967 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False
                                                   (8)
{-# LINE 972 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "src" VkAccelerationStructureKHR 'False
                                                                 (16)
{-# LINE 977 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "dst" VkDeviceOrHostAddressKHR 'False
                                                               (24)
{-# LINE 982 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "mode" VkCopyAccelerationStructureModeKHR 'False
                (32)
{-# LINE 987 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.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 VkCopyMemoryToAccelerationStructureInfoKHR {
--   >     VkStructureType sType;
--   >     const void*                                            pNext;
--   >     VkDeviceOrHostAddressConstKHR                          src;
--   >     VkAccelerationStructureKHR                             dst;
--   >     VkCopyAccelerationStructureModeKHR                     mode;
--   > } VkCopyMemoryToAccelerationStructureInfoKHR;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCopyMemoryToAccelerationStructureInfoKHR VkCopyMemoryToAccelerationStructureInfoKHR registry at www.khronos.org>
type VkCopyMemoryToAccelerationStructureInfoKHR =
     VkStruct VkCopyMemoryToAccelerationStructureInfoKHR' -- ' closing tick for hsc2hs

data VkCopyMemoryToAccelerationStructureInfoKHR' -- ' closing tick for hsc2hs

instance VulkanMarshal VkCopyMemoryToAccelerationStructureInfoKHR
         where
    type StructRep VkCopyMemoryToAccelerationStructureInfoKHR =
         'StructMeta "VkCopyMemoryToAccelerationStructureInfoKHR" -- ' closing tick for hsc2hs
           VkCopyMemoryToAccelerationStructureInfoKHR
           (40)
{-# LINE 1014 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
           8
{-# LINE 1015 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 1017 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False
                                                   (8)
{-# LINE 1022 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "src" VkDeviceOrHostAddressConstKHR 'False
                                                                    (16)
{-# LINE 1027 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "dst" VkAccelerationStructureKHR 'False
                                                                 (24)
{-# LINE 1032 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "mode" VkCopyAccelerationStructureModeKHR 'False
                (32)
{-# LINE 1037 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.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 VkDeferredOperationInfoKHR {
--   >     VkStructureType sType;
--   >     const void*                   pNext;
--   >     VkDeferredOperationKHR        operationHandle;
--   > } VkDeferredOperationInfoKHR;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkDeferredOperationInfoKHR VkDeferredOperationInfoKHR registry at www.khronos.org>
type VkDeferredOperationInfoKHR =
     VkStruct VkDeferredOperationInfoKHR' -- ' closing tick for hsc2hs

data VkDeferredOperationInfoKHR' -- ' closing tick for hsc2hs

instance VulkanMarshal VkDeferredOperationInfoKHR where
    type StructRep VkDeferredOperationInfoKHR =
         'StructMeta "VkDeferredOperationInfoKHR" VkDeferredOperationInfoKHR -- ' closing tick for hsc2hs
           (24)
{-# LINE 1060 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
           8
{-# LINE 1061 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 1063 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False
                                                   (8)
{-# LINE 1068 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "operationHandle" VkDeferredOperationKHR 'False
                (16)
{-# LINE 1073 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[VkRayTracingPipelineCreateInfoKHR, -- ' closing tick for hsc2hs
             VkAccelerationStructureBuildGeometryInfoKHR,
             VkCopyAccelerationStructureInfoKHR,
             VkCopyMemoryToAccelerationStructureInfoKHR,
             VkCopyAccelerationStructureToMemoryInfoKHR]

-- | > typedef union VkDeviceOrHostAddressConstKHR {
--   >     VkDeviceAddress            deviceAddress;
--   >     const void*                hostAddress;
--   > } VkDeviceOrHostAddressConstKHR;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkDeviceOrHostAddressConstKHR VkDeviceOrHostAddressConstKHR registry at www.khronos.org>
type VkDeviceOrHostAddressConstKHR =
     VkStruct VkDeviceOrHostAddressConstKHR' -- ' closing tick for hsc2hs

data VkDeviceOrHostAddressConstKHR' -- ' closing tick for hsc2hs

instance VulkanMarshal VkDeviceOrHostAddressConstKHR where
    type StructRep VkDeviceOrHostAddressConstKHR =
         'StructMeta "VkDeviceOrHostAddressConstKHR" -- ' closing tick for hsc2hs
           VkDeviceOrHostAddressConstKHR
           (8)
{-# LINE 1100 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
           8
{-# LINE 1101 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
           '[('FieldMeta "deviceAddress" VkDeviceAddress 'False  -- ' closing tick for hsc2hs
                                                                (0)
{-# LINE 1103 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "hostAddress" (Ptr Void) 'False
                                                         (0)
{-# LINE 1108 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.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 union VkDeviceOrHostAddressKHR {
--   >     VkDeviceAddress            deviceAddress;
--   >     void*                      hostAddress;
--   > } VkDeviceOrHostAddressKHR;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkDeviceOrHostAddressKHR VkDeviceOrHostAddressKHR registry at www.khronos.org>
type VkDeviceOrHostAddressKHR = VkStruct VkDeviceOrHostAddressKHR' -- ' closing tick for hsc2hs

data VkDeviceOrHostAddressKHR' -- ' closing tick for hsc2hs

instance VulkanMarshal VkDeviceOrHostAddressKHR where
    type StructRep VkDeviceOrHostAddressKHR =
         'StructMeta "VkDeviceOrHostAddressKHR" VkDeviceOrHostAddressKHR -- ' closing tick for hsc2hs
           (8)
{-# LINE 1129 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
           8
{-# LINE 1130 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
           '[('FieldMeta "deviceAddress" VkDeviceAddress 'False  -- ' closing tick for hsc2hs
                                                                (0)
{-# LINE 1132 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "hostAddress" (Ptr Void) 'False
                                                         (0)
{-# LINE 1137 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.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 VkPhysicalDeviceRayTracingFeaturesKHR {
--   >     VkStructureType sType;
--   >     void*                            pNext;
--   >     VkBool32                         rayTracing;
--   >     VkBool32                         rayTracingShaderGroupHandleCaptureReplay;
--   >     VkBool32                         rayTracingShaderGroupHandleCaptureReplayMixed;
--   >     VkBool32                         rayTracingAccelerationStructureCaptureReplay;
--   >     VkBool32                         rayTracingIndirectTraceRays;
--   >     VkBool32                         rayTracingIndirectAccelerationStructureBuild;
--   >     VkBool32                         rayTracingHostAccelerationStructureCommands;
--   >     VkBool32                         rayQuery;
--   >     VkBool32                         rayTracingPrimitiveCulling;
--   > } VkPhysicalDeviceRayTracingFeaturesKHR;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkPhysicalDeviceRayTracingFeaturesKHR VkPhysicalDeviceRayTracingFeaturesKHR registry at www.khronos.org>
type VkPhysicalDeviceRayTracingFeaturesKHR =
     VkStruct VkPhysicalDeviceRayTracingFeaturesKHR' -- ' closing tick for hsc2hs

data VkPhysicalDeviceRayTracingFeaturesKHR' -- ' closing tick for hsc2hs

instance VulkanMarshal VkPhysicalDeviceRayTracingFeaturesKHR where
    type StructRep VkPhysicalDeviceRayTracingFeaturesKHR =
         'StructMeta "VkPhysicalDeviceRayTracingFeaturesKHR" -- ' closing tick for hsc2hs
           VkPhysicalDeviceRayTracingFeaturesKHR
           (56)
{-# LINE 1169 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
           8
{-# LINE 1170 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 1172 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False
                                                   (8)
{-# LINE 1177 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "rayTracing" VkBool32 'False
                                                      (16)
{-# LINE 1182 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "rayTracingShaderGroupHandleCaptureReplay" VkBool32 -- ' closing tick for hsc2hs
                'False -- ' closing tick for hsc2hs
                (20)
{-# LINE 1188 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "rayTracingShaderGroupHandleCaptureReplayMixed" -- ' closing tick for hsc2hs
                VkBool32
                'False -- ' closing tick for hsc2hs
                (24)
{-# LINE 1195 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "rayTracingAccelerationStructureCaptureReplay" VkBool32 -- ' closing tick for hsc2hs
                'False -- ' closing tick for hsc2hs
                (28)
{-# LINE 1201 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "rayTracingIndirectTraceRays" VkBool32 'False
                                                                       (32)
{-# LINE 1206 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "rayTracingIndirectAccelerationStructureBuild" VkBool32 -- ' closing tick for hsc2hs
                'False -- ' closing tick for hsc2hs
                (36)
{-# LINE 1212 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "rayTracingHostAccelerationStructureCommands" VkBool32 -- ' closing tick for hsc2hs
                'False -- ' closing tick for hsc2hs
                (40)
{-# LINE 1218 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "rayQuery" VkBool32 'False
                                                    (44)
{-# LINE 1223 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "rayTracingPrimitiveCulling" VkBool32 'False
                                                                      (48)
{-# LINE 1228 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[VkPhysicalDeviceFeatures2, VkDeviceCreateInfo] -- ' closing tick for hsc2hs

-- | > typedef struct VkPhysicalDeviceRayTracingPropertiesKHR {
--   >     VkStructureType sType;
--   >     void*                            pNext;
--   >     uint32_t                         shaderGroupHandleSize;
--   >     uint32_t                         maxRecursionDepth;
--   >     uint32_t                         maxShaderGroupStride;
--   >     uint32_t                         shaderGroupBaseAlignment;
--   >     uint64_t                         maxGeometryCount;
--   >     uint64_t                         maxInstanceCount;
--   >     uint64_t                         maxPrimitiveCount;
--   >     uint32_t                         maxDescriptorSetAccelerationStructures;
--   >     uint32_t                         shaderGroupHandleCaptureReplaySize;
--   > } VkPhysicalDeviceRayTracingPropertiesKHR;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkPhysicalDeviceRayTracingPropertiesKHR VkPhysicalDeviceRayTracingPropertiesKHR registry at www.khronos.org>
type VkPhysicalDeviceRayTracingPropertiesKHR =
     VkStruct VkPhysicalDeviceRayTracingPropertiesKHR' -- ' closing tick for hsc2hs

data VkPhysicalDeviceRayTracingPropertiesKHR' -- ' closing tick for hsc2hs

instance VulkanMarshal VkPhysicalDeviceRayTracingPropertiesKHR
         where
    type StructRep VkPhysicalDeviceRayTracingPropertiesKHR =
         'StructMeta "VkPhysicalDeviceRayTracingPropertiesKHR" -- ' closing tick for hsc2hs
           VkPhysicalDeviceRayTracingPropertiesKHR
           (64)
{-# LINE 1261 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
           8
{-# LINE 1262 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 1264 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False
                                                   (8)
{-# LINE 1269 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "shaderGroupHandleSize" Word32 'False
                                                               (16)
{-# LINE 1274 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "maxRecursionDepth" Word32 'False
                                                           (20)
{-# LINE 1279 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "maxShaderGroupStride" Word32 'False
                                                              (24)
{-# LINE 1284 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "shaderGroupBaseAlignment" Word32 'False
                                                                  (28)
{-# LINE 1289 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "maxGeometryCount" Word64 'False
                                                          (32)
{-# LINE 1294 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "maxInstanceCount" Word64 'False
                                                          (40)
{-# LINE 1299 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "maxPrimitiveCount" Word64 'False
                                                           (48)
{-# LINE 1304 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "maxDescriptorSetAccelerationStructures" Word32 'False
                (56)
{-# LINE 1309 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "shaderGroupHandleCaptureReplaySize" Word32 'False
                (60)
{-# LINE 1314 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'True -- ' closing tick for hsc2hs
           '[VkPhysicalDeviceProperties2] -- ' closing tick for hsc2hs

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

data VkPipelineLibraryCreateInfoKHR' -- ' closing tick for hsc2hs

instance VulkanMarshal VkPipelineLibraryCreateInfoKHR where
    type StructRep VkPipelineLibraryCreateInfoKHR =
         'StructMeta "VkPipelineLibraryCreateInfoKHR" -- ' closing tick for hsc2hs
           VkPipelineLibraryCreateInfoKHR
           (32)
{-# LINE 1339 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
           8
{-# LINE 1340 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 1342 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False
                                                   (8)
{-# LINE 1347 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "libraryCount" Word32 'True
                                                     (16)
{-# LINE 1352 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pLibraries" (Ptr VkPipeline) 'False
                                                              (24)
{-# LINE 1357 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.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 VkRayTracingPipelineCreateInfoKHR {
--   >     VkStructureType sType;
--   >     const void*            pNext;
--   >     VkPipelineCreateFlags  flags;
--   >     uint32_t stageCount;
--   >     const VkPipelineShaderStageCreateInfo* pStages;
--   >     uint32_t groupCount;
--   >     const VkRayTracingShaderGroupCreateInfoKHR* pGroups;
--   >     uint32_t               maxRecursionDepth;
--   >     VkPipelineLibraryCreateInfoKHR libraries;
--   >     const VkRayTracingPipelineInterfaceCreateInfoKHR* pLibraryInterface;
--   >     VkPipelineLayout       layout;
--   >     VkPipeline      basePipelineHandle;
--   >     int32_t                basePipelineIndex;
--   > } VkRayTracingPipelineCreateInfoKHR;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkRayTracingPipelineCreateInfoKHR VkRayTracingPipelineCreateInfoKHR registry at www.khronos.org>
type VkRayTracingPipelineCreateInfoKHR =
     VkStruct VkRayTracingPipelineCreateInfoKHR' -- ' closing tick for hsc2hs

data VkRayTracingPipelineCreateInfoKHR' -- ' closing tick for hsc2hs

instance VulkanMarshal VkRayTracingPipelineCreateInfoKHR where
    type StructRep VkRayTracingPipelineCreateInfoKHR =
         'StructMeta "VkRayTracingPipelineCreateInfoKHR" -- ' closing tick for hsc2hs
           VkRayTracingPipelineCreateInfoKHR
           (120)
{-# LINE 1391 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
           8
{-# LINE 1392 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 1394 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False
                                                   (8)
{-# LINE 1399 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "flags" VkPipelineCreateFlags 'True
                                                             (16)
{-# LINE 1404 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "stageCount" Word32 'True
                                                   (20)
{-# LINE 1409 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pStages" (Ptr VkPipelineShaderStageCreateInfo) 'False
                (24)
{-# LINE 1414 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "groupCount" Word32 'True
                                                   (32)
{-# LINE 1419 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pGroups" (Ptr VkRayTracingShaderGroupCreateInfoKHR) -- ' closing tick for hsc2hs
                'False -- ' closing tick for hsc2hs
                (40)
{-# LINE 1425 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "maxRecursionDepth" Word32 'False
                                                           (48)
{-# LINE 1430 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "libraries" VkPipelineLibraryCreateInfoKHR 'False
                (56)
{-# LINE 1435 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pLibraryInterface" -- ' closing tick for hsc2hs
                (Ptr VkRayTracingPipelineInterfaceCreateInfoKHR)
                'True -- ' closing tick for hsc2hs
                (88)
{-# LINE 1442 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "layout" VkPipelineLayout 'False
                                                          (96)
{-# LINE 1447 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "basePipelineHandle" VkPipeline 'True
                                                               (104)
{-# LINE 1452 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "basePipelineIndex" Int32 'False
                                                          (112)
{-# LINE 1457 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.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 VkRayTracingPipelineInterfaceCreateInfoKHR {
--   >     VkStructureType sType;
--   >     const void*                                            pNext;
--   >     uint32_t                                               maxPayloadSize;
--   >     uint32_t                                               maxAttributeSize;
--   >     uint32_t                                               maxCallableSize;
--   > } VkRayTracingPipelineInterfaceCreateInfoKHR;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkRayTracingPipelineInterfaceCreateInfoKHR VkRayTracingPipelineInterfaceCreateInfoKHR registry at www.khronos.org>
type VkRayTracingPipelineInterfaceCreateInfoKHR =
     VkStruct VkRayTracingPipelineInterfaceCreateInfoKHR' -- ' closing tick for hsc2hs

data VkRayTracingPipelineInterfaceCreateInfoKHR' -- ' closing tick for hsc2hs

instance VulkanMarshal VkRayTracingPipelineInterfaceCreateInfoKHR
         where
    type StructRep VkRayTracingPipelineInterfaceCreateInfoKHR =
         'StructMeta "VkRayTracingPipelineInterfaceCreateInfoKHR" -- ' closing tick for hsc2hs
           VkRayTracingPipelineInterfaceCreateInfoKHR
           (32)
{-# LINE 1484 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
           8
{-# LINE 1485 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 1487 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False
                                                   (8)
{-# LINE 1492 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "maxPayloadSize" Word32 'False
                                                        (16)
{-# LINE 1497 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "maxAttributeSize" Word32 'False
                                                          (20)
{-# LINE 1502 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "maxCallableSize" Word32 'False
                                                         (24)
{-# LINE 1507 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.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 VkRayTracingShaderGroupCreateInfoKHR {
--   >     VkStructureType sType;
--   >     const void*            pNext;
--   >     VkRayTracingShaderGroupTypeKHR type;
--   >     uint32_t               generalShader;
--   >     uint32_t               closestHitShader;
--   >     uint32_t               anyHitShader;
--   >     uint32_t               intersectionShader;
--   >     const void* pShaderGroupCaptureReplayHandle;
--   > } VkRayTracingShaderGroupCreateInfoKHR;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkRayTracingShaderGroupCreateInfoKHR VkRayTracingShaderGroupCreateInfoKHR registry at www.khronos.org>
type VkRayTracingShaderGroupCreateInfoKHR =
     VkStruct VkRayTracingShaderGroupCreateInfoKHR' -- ' closing tick for hsc2hs

data VkRayTracingShaderGroupCreateInfoKHR' -- ' closing tick for hsc2hs

instance VulkanMarshal VkRayTracingShaderGroupCreateInfoKHR where
    type StructRep VkRayTracingShaderGroupCreateInfoKHR =
         'StructMeta "VkRayTracingShaderGroupCreateInfoKHR" -- ' closing tick for hsc2hs
           VkRayTracingShaderGroupCreateInfoKHR
           (48)
{-# LINE 1536 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
           8
{-# LINE 1537 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 1539 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False
                                                   (8)
{-# LINE 1544 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "type" VkRayTracingShaderGroupTypeKHR 'False
                                                                      (16)
{-# LINE 1549 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "generalShader" Word32 'False
                                                       (20)
{-# LINE 1554 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "closestHitShader" Word32 'False
                                                          (24)
{-# LINE 1559 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "anyHitShader" Word32 'False
                                                      (28)
{-# LINE 1564 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "intersectionShader" Word32 'False
                                                            (32)
{-# LINE 1569 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pShaderGroupCaptureReplayHandle" (Ptr Void) 'True
                (40)
{-# LINE 1574 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.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 VkStridedBufferRegionKHR {
--   >     VkBuffer         buffer;
--   >     VkDeviceSize                     offset;
--   >     VkDeviceSize                     stride;
--   >     VkDeviceSize                     size;
--   > } VkStridedBufferRegionKHR;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkStridedBufferRegionKHR VkStridedBufferRegionKHR registry at www.khronos.org>
type VkStridedBufferRegionKHR = VkStruct VkStridedBufferRegionKHR' -- ' closing tick for hsc2hs

data VkStridedBufferRegionKHR' -- ' closing tick for hsc2hs

instance VulkanMarshal VkStridedBufferRegionKHR where
    type StructRep VkStridedBufferRegionKHR =
         'StructMeta "VkStridedBufferRegionKHR" VkStridedBufferRegionKHR -- ' closing tick for hsc2hs
           (32)
{-# LINE 1597 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
           8
{-# LINE 1598 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
           '[('FieldMeta "buffer" VkBuffer 'True  -- ' closing tick for hsc2hs
                                                 (0)
{-# LINE 1600 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "offset" VkDeviceSize 'False
                                                      (8)
{-# LINE 1605 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "stride" VkDeviceSize 'False
                                                      (16)
{-# LINE 1610 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "size" VkDeviceSize 'False
                                                    (24)
{-# LINE 1615 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.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 VkTraceRaysIndirectCommandKHR {
--   >     uint32_t               width;
--   >     uint32_t               height;
--   >     uint32_t               depth;
--   > } VkTraceRaysIndirectCommandKHR;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkTraceRaysIndirectCommandKHR VkTraceRaysIndirectCommandKHR registry at www.khronos.org>
type VkTraceRaysIndirectCommandKHR =
     VkStruct VkTraceRaysIndirectCommandKHR' -- ' closing tick for hsc2hs

data VkTraceRaysIndirectCommandKHR' -- ' closing tick for hsc2hs

instance VulkanMarshal VkTraceRaysIndirectCommandKHR where
    type StructRep VkTraceRaysIndirectCommandKHR =
         'StructMeta "VkTraceRaysIndirectCommandKHR" -- ' closing tick for hsc2hs
           VkTraceRaysIndirectCommandKHR
           (12)
{-# LINE 1639 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
           4
{-# LINE 1640 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
           '[('FieldMeta "width" Word32 'False  -- ' closing tick for hsc2hs
                                               (0)
{-# LINE 1642 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "height" Word32 'False
                                                (4)
{-# LINE 1647 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "depth" Word32 'False
                                               (8)
{-# LINE 1652 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.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 VkTransformMatrixKHR {
--   >     float                                                   matrix[3][4];
--   > } VkTransformMatrixKHR;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkTransformMatrixKHR VkTransformMatrixKHR registry at www.khronos.org>
type VkTransformMatrixKHR = VkStruct VkTransformMatrixKHR' -- ' closing tick for hsc2hs

data VkTransformMatrixKHR' -- ' closing tick for hsc2hs

instance VulkanMarshal VkTransformMatrixKHR where
    type StructRep VkTransformMatrixKHR =
         'StructMeta "VkTransformMatrixKHR" VkTransformMatrixKHR  -- ' closing tick for hsc2hs
                                                                 (48)
{-# LINE 1672 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
           4
{-# LINE 1673 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
           '[('FieldMeta "matrix" (
                                   Float
{-# LINE 1675 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                                   ) 'False  -- ' closing tick for hsc2hs
                                            (0)
{-# LINE 1677 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.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 VkWriteDescriptorSetAccelerationStructureKHR {
--   >     VkStructureType sType;
--   >     const void*                      pNext;
--   >     uint32_t                         accelerationStructureCount;
--   >     const VkAccelerationStructureKHR* pAccelerationStructures;
--   > } VkWriteDescriptorSetAccelerationStructureKHR;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkWriteDescriptorSetAccelerationStructureKHR VkWriteDescriptorSetAccelerationStructureKHR registry at www.khronos.org>
type VkWriteDescriptorSetAccelerationStructureKHR =
     VkStruct VkWriteDescriptorSetAccelerationStructureKHR' -- ' closing tick for hsc2hs

data VkWriteDescriptorSetAccelerationStructureKHR' -- ' closing tick for hsc2hs

instance VulkanMarshal VkWriteDescriptorSetAccelerationStructureKHR
         where
    type StructRep VkWriteDescriptorSetAccelerationStructureKHR =
         'StructMeta "VkWriteDescriptorSetAccelerationStructureKHR" -- ' closing tick for hsc2hs
           VkWriteDescriptorSetAccelerationStructureKHR
           (32)
{-# LINE 1703 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
           8
{-# LINE 1704 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 1706 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False
                                                   (8)
{-# LINE 1711 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "accelerationStructureCount" Word32 'False
                                                                    (16)
{-# LINE 1716 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pAccelerationStructures" -- ' closing tick for hsc2hs
                (Ptr VkAccelerationStructureKHR)
                'False -- ' closing tick for hsc2hs
                (24)
{-# LINE 1723 "src-gen/Graphics/Vulkan/Types/Struct/EnableBetaExtensions.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[VkWriteDescriptorSet] -- ' closing tick for hsc2hs