{-# OPTIONS_GHC -fno-warn-orphans#-}
{-# OPTIONS_GHC -fno-warn-unused-imports#-}
{-# OPTIONS_HADDOCK not-home#-}
{-# LANGUAGE CPP                      #-}
{-# LANGUAGE DataKinds                #-}
{-# LANGUAGE FlexibleInstances        #-}
{-# LANGUAGE ForeignFunctionInterface #-}
{-# LANGUAGE MagicHash                #-}
{-# LANGUAGE PatternSynonyms          #-}
{-# LANGUAGE Strict                   #-}
{-# LANGUAGE TypeFamilies             #-}
{-# LANGUAGE ViewPatterns             #-}
module Graphics.Vulkan.Ext.VK_EXT_transform_feedback
       (-- * Vulkan extension: @VK_EXT_transform_feedback@
        -- |
        --
        -- supported: @vulkan@
        --
        -- contact: @Piers Daniell @pdaniell-nv@
        --
        -- author: @NV@
        --
        -- type: @device@
        --
        -- Extension number: @29@
        --
        -- Required extensions: 'VK_KHR_get_physical_device_properties2'.
        --

        -- ** Required extensions: 'VK_KHR_get_physical_device_properties2'.
        module Graphics.Vulkan.Marshal, AHardwareBuffer(),
        ANativeWindow(), CAMetalLayer(), VkBool32(..), VkDeviceAddress(..),
        VkDeviceSize(..), VkFlags(..), VkSampleMask(..),
        VkCullModeBitmask(..), VkCullModeFlagBits(), VkCullModeFlags(),
        VkAndroidSurfaceCreateFlagsKHR(..), VkBufferViewCreateFlags(..),
        VkBuildAccelerationStructureFlagsNV(..),
        VkCommandPoolTrimFlags(..), VkCommandPoolTrimFlagsKHR(..),
        VkDebugUtilsMessengerCallbackDataFlagsEXT(..),
        VkDebugUtilsMessengerCreateFlagsEXT(..),
        VkDescriptorBindingFlagsEXT(..), VkDescriptorPoolResetFlags(..),
        VkDescriptorUpdateTemplateCreateFlags(..),
        VkDescriptorUpdateTemplateCreateFlagsKHR(..),
        VkDeviceCreateFlags(..), VkDirectFBSurfaceCreateFlagsEXT(..),
        VkDisplayModeCreateFlagsKHR(..),
        VkDisplaySurfaceCreateFlagsKHR(..), VkEventCreateFlags(..),
        VkExternalFenceFeatureFlagsKHR(..),
        VkExternalFenceHandleTypeFlagsKHR(..),
        VkExternalMemoryFeatureFlagsKHR(..),
        VkExternalMemoryHandleTypeFlagsKHR(..),
        VkExternalSemaphoreFeatureFlagsKHR(..),
        VkExternalSemaphoreHandleTypeFlagsKHR(..),
        VkFenceImportFlagsKHR(..), VkGeometryFlagsNV(..),
        VkGeometryInstanceFlagsNV(..), VkHeadlessSurfaceCreateFlagsEXT(..),
        VkIOSSurfaceCreateFlagsMVK(..),
        VkImagePipeSurfaceCreateFlagsFUCHSIA(..),
        VkInstanceCreateFlags(..), VkMacOSSurfaceCreateFlagsMVK(..),
        VkMemoryAllocateFlagsKHR(..), VkMemoryMapFlags(..),
        VkMetalSurfaceCreateFlagsEXT(..), VkPeerMemoryFeatureFlagsKHR(..),
        VkPipelineColorBlendStateCreateFlags(..),
        VkPipelineCoverageModulationStateCreateFlagsNV(..),
        VkPipelineCoverageReductionStateCreateFlagsNV(..),
        VkPipelineCoverageToColorStateCreateFlagsNV(..),
        VkPipelineDepthStencilStateCreateFlags(..),
        VkPipelineDiscardRectangleStateCreateFlagsEXT(..),
        VkPipelineDynamicStateCreateFlags(..),
        VkPipelineInputAssemblyStateCreateFlags(..),
        VkPipelineLayoutCreateFlags(..),
        VkPipelineMultisampleStateCreateFlags(..),
        VkPipelineRasterizationConservativeStateCreateFlagsEXT(..),
        VkPipelineRasterizationDepthClipStateCreateFlagsEXT(..),
        VkPipelineRasterizationStateCreateFlags(..),
        VkPipelineRasterizationStateStreamCreateFlagsEXT(..),
        VkPipelineTessellationStateCreateFlags(..),
        VkPipelineVertexInputStateCreateFlags(..),
        VkPipelineViewportStateCreateFlags(..),
        VkPipelineViewportSwizzleStateCreateFlagsNV(..),
        VkQueryPoolCreateFlags(..), VkResolveModeFlagsKHR(..),
        VkSemaphoreCreateFlags(..), VkSemaphoreImportFlagsKHR(..),
        VkSemaphoreWaitFlagsKHR(..),
        VkStreamDescriptorSurfaceCreateFlagsGGP(..),
        VkValidationCacheCreateFlagsEXT(..), VkViSurfaceCreateFlagsNN(..),
        VkWaylandSurfaceCreateFlagsKHR(..),
        VkWin32SurfaceCreateFlagsKHR(..), VkXcbSurfaceCreateFlagsKHR(..),
        VkXlibSurfaceCreateFlagsKHR(..), VkDeviceCreateInfo,
        VkDeviceDiagnosticsConfigBitmaskNV(..), VkDeviceEventTypeEXT(..),
        VkDeviceGroupPresentModeBitmaskKHR(..), VkDeviceCreateFlagBits(..),
        VkDeviceDiagnosticsConfigFlagBitsNV(),
        VkDeviceDiagnosticsConfigFlagsNV(),
        VkDeviceGroupPresentModeFlagBitsKHR(),
        VkDeviceGroupPresentModeFlagsKHR(), VkDeviceQueueCreateBitmask(..),
        VkDeviceQueueCreateFlagBits(), VkDeviceQueueCreateFlags(),
        VkDeviceQueueCreateInfo, VkFrontFace(..), VkPhysicalDeviceFeatures,
        VkPhysicalDeviceFeatures2, VkPhysicalDeviceLimits,
        VkPhysicalDeviceProperties, VkPhysicalDeviceProperties2,
        VkPhysicalDeviceSparseProperties,
        VkPhysicalDeviceTransformFeedbackFeaturesEXT,
        VkPhysicalDeviceTransformFeedbackPropertiesEXT,
        VkPhysicalDeviceType(..), VkPipelineRasterizationStateCreateInfo,
        VkPipelineRasterizationStateStreamCreateInfoEXT, VkPolygonMode(..),
        VkSampleCountBitmask(..), VkSampleCountFlagBits(),
        VkSampleCountFlags(), VkStructureType(..),
        -- > #include "vk_platform.h"
        VkCmdBindTransformFeedbackBuffersEXT,
        pattern VkCmdBindTransformFeedbackBuffersEXT,
        HS_vkCmdBindTransformFeedbackBuffersEXT,
        PFN_vkCmdBindTransformFeedbackBuffersEXT,
        VkCmdBeginTransformFeedbackEXT,
        pattern VkCmdBeginTransformFeedbackEXT,
        HS_vkCmdBeginTransformFeedbackEXT,
        PFN_vkCmdBeginTransformFeedbackEXT, VkCmdEndTransformFeedbackEXT,
        pattern VkCmdEndTransformFeedbackEXT,
        HS_vkCmdEndTransformFeedbackEXT, PFN_vkCmdEndTransformFeedbackEXT,
        VkCmdBeginQueryIndexedEXT, pattern VkCmdBeginQueryIndexedEXT,
        HS_vkCmdBeginQueryIndexedEXT, PFN_vkCmdBeginQueryIndexedEXT,
        VkCmdEndQueryIndexedEXT, pattern VkCmdEndQueryIndexedEXT,
        HS_vkCmdEndQueryIndexedEXT, PFN_vkCmdEndQueryIndexedEXT,
        VkCmdDrawIndirectByteCountEXT,
        pattern VkCmdDrawIndirectByteCountEXT,
        HS_vkCmdDrawIndirectByteCountEXT,
        PFN_vkCmdDrawIndirectByteCountEXT, VkQueryControlBitmask(..),
        VkQueryPipelineStatisticBitmask(..),
        VkQueryPoolSamplingModeINTEL(..), VkQueryResultBitmask(..),
        VkQueryType(..), VkQueryControlFlagBits(), VkQueryControlFlags(),
        VkQueryPipelineStatisticFlagBits(),
        VkQueryPipelineStatisticFlags(), VkQueryPoolCreateFlagBits(..),
        VkQueryResultFlagBits(), VkQueryResultFlags(),
        VkAccelerationStructureKHR, VkAccelerationStructureKHR_T(),
        VkAccelerationStructureNV, VkAccelerationStructureNV_T(), VkBuffer,
        VkBufferView, VkBufferView_T(), VkBuffer_T(), VkCommandBuffer,
        VkCommandBuffer_T(), VkCommandPool, VkCommandPool_T(),
        VkDebugReportCallbackEXT, VkDebugReportCallbackEXT_T(),
        VkDebugUtilsMessengerEXT, VkDebugUtilsMessengerEXT_T(),
        VkDeferredOperationKHR, VkDeferredOperationKHR_T(),
        VkDescriptorPool, VkDescriptorPool_T(), VkDescriptorSet,
        VkDescriptorSetLayout, VkDescriptorSetLayout_T(),
        VkDescriptorSet_T(), VkDescriptorUpdateTemplate,
        VkDescriptorUpdateTemplateKHR, VkDescriptorUpdateTemplateKHR_T(),
        VkDescriptorUpdateTemplate_T(), VkDevice, VkDeviceMemory,
        VkDeviceMemory_T(), VkDevice_T(), VkDisplayKHR, VkDisplayKHR_T(),
        VkDisplayModeKHR, VkDisplayModeKHR_T(), VkEvent, VkEvent_T(),
        VkFence, VkFence_T(), VkFramebuffer, VkFramebuffer_T(), VkImage,
        VkImageView, VkImageView_T(), VkImage_T(),
        VkIndirectCommandsLayoutNV, VkIndirectCommandsLayoutNV_T(),
        VkInstance, VkInstance_T(), VkPerformanceConfigurationINTEL,
        VkPerformanceConfigurationINTEL_T(), VkPhysicalDevice,
        VkPhysicalDevice_T(), VkPipeline, VkPipelineCache,
        VkPipelineCache_T(), VkPipelineLayout, VkPipelineLayout_T(),
        VkPipeline_T(), VkPrivateDataSlotEXT, VkPrivateDataSlotEXT_T(),
        VkQueryPool, VkQueryPool_T(), VkQueue, VkQueue_T(), VkRenderPass,
        VkRenderPass_T(), VkSampler, VkSamplerYcbcrConversion,
        VkSamplerYcbcrConversionKHR, VkSamplerYcbcrConversionKHR_T(),
        VkSamplerYcbcrConversion_T(), VkSampler_T(), VkSemaphore,
        VkSemaphore_T(), VkShaderModule, VkShaderModule_T(), VkSurfaceKHR,
        VkSurfaceKHR_T(), VkSwapchainKHR, VkSwapchainKHR_T(),
        VkValidationCacheEXT, VkValidationCacheEXT_T(),
        VK_EXT_TRANSFORM_FEEDBACK_SPEC_VERSION,
        pattern VK_EXT_TRANSFORM_FEEDBACK_SPEC_VERSION,
        VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME,
        pattern VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME,
        pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT,
        pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT,
        pattern VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT,
        pattern VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT,
        pattern VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT,
        pattern VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT,
        pattern VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT,
        pattern VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT,
        pattern VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT,
        pattern VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT)
       where
import GHC.Ptr                                             (Ptr (..))
import Graphics.Vulkan.Marshal
import Graphics.Vulkan.Marshal.Proc                        (VulkanProc (..))
import Graphics.Vulkan.Types.BaseTypes
import Graphics.Vulkan.Types.Bitmasks
import Graphics.Vulkan.Types.Enum.AccessFlags              (VkAccessBitmask (..))
import Graphics.Vulkan.Types.Enum.Buffer                   (VkBufferUsageBitmask (..))
import Graphics.Vulkan.Types.Enum.CullModeFlags
import Graphics.Vulkan.Types.Enum.Device
import Graphics.Vulkan.Types.Enum.FrontFace
import Graphics.Vulkan.Types.Enum.PhysicalDeviceType
import Graphics.Vulkan.Types.Enum.Pipeline                 (VkPipelineStageBitmask (..))
import Graphics.Vulkan.Types.Enum.PolygonMode
import Graphics.Vulkan.Types.Enum.Query
import Graphics.Vulkan.Types.Enum.SampleCountFlags
import Graphics.Vulkan.Types.Enum.StructureType
import Graphics.Vulkan.Types.Handles
import Graphics.Vulkan.Types.Struct.Device                 (VkDeviceCreateInfo, VkDeviceQueueCreateInfo)
import Graphics.Vulkan.Types.Struct.PhysicalDevice         (VkPhysicalDeviceFeatures2,
                                                            VkPhysicalDeviceLimits,
                                                            VkPhysicalDeviceProperties,
                                                            VkPhysicalDeviceProperties2,
                                                            VkPhysicalDeviceSparseProperties,
                                                            VkPhysicalDeviceTransformFeedbackFeaturesEXT,
                                                            VkPhysicalDeviceTransformFeedbackPropertiesEXT)
import Graphics.Vulkan.Types.Struct.PhysicalDeviceFeatures (VkPhysicalDeviceFeatures)
import Graphics.Vulkan.Types.Struct.Pipeline               (VkPipelineRasterizationStateCreateInfo,
                                                            VkPipelineRasterizationStateStreamCreateInfoEXT)

pattern VkCmdBindTransformFeedbackBuffersEXT :: CString

pattern $bVkCmdBindTransformFeedbackBuffersEXT :: CString
$mVkCmdBindTransformFeedbackBuffersEXT :: forall {r}. CString -> (Void# -> r) -> (Void# -> r) -> r
VkCmdBindTransformFeedbackBuffersEXT <-
        (is_VkCmdBindTransformFeedbackBuffersEXT -> True)
  where
    VkCmdBindTransformFeedbackBuffersEXT
      = CString
_VkCmdBindTransformFeedbackBuffersEXT

{-# INLINE _VkCmdBindTransformFeedbackBuffersEXT #-}

_VkCmdBindTransformFeedbackBuffersEXT :: CString
_VkCmdBindTransformFeedbackBuffersEXT :: CString
_VkCmdBindTransformFeedbackBuffersEXT
  = Addr# -> CString
forall a. Addr# -> Ptr a
Ptr Addr#
"vkCmdBindTransformFeedbackBuffersEXT\NUL"#

{-# INLINE is_VkCmdBindTransformFeedbackBuffersEXT #-}

is_VkCmdBindTransformFeedbackBuffersEXT :: CString -> Bool
is_VkCmdBindTransformFeedbackBuffersEXT :: CString -> Bool
is_VkCmdBindTransformFeedbackBuffersEXT
  = (Ordering
EQ Ordering -> Ordering -> Bool
forall a. Eq a => a -> a -> Bool
==) (Ordering -> Bool) -> (CString -> Ordering) -> CString -> Bool
forall b c a. (b -> c) -> (a -> b) -> a -> c
. CString -> CString -> Ordering
cmpCStrings CString
_VkCmdBindTransformFeedbackBuffersEXT

type VkCmdBindTransformFeedbackBuffersEXT =
     "vkCmdBindTransformFeedbackBuffersEXT"

-- | Queues: 'graphics'.
--
--   Renderpass: @both@
--
--   > void vkCmdBindTransformFeedbackBuffersEXT
--   >     ( VkCommandBuffer commandBuffer
--   >     , uint32_t firstBinding
--   >     , uint32_t bindingCount
--   >     , const VkBuffer* pBuffers
--   >     , const VkDeviceSize* pOffsets
--   >     , const VkDeviceSize* pSizes
--   >     )
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBindTransformFeedbackBuffersEXT vkCmdBindTransformFeedbackBuffersEXT registry at www.khronos.org>
type HS_vkCmdBindTransformFeedbackBuffersEXT =
     VkCommandBuffer -- ^ commandBuffer
                     ->
       Word32 -- ^ firstBinding
              ->
         Word32 -- ^ bindingCount
                ->
           Ptr VkBuffer -- ^ pBuffers
                        -> Ptr VkDeviceSize -- ^ pOffsets
                                            -> Ptr VkDeviceSize -- ^ pSizes
                                                                -> IO ()

type PFN_vkCmdBindTransformFeedbackBuffersEXT =
     FunPtr HS_vkCmdBindTransformFeedbackBuffersEXT

foreign import ccall unsafe "dynamic"
               unwrapVkCmdBindTransformFeedbackBuffersEXTUnsafe ::
               PFN_vkCmdBindTransformFeedbackBuffersEXT ->
                 HS_vkCmdBindTransformFeedbackBuffersEXT

foreign import ccall safe "dynamic"
               unwrapVkCmdBindTransformFeedbackBuffersEXTSafe ::
               PFN_vkCmdBindTransformFeedbackBuffersEXT ->
                 HS_vkCmdBindTransformFeedbackBuffersEXT

instance VulkanProc "vkCmdBindTransformFeedbackBuffersEXT" where
    type VkProcType "vkCmdBindTransformFeedbackBuffersEXT" =
         HS_vkCmdBindTransformFeedbackBuffersEXT
    vkProcSymbol :: CString
vkProcSymbol = CString
_VkCmdBindTransformFeedbackBuffersEXT

    {-# INLINE vkProcSymbol #-}
    unwrapVkProcPtrUnsafe :: FunPtr (VkProcType "vkCmdBindTransformFeedbackBuffersEXT")
-> VkProcType "vkCmdBindTransformFeedbackBuffersEXT"
unwrapVkProcPtrUnsafe
      = FunPtr (VkProcType "vkCmdBindTransformFeedbackBuffersEXT")
-> VkProcType "vkCmdBindTransformFeedbackBuffersEXT"
PFN_vkCmdBindTransformFeedbackBuffersEXT
-> HS_vkCmdBindTransformFeedbackBuffersEXT
unwrapVkCmdBindTransformFeedbackBuffersEXTUnsafe

    {-# INLINE unwrapVkProcPtrUnsafe #-}
    unwrapVkProcPtrSafe :: FunPtr (VkProcType "vkCmdBindTransformFeedbackBuffersEXT")
-> VkProcType "vkCmdBindTransformFeedbackBuffersEXT"
unwrapVkProcPtrSafe
      = FunPtr (VkProcType "vkCmdBindTransformFeedbackBuffersEXT")
-> VkProcType "vkCmdBindTransformFeedbackBuffersEXT"
PFN_vkCmdBindTransformFeedbackBuffersEXT
-> HS_vkCmdBindTransformFeedbackBuffersEXT
unwrapVkCmdBindTransformFeedbackBuffersEXTSafe

    {-# INLINE unwrapVkProcPtrSafe #-}

pattern VkCmdBeginTransformFeedbackEXT :: CString

pattern $bVkCmdBeginTransformFeedbackEXT :: CString
$mVkCmdBeginTransformFeedbackEXT :: forall {r}. CString -> (Void# -> r) -> (Void# -> r) -> r
VkCmdBeginTransformFeedbackEXT <-
        (is_VkCmdBeginTransformFeedbackEXT -> True)
  where
    VkCmdBeginTransformFeedbackEXT = CString
_VkCmdBeginTransformFeedbackEXT

{-# INLINE _VkCmdBeginTransformFeedbackEXT #-}

_VkCmdBeginTransformFeedbackEXT :: CString
_VkCmdBeginTransformFeedbackEXT :: CString
_VkCmdBeginTransformFeedbackEXT
  = Addr# -> CString
forall a. Addr# -> Ptr a
Ptr Addr#
"vkCmdBeginTransformFeedbackEXT\NUL"#

{-# INLINE is_VkCmdBeginTransformFeedbackEXT #-}

is_VkCmdBeginTransformFeedbackEXT :: CString -> Bool
is_VkCmdBeginTransformFeedbackEXT :: CString -> Bool
is_VkCmdBeginTransformFeedbackEXT
  = (Ordering
EQ Ordering -> Ordering -> Bool
forall a. Eq a => a -> a -> Bool
==) (Ordering -> Bool) -> (CString -> Ordering) -> CString -> Bool
forall b c a. (b -> c) -> (a -> b) -> a -> c
. CString -> CString -> Ordering
cmpCStrings CString
_VkCmdBeginTransformFeedbackEXT

type VkCmdBeginTransformFeedbackEXT =
     "vkCmdBeginTransformFeedbackEXT"

-- | Queues: 'graphics'.
--
--   Renderpass: @inside@
--
--   > void vkCmdBeginTransformFeedbackEXT
--   >     ( VkCommandBuffer commandBuffer
--   >     , uint32_t firstCounterBuffer
--   >     , uint32_t counterBufferCount
--   >     , const VkBuffer* pCounterBuffers
--   >     , const VkDeviceSize* pCounterBufferOffsets
--   >     )
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginTransformFeedbackEXT vkCmdBeginTransformFeedbackEXT registry at www.khronos.org>
type HS_vkCmdBeginTransformFeedbackEXT =
     VkCommandBuffer -- ^ commandBuffer
                     ->
       Word32 -- ^ firstCounterBuffer
              -> Word32 -- ^ counterBufferCount
                        -> Ptr VkBuffer -- ^ pCounterBuffers
                                        -> Ptr VkDeviceSize -- ^ pCounterBufferOffsets
                                                            -> IO ()

type PFN_vkCmdBeginTransformFeedbackEXT =
     FunPtr HS_vkCmdBeginTransformFeedbackEXT

foreign import ccall unsafe "dynamic"
               unwrapVkCmdBeginTransformFeedbackEXTUnsafe ::
               PFN_vkCmdBeginTransformFeedbackEXT ->
                 HS_vkCmdBeginTransformFeedbackEXT

foreign import ccall safe "dynamic"
               unwrapVkCmdBeginTransformFeedbackEXTSafe ::
               PFN_vkCmdBeginTransformFeedbackEXT ->
                 HS_vkCmdBeginTransformFeedbackEXT

instance VulkanProc "vkCmdBeginTransformFeedbackEXT" where
    type VkProcType "vkCmdBeginTransformFeedbackEXT" =
         HS_vkCmdBeginTransformFeedbackEXT
    vkProcSymbol :: CString
vkProcSymbol = CString
_VkCmdBeginTransformFeedbackEXT

    {-# INLINE vkProcSymbol #-}
    unwrapVkProcPtrUnsafe :: FunPtr (VkProcType "vkCmdBeginTransformFeedbackEXT")
-> VkProcType "vkCmdBeginTransformFeedbackEXT"
unwrapVkProcPtrUnsafe = FunPtr (VkProcType "vkCmdBeginTransformFeedbackEXT")
-> VkProcType "vkCmdBeginTransformFeedbackEXT"
PFN_vkCmdBeginTransformFeedbackEXT
-> HS_vkCmdBeginTransformFeedbackEXT
unwrapVkCmdBeginTransformFeedbackEXTUnsafe

    {-# INLINE unwrapVkProcPtrUnsafe #-}
    unwrapVkProcPtrSafe :: FunPtr (VkProcType "vkCmdBeginTransformFeedbackEXT")
-> VkProcType "vkCmdBeginTransformFeedbackEXT"
unwrapVkProcPtrSafe = FunPtr (VkProcType "vkCmdBeginTransformFeedbackEXT")
-> VkProcType "vkCmdBeginTransformFeedbackEXT"
PFN_vkCmdBeginTransformFeedbackEXT
-> HS_vkCmdBeginTransformFeedbackEXT
unwrapVkCmdBeginTransformFeedbackEXTSafe

    {-# INLINE unwrapVkProcPtrSafe #-}

pattern VkCmdEndTransformFeedbackEXT :: CString

pattern $bVkCmdEndTransformFeedbackEXT :: CString
$mVkCmdEndTransformFeedbackEXT :: forall {r}. CString -> (Void# -> r) -> (Void# -> r) -> r
VkCmdEndTransformFeedbackEXT <-
        (is_VkCmdEndTransformFeedbackEXT -> True)
  where
    VkCmdEndTransformFeedbackEXT = CString
_VkCmdEndTransformFeedbackEXT

{-# INLINE _VkCmdEndTransformFeedbackEXT #-}

_VkCmdEndTransformFeedbackEXT :: CString
_VkCmdEndTransformFeedbackEXT :: CString
_VkCmdEndTransformFeedbackEXT
  = Addr# -> CString
forall a. Addr# -> Ptr a
Ptr Addr#
"vkCmdEndTransformFeedbackEXT\NUL"#

{-# INLINE is_VkCmdEndTransformFeedbackEXT #-}

is_VkCmdEndTransformFeedbackEXT :: CString -> Bool
is_VkCmdEndTransformFeedbackEXT :: CString -> Bool
is_VkCmdEndTransformFeedbackEXT
  = (Ordering
EQ Ordering -> Ordering -> Bool
forall a. Eq a => a -> a -> Bool
==) (Ordering -> Bool) -> (CString -> Ordering) -> CString -> Bool
forall b c a. (b -> c) -> (a -> b) -> a -> c
. CString -> CString -> Ordering
cmpCStrings CString
_VkCmdEndTransformFeedbackEXT

type VkCmdEndTransformFeedbackEXT = "vkCmdEndTransformFeedbackEXT"

-- | Queues: 'graphics'.
--
--   Renderpass: @inside@
--
--   > void vkCmdEndTransformFeedbackEXT
--   >     ( VkCommandBuffer commandBuffer
--   >     , uint32_t firstCounterBuffer
--   >     , uint32_t counterBufferCount
--   >     , const VkBuffer* pCounterBuffers
--   >     , const VkDeviceSize* pCounterBufferOffsets
--   >     )
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdEndTransformFeedbackEXT vkCmdEndTransformFeedbackEXT registry at www.khronos.org>
type HS_vkCmdEndTransformFeedbackEXT =
     VkCommandBuffer -- ^ commandBuffer
                     ->
       Word32 -- ^ firstCounterBuffer
              -> Word32 -- ^ counterBufferCount
                        -> Ptr VkBuffer -- ^ pCounterBuffers
                                        -> Ptr VkDeviceSize -- ^ pCounterBufferOffsets
                                                            -> IO ()

type PFN_vkCmdEndTransformFeedbackEXT =
     FunPtr HS_vkCmdEndTransformFeedbackEXT

foreign import ccall unsafe "dynamic"
               unwrapVkCmdEndTransformFeedbackEXTUnsafe ::
               PFN_vkCmdEndTransformFeedbackEXT -> HS_vkCmdEndTransformFeedbackEXT

foreign import ccall safe "dynamic"
               unwrapVkCmdEndTransformFeedbackEXTSafe ::
               PFN_vkCmdEndTransformFeedbackEXT -> HS_vkCmdEndTransformFeedbackEXT

instance VulkanProc "vkCmdEndTransformFeedbackEXT" where
    type VkProcType "vkCmdEndTransformFeedbackEXT" =
         HS_vkCmdEndTransformFeedbackEXT
    vkProcSymbol :: CString
vkProcSymbol = CString
_VkCmdEndTransformFeedbackEXT

    {-# INLINE vkProcSymbol #-}
    unwrapVkProcPtrUnsafe :: FunPtr (VkProcType "vkCmdEndTransformFeedbackEXT")
-> VkProcType "vkCmdEndTransformFeedbackEXT"
unwrapVkProcPtrUnsafe = FunPtr (VkProcType "vkCmdEndTransformFeedbackEXT")
-> VkProcType "vkCmdEndTransformFeedbackEXT"
PFN_vkCmdBeginTransformFeedbackEXT
-> HS_vkCmdBeginTransformFeedbackEXT
unwrapVkCmdEndTransformFeedbackEXTUnsafe

    {-# INLINE unwrapVkProcPtrUnsafe #-}
    unwrapVkProcPtrSafe :: FunPtr (VkProcType "vkCmdEndTransformFeedbackEXT")
-> VkProcType "vkCmdEndTransformFeedbackEXT"
unwrapVkProcPtrSafe = FunPtr (VkProcType "vkCmdEndTransformFeedbackEXT")
-> VkProcType "vkCmdEndTransformFeedbackEXT"
PFN_vkCmdBeginTransformFeedbackEXT
-> HS_vkCmdBeginTransformFeedbackEXT
unwrapVkCmdEndTransformFeedbackEXTSafe

    {-# INLINE unwrapVkProcPtrSafe #-}

pattern VkCmdBeginQueryIndexedEXT :: CString

pattern $bVkCmdBeginQueryIndexedEXT :: CString
$mVkCmdBeginQueryIndexedEXT :: forall {r}. CString -> (Void# -> r) -> (Void# -> r) -> r
VkCmdBeginQueryIndexedEXT <-
        (is_VkCmdBeginQueryIndexedEXT -> True)
  where
    VkCmdBeginQueryIndexedEXT = CString
_VkCmdBeginQueryIndexedEXT

{-# INLINE _VkCmdBeginQueryIndexedEXT #-}

_VkCmdBeginQueryIndexedEXT :: CString
_VkCmdBeginQueryIndexedEXT :: CString
_VkCmdBeginQueryIndexedEXT = Addr# -> CString
forall a. Addr# -> Ptr a
Ptr Addr#
"vkCmdBeginQueryIndexedEXT\NUL"#

{-# INLINE is_VkCmdBeginQueryIndexedEXT #-}

is_VkCmdBeginQueryIndexedEXT :: CString -> Bool
is_VkCmdBeginQueryIndexedEXT :: CString -> Bool
is_VkCmdBeginQueryIndexedEXT
  = (Ordering
EQ Ordering -> Ordering -> Bool
forall a. Eq a => a -> a -> Bool
==) (Ordering -> Bool) -> (CString -> Ordering) -> CString -> Bool
forall b c a. (b -> c) -> (a -> b) -> a -> c
. CString -> CString -> Ordering
cmpCStrings CString
_VkCmdBeginQueryIndexedEXT

type VkCmdBeginQueryIndexedEXT = "vkCmdBeginQueryIndexedEXT"

-- | Queues: 'graphics', 'compute'.
--
--   Renderpass: @both@
--
--   > void vkCmdBeginQueryIndexedEXT
--   >     ( VkCommandBuffer commandBuffer
--   >     , VkQueryPool queryPool
--   >     , uint32_t query
--   >     , VkQueryControlFlags flags
--   >     , uint32_t index
--   >     )
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginQueryIndexedEXT vkCmdBeginQueryIndexedEXT registry at www.khronos.org>
type HS_vkCmdBeginQueryIndexedEXT =
     VkCommandBuffer -- ^ commandBuffer
                     ->
       VkQueryPool -- ^ queryPool
                   -> Word32 -- ^ query
                             -> VkQueryControlFlags -- ^ flags
                                                    -> Word32 -- ^ index
                                                              -> IO ()

type PFN_vkCmdBeginQueryIndexedEXT =
     FunPtr HS_vkCmdBeginQueryIndexedEXT

foreign import ccall unsafe "dynamic"
               unwrapVkCmdBeginQueryIndexedEXTUnsafe ::
               PFN_vkCmdBeginQueryIndexedEXT -> HS_vkCmdBeginQueryIndexedEXT

foreign import ccall safe "dynamic"
               unwrapVkCmdBeginQueryIndexedEXTSafe ::
               PFN_vkCmdBeginQueryIndexedEXT -> HS_vkCmdBeginQueryIndexedEXT

instance VulkanProc "vkCmdBeginQueryIndexedEXT" where
    type VkProcType "vkCmdBeginQueryIndexedEXT" =
         HS_vkCmdBeginQueryIndexedEXT
    vkProcSymbol :: CString
vkProcSymbol = CString
_VkCmdBeginQueryIndexedEXT

    {-# INLINE vkProcSymbol #-}
    unwrapVkProcPtrUnsafe :: FunPtr (VkProcType "vkCmdBeginQueryIndexedEXT")
-> VkProcType "vkCmdBeginQueryIndexedEXT"
unwrapVkProcPtrUnsafe = FunPtr (VkProcType "vkCmdBeginQueryIndexedEXT")
-> VkProcType "vkCmdBeginQueryIndexedEXT"
PFN_vkCmdBeginQueryIndexedEXT -> HS_vkCmdBeginQueryIndexedEXT
unwrapVkCmdBeginQueryIndexedEXTUnsafe

    {-# INLINE unwrapVkProcPtrUnsafe #-}
    unwrapVkProcPtrSafe :: FunPtr (VkProcType "vkCmdBeginQueryIndexedEXT")
-> VkProcType "vkCmdBeginQueryIndexedEXT"
unwrapVkProcPtrSafe = FunPtr (VkProcType "vkCmdBeginQueryIndexedEXT")
-> VkProcType "vkCmdBeginQueryIndexedEXT"
PFN_vkCmdBeginQueryIndexedEXT -> HS_vkCmdBeginQueryIndexedEXT
unwrapVkCmdBeginQueryIndexedEXTSafe

    {-# INLINE unwrapVkProcPtrSafe #-}

pattern VkCmdEndQueryIndexedEXT :: CString

pattern $bVkCmdEndQueryIndexedEXT :: CString
$mVkCmdEndQueryIndexedEXT :: forall {r}. CString -> (Void# -> r) -> (Void# -> r) -> r
VkCmdEndQueryIndexedEXT <-
        (is_VkCmdEndQueryIndexedEXT -> True)
  where
    VkCmdEndQueryIndexedEXT = CString
_VkCmdEndQueryIndexedEXT

{-# INLINE _VkCmdEndQueryIndexedEXT #-}

_VkCmdEndQueryIndexedEXT :: CString
_VkCmdEndQueryIndexedEXT :: CString
_VkCmdEndQueryIndexedEXT = Addr# -> CString
forall a. Addr# -> Ptr a
Ptr Addr#
"vkCmdEndQueryIndexedEXT\NUL"#

{-# INLINE is_VkCmdEndQueryIndexedEXT #-}

is_VkCmdEndQueryIndexedEXT :: CString -> Bool
is_VkCmdEndQueryIndexedEXT :: CString -> Bool
is_VkCmdEndQueryIndexedEXT
  = (Ordering
EQ Ordering -> Ordering -> Bool
forall a. Eq a => a -> a -> Bool
==) (Ordering -> Bool) -> (CString -> Ordering) -> CString -> Bool
forall b c a. (b -> c) -> (a -> b) -> a -> c
. CString -> CString -> Ordering
cmpCStrings CString
_VkCmdEndQueryIndexedEXT

type VkCmdEndQueryIndexedEXT = "vkCmdEndQueryIndexedEXT"

-- | Queues: 'graphics', 'compute'.
--
--   Renderpass: @both@
--
--   > void vkCmdEndQueryIndexedEXT
--   >     ( VkCommandBuffer commandBuffer
--   >     , VkQueryPool queryPool
--   >     , uint32_t query
--   >     , uint32_t index
--   >     )
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdEndQueryIndexedEXT vkCmdEndQueryIndexedEXT registry at www.khronos.org>
type HS_vkCmdEndQueryIndexedEXT =
     VkCommandBuffer -- ^ commandBuffer
                     -> VkQueryPool -- ^ queryPool
                                    -> Word32 -- ^ query
                                              -> Word32 -- ^ index
                                                        -> IO ()

type PFN_vkCmdEndQueryIndexedEXT =
     FunPtr HS_vkCmdEndQueryIndexedEXT

foreign import ccall unsafe "dynamic"
               unwrapVkCmdEndQueryIndexedEXTUnsafe ::
               PFN_vkCmdEndQueryIndexedEXT -> HS_vkCmdEndQueryIndexedEXT

foreign import ccall safe "dynamic"
               unwrapVkCmdEndQueryIndexedEXTSafe ::
               PFN_vkCmdEndQueryIndexedEXT -> HS_vkCmdEndQueryIndexedEXT

instance VulkanProc "vkCmdEndQueryIndexedEXT" where
    type VkProcType "vkCmdEndQueryIndexedEXT" =
         HS_vkCmdEndQueryIndexedEXT
    vkProcSymbol :: CString
vkProcSymbol = CString
_VkCmdEndQueryIndexedEXT

    {-# INLINE vkProcSymbol #-}
    unwrapVkProcPtrUnsafe :: FunPtr (VkProcType "vkCmdEndQueryIndexedEXT")
-> VkProcType "vkCmdEndQueryIndexedEXT"
unwrapVkProcPtrUnsafe = FunPtr (VkProcType "vkCmdEndQueryIndexedEXT")
-> VkProcType "vkCmdEndQueryIndexedEXT"
PFN_vkCmdEndQueryIndexedEXT -> HS_vkCmdEndQueryIndexedEXT
unwrapVkCmdEndQueryIndexedEXTUnsafe

    {-# INLINE unwrapVkProcPtrUnsafe #-}
    unwrapVkProcPtrSafe :: FunPtr (VkProcType "vkCmdEndQueryIndexedEXT")
-> VkProcType "vkCmdEndQueryIndexedEXT"
unwrapVkProcPtrSafe = FunPtr (VkProcType "vkCmdEndQueryIndexedEXT")
-> VkProcType "vkCmdEndQueryIndexedEXT"
PFN_vkCmdEndQueryIndexedEXT -> HS_vkCmdEndQueryIndexedEXT
unwrapVkCmdEndQueryIndexedEXTSafe

    {-# INLINE unwrapVkProcPtrSafe #-}

pattern VkCmdDrawIndirectByteCountEXT :: CString

pattern $bVkCmdDrawIndirectByteCountEXT :: CString
$mVkCmdDrawIndirectByteCountEXT :: forall {r}. CString -> (Void# -> r) -> (Void# -> r) -> r
VkCmdDrawIndirectByteCountEXT <-
        (is_VkCmdDrawIndirectByteCountEXT -> True)
  where
    VkCmdDrawIndirectByteCountEXT = CString
_VkCmdDrawIndirectByteCountEXT

{-# INLINE _VkCmdDrawIndirectByteCountEXT #-}

_VkCmdDrawIndirectByteCountEXT :: CString
_VkCmdDrawIndirectByteCountEXT :: CString
_VkCmdDrawIndirectByteCountEXT
  = Addr# -> CString
forall a. Addr# -> Ptr a
Ptr Addr#
"vkCmdDrawIndirectByteCountEXT\NUL"#

{-# INLINE is_VkCmdDrawIndirectByteCountEXT #-}

is_VkCmdDrawIndirectByteCountEXT :: CString -> Bool
is_VkCmdDrawIndirectByteCountEXT :: CString -> Bool
is_VkCmdDrawIndirectByteCountEXT
  = (Ordering
EQ Ordering -> Ordering -> Bool
forall a. Eq a => a -> a -> Bool
==) (Ordering -> Bool) -> (CString -> Ordering) -> CString -> Bool
forall b c a. (b -> c) -> (a -> b) -> a -> c
. CString -> CString -> Ordering
cmpCStrings CString
_VkCmdDrawIndirectByteCountEXT

type VkCmdDrawIndirectByteCountEXT =
     "vkCmdDrawIndirectByteCountEXT"

-- | Queues: 'graphics'.
--
--   Renderpass: @inside@
--
--   Pipeline: @graphics@
--
--   > void vkCmdDrawIndirectByteCountEXT
--   >     ( VkCommandBuffer commandBuffer
--   >     , uint32_t instanceCount
--   >     , uint32_t firstInstance
--   >     , VkBuffer counterBuffer
--   >     , VkDeviceSize counterBufferOffset
--   >     , uint32_t counterOffset
--   >     , uint32_t vertexStride
--   >     )
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdDrawIndirectByteCountEXT vkCmdDrawIndirectByteCountEXT registry at www.khronos.org>
type HS_vkCmdDrawIndirectByteCountEXT =
     VkCommandBuffer -- ^ commandBuffer
                     ->
       Word32 -- ^ instanceCount
              ->
         Word32 -- ^ firstInstance
                -> VkBuffer -- ^ counterBuffer
                            -> VkDeviceSize -- ^ counterBufferOffset
                                            -> Word32 -- ^ counterOffset
                                                      -> Word32 -- ^ vertexStride
                                                                -> IO ()

type PFN_vkCmdDrawIndirectByteCountEXT =
     FunPtr HS_vkCmdDrawIndirectByteCountEXT

foreign import ccall unsafe "dynamic"
               unwrapVkCmdDrawIndirectByteCountEXTUnsafe ::
               PFN_vkCmdDrawIndirectByteCountEXT ->
                 HS_vkCmdDrawIndirectByteCountEXT

foreign import ccall safe "dynamic"
               unwrapVkCmdDrawIndirectByteCountEXTSafe ::
               PFN_vkCmdDrawIndirectByteCountEXT ->
                 HS_vkCmdDrawIndirectByteCountEXT

instance VulkanProc "vkCmdDrawIndirectByteCountEXT" where
    type VkProcType "vkCmdDrawIndirectByteCountEXT" =
         HS_vkCmdDrawIndirectByteCountEXT
    vkProcSymbol :: CString
vkProcSymbol = CString
_VkCmdDrawIndirectByteCountEXT

    {-# INLINE vkProcSymbol #-}
    unwrapVkProcPtrUnsafe :: FunPtr (VkProcType "vkCmdDrawIndirectByteCountEXT")
-> VkProcType "vkCmdDrawIndirectByteCountEXT"
unwrapVkProcPtrUnsafe = FunPtr (VkProcType "vkCmdDrawIndirectByteCountEXT")
-> VkProcType "vkCmdDrawIndirectByteCountEXT"
PFN_vkCmdDrawIndirectByteCountEXT
-> HS_vkCmdDrawIndirectByteCountEXT
unwrapVkCmdDrawIndirectByteCountEXTUnsafe

    {-# INLINE unwrapVkProcPtrUnsafe #-}
    unwrapVkProcPtrSafe :: FunPtr (VkProcType "vkCmdDrawIndirectByteCountEXT")
-> VkProcType "vkCmdDrawIndirectByteCountEXT"
unwrapVkProcPtrSafe = FunPtr (VkProcType "vkCmdDrawIndirectByteCountEXT")
-> VkProcType "vkCmdDrawIndirectByteCountEXT"
PFN_vkCmdDrawIndirectByteCountEXT
-> HS_vkCmdDrawIndirectByteCountEXT
unwrapVkCmdDrawIndirectByteCountEXTSafe

    {-# INLINE unwrapVkProcPtrSafe #-}

pattern VK_EXT_TRANSFORM_FEEDBACK_SPEC_VERSION :: (Num a, Eq a) =>
        a

pattern $bVK_EXT_TRANSFORM_FEEDBACK_SPEC_VERSION :: forall a. (Num a, Eq a) => a
$mVK_EXT_TRANSFORM_FEEDBACK_SPEC_VERSION :: forall {r} {a}.
(Num a, Eq a) =>
a -> (Void# -> r) -> (Void# -> r) -> r
VK_EXT_TRANSFORM_FEEDBACK_SPEC_VERSION = 1

type VK_EXT_TRANSFORM_FEEDBACK_SPEC_VERSION = 1

pattern VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME :: CString

pattern $bVK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME :: CString
$mVK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME :: forall {r}. CString -> (Void# -> r) -> (Void# -> r) -> r
VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME <-
        (is_VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME -> True)
  where
    VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME
      = CString
_VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME

{-# INLINE _VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME #-}

_VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME :: CString
_VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME :: CString
_VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME
  = Addr# -> CString
forall a. Addr# -> Ptr a
Ptr Addr#
"VK_EXT_transform_feedback\NUL"#

{-# INLINE is_VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME #-}

is_VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME :: CString -> Bool
is_VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME :: CString -> Bool
is_VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME
  = (Ordering
EQ Ordering -> Ordering -> Bool
forall a. Eq a => a -> a -> Bool
==) (Ordering -> Bool) -> (CString -> Ordering) -> CString -> Bool
forall b c a. (b -> c) -> (a -> b) -> a -> c
. CString -> CString -> Ordering
cmpCStrings CString
_VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME

type VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME =
     "VK_EXT_transform_feedback"

pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT
        :: VkStructureType

pattern $bVK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT :: VkStructureType
$mVK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT :: forall {r}. VkStructureType -> (Void# -> r) -> (Void# -> r) -> r
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT
        = VkStructureType 1000028000

pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT
        :: VkStructureType

pattern $bVK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT :: VkStructureType
$mVK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT :: forall {r}. VkStructureType -> (Void# -> r) -> (Void# -> r) -> r
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT
        = VkStructureType 1000028001

pattern VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT
        :: VkStructureType

pattern $bVK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT :: VkStructureType
$mVK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT :: forall {r}. VkStructureType -> (Void# -> r) -> (Void# -> r) -> r
VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT
        = VkStructureType 1000028002

pattern VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT :: VkQueryType

pattern $bVK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT :: VkQueryType
$mVK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT :: forall {r}. VkQueryType -> (Void# -> r) -> (Void# -> r) -> r
VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT =
        VkQueryType 1000028004

-- | bitpos = @11@
pattern VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT ::
        VkBufferUsageBitmask a

pattern $bVK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT :: forall (a :: FlagType). VkBufferUsageBitmask a
$mVK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT :: forall {r} {a :: FlagType}.
VkBufferUsageBitmask a -> (Void# -> r) -> (Void# -> r) -> r
VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT =
        VkBufferUsageBitmask 2048

-- | bitpos = @12@
pattern VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT
        :: VkBufferUsageBitmask a

pattern $bVK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT :: forall (a :: FlagType). VkBufferUsageBitmask a
$mVK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT :: forall {r} {a :: FlagType}.
VkBufferUsageBitmask a -> (Void# -> r) -> (Void# -> r) -> r
VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT =
        VkBufferUsageBitmask 4096

-- | bitpos = @25@
pattern VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT ::
        VkAccessBitmask a

pattern $bVK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT :: forall (a :: FlagType). VkAccessBitmask a
$mVK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT :: forall {r} {a :: FlagType}.
VkAccessBitmask a -> (Void# -> r) -> (Void# -> r) -> r
VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT =
        VkAccessBitmask 33554432

-- | bitpos = @26@
pattern VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT ::
        VkAccessBitmask a

pattern $bVK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT :: forall (a :: FlagType). VkAccessBitmask a
$mVK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT :: forall {r} {a :: FlagType}.
VkAccessBitmask a -> (Void# -> r) -> (Void# -> r) -> r
VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT =
        VkAccessBitmask 67108864

-- | bitpos = @27@
pattern VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT ::
        VkAccessBitmask a

pattern $bVK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT :: forall (a :: FlagType). VkAccessBitmask a
$mVK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT :: forall {r} {a :: FlagType}.
VkAccessBitmask a -> (Void# -> r) -> (Void# -> r) -> r
VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT =
        VkAccessBitmask 134217728

-- | bitpos = @24@
pattern VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT ::
        VkPipelineStageBitmask a

pattern $bVK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT :: forall (a :: FlagType). VkPipelineStageBitmask a
$mVK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT :: forall {r} {a :: FlagType}.
VkPipelineStageBitmask a -> (Void# -> r) -> (Void# -> r) -> r
VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT =
        VkPipelineStageBitmask 16777216