packages feed

vulkan-api-1.4.0.0: src-gen/Graphics/Vulkan/Ext/VK_KHR_performance_query.hs

{-# OPTIONS_GHC -fno-warn-orphans#-}
{-# 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_KHR_performance_query
       (-- * Vulkan extension: @VK_KHR_performance_query@
        -- |
        --
        -- supported: @vulkan@
        --
        -- contact: @Alon Or-bach @alonorbach@
        --
        -- author: @KHR@
        --
        -- type: @device@
        --
        -- Extension number: @117@
        --
        -- Required extensions: 'VK_KHR_get_physical_device_properties2'.
        --

        -- ** Required extensions: 'VK_KHR_get_physical_device_properties2'.
        module Graphics.Vulkan.Marshal,
        VkAcquireProfilingLockBitmaskKHR(..),
        VkAcquireProfilingLockFlagBitsKHR(),
        VkAcquireProfilingLockFlagsKHR(), VkAcquireProfilingLockInfoKHR,
        AHardwareBuffer(), ANativeWindow(), CAMetalLayer(), VkBool32(..),
        VkDeviceAddress(..), VkDeviceSize(..), VkFlags(..),
        VkSampleMask(..), 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, VkPerformanceConfigurationTypeINTEL(..),
        VkPerformanceCounterDescriptionBitmaskKHR(..),
        VkPerformanceCounterScopeKHR(..),
        VkPerformanceCounterStorageKHR(..),
        VkPerformanceCounterUnitKHR(..),
        VkPerformanceOverrideTypeINTEL(..),
        VkPerformanceParameterTypeINTEL(..),
        VkPerformanceValueTypeINTEL(..),
        pattern VK_QUERY_SCOPE_COMMAND_BUFFER_KHR,
        pattern VK_QUERY_SCOPE_COMMAND_KHR,
        pattern VK_QUERY_SCOPE_RENDER_PASS_KHR,
        VkPerformanceCounterDescriptionFlagBitsKHR(),
        VkPerformanceCounterDescriptionFlagsKHR(),
        VkPerformanceCounterDescriptionKHR, VkPerformanceCounterKHR,
        VkPerformanceCounterResultKHR, VkPerformanceQuerySubmitInfoKHR,
        VkPhysicalDeviceFeatures, VkPhysicalDeviceFeatures2,
        VkPhysicalDeviceLimits,
        VkPhysicalDevicePerformanceQueryFeaturesKHR,
        VkPhysicalDevicePerformanceQueryPropertiesKHR,
        VkPhysicalDeviceProperties, VkPhysicalDeviceProperties2,
        VkPhysicalDeviceSparseProperties, VkPhysicalDeviceType(..),
        VkPipelineBindPoint(..), VkPipelineCacheHeaderVersion(..),
        VkPipelineCreateBitmask(..),
        VkPipelineCreationFeedbackBitmaskEXT(..),
        VkPipelineExecutableStatisticFormatKHR(..),
        VkPipelineStageBitmask(..), VkPipelineCacheCreateBitmask(..),
        VkPipelineCacheCreateFlagBits(), VkPipelineCacheCreateFlags(),
        VkPipelineCompilerControlBitmaskAMD(..),
        VkPipelineCompilerControlFlagBitsAMD(),
        VkPipelineCompilerControlFlagsAMD(), VkPipelineCreateFlagBits(),
        VkPipelineCreateFlags(), VkPipelineCreationFeedbackFlagBitsEXT(),
        VkPipelineCreationFeedbackFlagsEXT(),
        VkPipelineShaderStageCreateBitmask(..),
        VkPipelineShaderStageCreateFlagBits(),
        VkPipelineShaderStageCreateFlags(), VkPipelineStageFlagBits(),
        VkPipelineStageFlags(), VkQueryControlBitmask(..),
        VkQueryPipelineStatisticBitmask(..),
        VkQueryPoolSamplingModeINTEL(..), VkQueryResultBitmask(..),
        VkQueryType(..), VkQueryControlFlagBits(), VkQueryControlFlags(),
        VkQueryPipelineStatisticFlagBits(),
        VkQueryPipelineStatisticFlags(), VkQueryPoolCreateFlagBits(..),
        VkQueryResultFlagBits(), VkQueryResultFlags(),
        VkQueryPoolCreateInfo, VkQueryPoolPerformanceCreateInfoKHR,
        VkSampleCountBitmask(..), VkSampleCountFlagBits(),
        VkSampleCountFlags(), VkStructureType(..), VkSubmitInfo,
        -- > #include "vk_platform.h"
        VkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR,
        pattern VkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR,
        HS_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR,
        PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR,
        VkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR,
        pattern VkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR,
        HS_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR,
        PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR,
        VkAcquireProfilingLockKHR, pattern VkAcquireProfilingLockKHR,
        HS_vkAcquireProfilingLockKHR, PFN_vkAcquireProfilingLockKHR,
        VkReleaseProfilingLockKHR, pattern VkReleaseProfilingLockKHR,
        HS_vkReleaseProfilingLockKHR, PFN_vkReleaseProfilingLockKHR,
        VkResult(..), 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(),
        VkAcquireNextImageInfoKHR,
        VkPerformanceConfigurationAcquireInfoINTEL,
        VkPerformanceMarkerInfoINTEL, VkPerformanceOverrideInfoINTEL,
        VkPerformanceStreamMarkerInfoINTEL, VkPerformanceValueDataINTEL,
        VkPerformanceValueINTEL, VkQueryPoolCreateInfoINTEL,
        VkQueryPoolPerformanceQueryCreateInfoINTEL,
        VK_KHR_PERFORMANCE_QUERY_SPEC_VERSION,
        pattern VK_KHR_PERFORMANCE_QUERY_SPEC_VERSION,
        VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME,
        pattern VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME,
        pattern VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR,
        pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR,
        pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR,
        pattern VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR,
        pattern VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR,
        pattern VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR,
        pattern VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR,
        pattern VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR)
       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.AcquireProfilingLockFlagsKHR
import Graphics.Vulkan.Types.Enum.Device
import Graphics.Vulkan.Types.Enum.Performance
import Graphics.Vulkan.Types.Enum.PhysicalDeviceType
import Graphics.Vulkan.Types.Enum.Pipeline
import Graphics.Vulkan.Types.Enum.Query
import Graphics.Vulkan.Types.Enum.Result
import Graphics.Vulkan.Types.Enum.SampleCountFlags
import Graphics.Vulkan.Types.Enum.StructureType
import Graphics.Vulkan.Types.Handles
import Graphics.Vulkan.Types.Struct.Acquire
import Graphics.Vulkan.Types.Struct.Device                     (VkDeviceCreateInfo,
                                                                VkDeviceQueueCreateInfo)
import Graphics.Vulkan.Types.Struct.Performance
import Graphics.Vulkan.Types.Struct.PhysicalDevice             (VkPhysicalDeviceFeatures2,
                                                                VkPhysicalDeviceLimits,
                                                                VkPhysicalDevicePerformanceQueryFeaturesKHR,
                                                                VkPhysicalDevicePerformanceQueryPropertiesKHR,
                                                                VkPhysicalDeviceProperties,
                                                                VkPhysicalDeviceProperties2,
                                                                VkPhysicalDeviceSparseProperties)
import Graphics.Vulkan.Types.Struct.PhysicalDeviceFeatures     (VkPhysicalDeviceFeatures)
import Graphics.Vulkan.Types.Struct.QueryPool
import Graphics.Vulkan.Types.Struct.SubmitInfo                 (VkSubmitInfo)

pattern VkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR
        :: CString

pattern VkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR
        <-
        (is_VkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR
           -> True)
  where
    VkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR
      = _VkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR

{-# INLINE _VkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR
           #-}

_VkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR ::
                                                                 CString
_VkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR
  = Ptr
      "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR\NUL"#

{-# INLINE is_VkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR
           #-}

is_VkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR ::
                                                                   CString -> Bool
is_VkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR
  = (EQ ==) .
      cmpCStrings
        _VkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR

type VkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR
     = "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR"

-- | Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
--
--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_INITIALIZATION_FAILED'.
--
--   > VkResult vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR
--   >     ( VkPhysicalDevice physicalDevice
--   >     , uint32_t queueFamilyIndex
--   >     , uint32_t* pCounterCount
--   >     , VkPerformanceCounterKHR* pCounters
--   >     , VkPerformanceCounterDescriptionKHR* pCounterDescriptions
--   >     )
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR registry at www.khronos.org>
type HS_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR
     =
     VkPhysicalDevice -- ^ physicalDevice
                      ->
       Word32 -- ^ queueFamilyIndex
              ->
         Ptr Word32 -- ^ pCounterCount
                    ->
           Ptr VkPerformanceCounterKHR -- ^ pCounters
                                       ->
             Ptr VkPerformanceCounterDescriptionKHR -- ^ pCounterDescriptions
                                                    -> IO VkResult

type PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR
     =
     FunPtr
       HS_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR

foreign import ccall unsafe "dynamic"
               unwrapVkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHRUnsafe
               ::
               PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR
                 ->
                 HS_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR

foreign import ccall safe "dynamic"
               unwrapVkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHRSafe
               ::
               PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR
                 ->
                 HS_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR

instance VulkanProc
           "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR"
         where
    type VkProcType
           "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR"
         =
         HS_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR
    vkProcSymbol
      = _VkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR

    {-# INLINE vkProcSymbol #-}
    unwrapVkProcPtrUnsafe
      = unwrapVkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHRUnsafe

    {-# INLINE unwrapVkProcPtrUnsafe #-}
    unwrapVkProcPtrSafe
      = unwrapVkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHRSafe

    {-# INLINE unwrapVkProcPtrSafe #-}

pattern VkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR ::
        CString

pattern VkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR <-
        (is_VkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR ->
           True)
  where
    VkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR
      = _VkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR

{-# INLINE _VkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR
           #-}

_VkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR :: CString
_VkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR
  = Ptr
      "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR\NUL"#

{-# INLINE is_VkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR
           #-}

is_VkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR ::
                                                           CString -> Bool
is_VkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR
  = (EQ ==) .
      cmpCStrings
        _VkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR

type VkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR =
     "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR"

-- | > void vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR
--   >     ( VkPhysicalDevice physicalDevice
--   >     , const VkQueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo
--   >     , uint32_t* pNumPasses
--   >     )
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR registry at www.khronos.org>
type HS_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR =
     VkPhysicalDevice -- ^ physicalDevice
                      ->
       Ptr VkQueryPoolPerformanceCreateInfoKHR -- ^ pPerformanceQueryCreateInfo
                                               -> Ptr Word32 -- ^ pNumPasses
                                                             -> IO ()

type PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR =
     FunPtr HS_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR

foreign import ccall unsafe "dynamic"
               unwrapVkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHRUnsafe
               ::
               PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR ->
                 HS_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR

foreign import ccall safe "dynamic"
               unwrapVkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHRSafe
               ::
               PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR ->
                 HS_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR

instance VulkanProc
           "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR"
         where
    type VkProcType
           "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR"
         = HS_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR
    vkProcSymbol
      = _VkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR

    {-# INLINE vkProcSymbol #-}
    unwrapVkProcPtrUnsafe
      = unwrapVkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHRUnsafe

    {-# INLINE unwrapVkProcPtrUnsafe #-}
    unwrapVkProcPtrSafe
      = unwrapVkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHRSafe

    {-# INLINE unwrapVkProcPtrSafe #-}

pattern VkAcquireProfilingLockKHR :: CString

pattern VkAcquireProfilingLockKHR <-
        (is_VkAcquireProfilingLockKHR -> True)
  where
    VkAcquireProfilingLockKHR = _VkAcquireProfilingLockKHR

{-# INLINE _VkAcquireProfilingLockKHR #-}

_VkAcquireProfilingLockKHR :: CString
_VkAcquireProfilingLockKHR = Ptr "vkAcquireProfilingLockKHR\NUL"#

{-# INLINE is_VkAcquireProfilingLockKHR #-}

is_VkAcquireProfilingLockKHR :: CString -> Bool
is_VkAcquireProfilingLockKHR
  = (EQ ==) . cmpCStrings _VkAcquireProfilingLockKHR

type VkAcquireProfilingLockKHR = "vkAcquireProfilingLockKHR"

-- | Success codes: 'VK_SUCCESS'.
--
--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_TIMEOUT'.
--
--   > VkResult vkAcquireProfilingLockKHR
--   >     ( VkDevice device
--   >     , const VkAcquireProfilingLockInfoKHR* pInfo
--   >     )
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkAcquireProfilingLockKHR vkAcquireProfilingLockKHR registry at www.khronos.org>
type HS_vkAcquireProfilingLockKHR =
     VkDevice -- ^ device
              -> Ptr VkAcquireProfilingLockInfoKHR -- ^ pInfo
                                                   -> IO VkResult

type PFN_vkAcquireProfilingLockKHR =
     FunPtr HS_vkAcquireProfilingLockKHR

foreign import ccall unsafe "dynamic"
               unwrapVkAcquireProfilingLockKHRUnsafe ::
               PFN_vkAcquireProfilingLockKHR -> HS_vkAcquireProfilingLockKHR

foreign import ccall safe "dynamic"
               unwrapVkAcquireProfilingLockKHRSafe ::
               PFN_vkAcquireProfilingLockKHR -> HS_vkAcquireProfilingLockKHR

instance VulkanProc "vkAcquireProfilingLockKHR" where
    type VkProcType "vkAcquireProfilingLockKHR" =
         HS_vkAcquireProfilingLockKHR
    vkProcSymbol = _VkAcquireProfilingLockKHR

    {-# INLINE vkProcSymbol #-}
    unwrapVkProcPtrUnsafe = unwrapVkAcquireProfilingLockKHRUnsafe

    {-# INLINE unwrapVkProcPtrUnsafe #-}
    unwrapVkProcPtrSafe = unwrapVkAcquireProfilingLockKHRSafe

    {-# INLINE unwrapVkProcPtrSafe #-}

pattern VkReleaseProfilingLockKHR :: CString

pattern VkReleaseProfilingLockKHR <-
        (is_VkReleaseProfilingLockKHR -> True)
  where
    VkReleaseProfilingLockKHR = _VkReleaseProfilingLockKHR

{-# INLINE _VkReleaseProfilingLockKHR #-}

_VkReleaseProfilingLockKHR :: CString
_VkReleaseProfilingLockKHR = Ptr "vkReleaseProfilingLockKHR\NUL"#

{-# INLINE is_VkReleaseProfilingLockKHR #-}

is_VkReleaseProfilingLockKHR :: CString -> Bool
is_VkReleaseProfilingLockKHR
  = (EQ ==) . cmpCStrings _VkReleaseProfilingLockKHR

type VkReleaseProfilingLockKHR = "vkReleaseProfilingLockKHR"

-- | > void vkReleaseProfilingLockKHR
--   >     ( VkDevice device
--   >     )
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkReleaseProfilingLockKHR vkReleaseProfilingLockKHR registry at www.khronos.org>
type HS_vkReleaseProfilingLockKHR = VkDevice -- ^ device
                                             -> IO ()

type PFN_vkReleaseProfilingLockKHR =
     FunPtr HS_vkReleaseProfilingLockKHR

foreign import ccall unsafe "dynamic"
               unwrapVkReleaseProfilingLockKHRUnsafe ::
               PFN_vkReleaseProfilingLockKHR -> HS_vkReleaseProfilingLockKHR

foreign import ccall safe "dynamic"
               unwrapVkReleaseProfilingLockKHRSafe ::
               PFN_vkReleaseProfilingLockKHR -> HS_vkReleaseProfilingLockKHR

instance VulkanProc "vkReleaseProfilingLockKHR" where
    type VkProcType "vkReleaseProfilingLockKHR" =
         HS_vkReleaseProfilingLockKHR
    vkProcSymbol = _VkReleaseProfilingLockKHR

    {-# INLINE vkProcSymbol #-}
    unwrapVkProcPtrUnsafe = unwrapVkReleaseProfilingLockKHRUnsafe

    {-# INLINE unwrapVkProcPtrUnsafe #-}
    unwrapVkProcPtrSafe = unwrapVkReleaseProfilingLockKHRSafe

    {-# INLINE unwrapVkProcPtrSafe #-}

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

pattern VK_KHR_PERFORMANCE_QUERY_SPEC_VERSION = 1

type VK_KHR_PERFORMANCE_QUERY_SPEC_VERSION = 1

pattern VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME :: CString

pattern VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME <-
        (is_VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME -> True)
  where
    VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME
      = _VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME

{-# INLINE _VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME #-}

_VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME :: CString
_VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME
  = Ptr "VK_KHR_performance_query\NUL"#

{-# INLINE is_VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME #-}

is_VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME :: CString -> Bool
is_VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME
  = (EQ ==) . cmpCStrings _VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME

type VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME =
     "VK_KHR_performance_query"

pattern VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR :: VkQueryType

pattern VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR =
        VkQueryType 1000116000

pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR
        :: VkStructureType

pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR
        = VkStructureType 1000116000

pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR
        :: VkStructureType

pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR
        = VkStructureType 1000116001

pattern VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR ::
        VkStructureType

pattern VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR =
        VkStructureType 1000116002

pattern VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR ::
        VkStructureType

pattern VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR =
        VkStructureType 1000116003

pattern VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR ::
        VkStructureType

pattern VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR =
        VkStructureType 1000116004

pattern VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR ::
        VkStructureType

pattern VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR =
        VkStructureType 1000116005

pattern VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR ::
        VkStructureType

pattern VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR =
        VkStructureType 1000116006