{-# 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_pipeline_executable_properties
       (-- * Vulkan extension: @VK_KHR_pipeline_executable_properties@
        -- |
        --
        -- supported: @vulkan@
        --
        -- contact: @Jason Ekstrand @jekstrand@
        --
        -- author: @KHR@
        --
        -- type: @device@
        --
        -- Extension number: @270@
        --
        -- 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(..),
        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, VkPhysicalDeviceFeatures,
        VkPhysicalDeviceFeatures2,
        VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR,
        VkPipelineExecutableInfoKHR,
        VkPipelineExecutableInternalRepresentationKHR,
        VkPipelineExecutablePropertiesKHR, VkPipelineBindPoint(..),
        VkPipelineCacheHeaderVersion(..), VkPipelineCreateBitmask(..),
        VkPipelineCreationFeedbackBitmaskEXT(..),
        VkPipelineExecutableStatisticFormatKHR(..),
        VkPipelineStageBitmask(..), VkPipelineCacheCreateBitmask(..),
        VkPipelineCacheCreateFlagBits(), VkPipelineCacheCreateFlags(),
        VkPipelineCompilerControlBitmaskAMD(..),
        VkPipelineCompilerControlFlagBitsAMD(),
        VkPipelineCompilerControlFlagsAMD(), VkPipelineCreateFlagBits(),
        VkPipelineCreateFlags(), VkPipelineCreationFeedbackFlagBitsEXT(),
        VkPipelineCreationFeedbackFlagsEXT(),
        VkPipelineShaderStageCreateBitmask(..),
        VkPipelineShaderStageCreateFlagBits(),
        VkPipelineShaderStageCreateFlags(), VkPipelineStageFlagBits(),
        VkPipelineStageFlags(), VkPipelineExecutableStatisticKHR,
        VkPipelineExecutableStatisticValueKHR, VkPipelineInfoKHR,
        VkShaderFloatControlsIndependence(..), VkShaderInfoTypeAMD(..),
        VkShaderStageBitmask(..), VkShaderCorePropertiesBitmaskAMD(..),
        VkShaderCorePropertiesFlagBitsAMD(),
        VkShaderCorePropertiesFlagsAMD(),
        VkShaderFloatControlsIndependenceKHR(..),
        VkShaderModuleCreateBitmask(..), VkShaderModuleCreateFlagBits(),
        VkShaderModuleCreateFlags(), VkShaderStageFlagBits(),
        VkShaderStageFlags(), VkStructureType(..),
        -- > #include "vk_platform.h"
        VkGetPipelineExecutablePropertiesKHR,
        pattern VkGetPipelineExecutablePropertiesKHR,
        HS_vkGetPipelineExecutablePropertiesKHR,
        PFN_vkGetPipelineExecutablePropertiesKHR,
        VkGetPipelineExecutableStatisticsKHR,
        pattern VkGetPipelineExecutableStatisticsKHR,
        HS_vkGetPipelineExecutableStatisticsKHR,
        PFN_vkGetPipelineExecutableStatisticsKHR,
        VkGetPipelineExecutableInternalRepresentationsKHR,
        pattern VkGetPipelineExecutableInternalRepresentationsKHR,
        HS_vkGetPipelineExecutableInternalRepresentationsKHR,
        PFN_vkGetPipelineExecutableInternalRepresentationsKHR,
        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(),
        VkGraphicsPipelineCreateInfo, VkPipelineCacheCreateInfo,
        VkPipelineColorBlendAdvancedStateCreateInfoEXT,
        VkPipelineColorBlendAttachmentState,
        VkPipelineColorBlendStateCreateInfo,
        VkPipelineCompilerControlCreateInfoAMD,
        VkPipelineCoverageModulationStateCreateInfoNV,
        VkPipelineCoverageReductionStateCreateInfoNV,
        VkPipelineCoverageToColorStateCreateInfoNV,
        VkPipelineCreationFeedbackCreateInfoEXT,
        VkPipelineCreationFeedbackEXT,
        VkPipelineDepthStencilStateCreateInfo,
        VkPipelineDiscardRectangleStateCreateInfoEXT,
        VkPipelineDynamicStateCreateInfo,
        VkPipelineInputAssemblyStateCreateInfo, VkPipelineLayoutCreateInfo,
        VkPipelineMultisampleStateCreateInfo,
        VkPipelineRasterizationConservativeStateCreateInfoEXT,
        VkPipelineRasterizationDepthClipStateCreateInfoEXT,
        VkPipelineRasterizationLineStateCreateInfoEXT,
        VkPipelineRasterizationStateCreateInfo,
        VkPipelineRasterizationStateRasterizationOrderAMD,
        VkPipelineRasterizationStateStreamCreateInfoEXT,
        VkPipelineRepresentativeFragmentTestStateCreateInfoNV,
        VkPipelineSampleLocationsStateCreateInfoEXT,
        VkPipelineShaderStageCreateInfo,
        VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT,
        VkPipelineTessellationDomainOriginStateCreateInfo,
        VkPipelineTessellationDomainOriginStateCreateInfoKHR,
        VkPipelineTessellationStateCreateInfo,
        VkPipelineVertexInputDivisorStateCreateInfoEXT,
        VkPipelineVertexInputStateCreateInfo,
        VkPipelineViewportCoarseSampleOrderStateCreateInfoNV,
        VkPipelineViewportExclusiveScissorStateCreateInfoNV,
        VkPipelineViewportShadingRateImageStateCreateInfoNV,
        VkPipelineViewportStateCreateInfo,
        VkPipelineViewportSwizzleStateCreateInfoNV,
        VkPipelineViewportWScalingStateCreateInfoNV,
        VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_SPEC_VERSION,
        pattern VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_SPEC_VERSION,
        VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME,
        pattern VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME,
        pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR,
        pattern VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR,
        pattern VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR,
        pattern VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR,
        pattern VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR,
        pattern VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR,
        pattern VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR,
        pattern VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_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.Device
import Graphics.Vulkan.Types.Enum.Pipeline
import Graphics.Vulkan.Types.Enum.Result
import Graphics.Vulkan.Types.Enum.Shader
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,
                                                            VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR)
import Graphics.Vulkan.Types.Struct.PhysicalDeviceFeatures (VkPhysicalDeviceFeatures)
import Graphics.Vulkan.Types.Struct.Pipeline

pattern VkGetPipelineExecutablePropertiesKHR :: CString

pattern $bVkGetPipelineExecutablePropertiesKHR :: CString
$mVkGetPipelineExecutablePropertiesKHR :: forall {r}. CString -> (Void# -> r) -> (Void# -> r) -> r
VkGetPipelineExecutablePropertiesKHR <-
        (is_VkGetPipelineExecutablePropertiesKHR -> True)
  where
    VkGetPipelineExecutablePropertiesKHR
      = CString
_VkGetPipelineExecutablePropertiesKHR

{-# INLINE _VkGetPipelineExecutablePropertiesKHR #-}

_VkGetPipelineExecutablePropertiesKHR :: CString
_VkGetPipelineExecutablePropertiesKHR :: CString
_VkGetPipelineExecutablePropertiesKHR
  = Addr# -> CString
forall a. Addr# -> Ptr a
Ptr Addr#
"vkGetPipelineExecutablePropertiesKHR\NUL"#

{-# INLINE is_VkGetPipelineExecutablePropertiesKHR #-}

is_VkGetPipelineExecutablePropertiesKHR :: CString -> Bool
is_VkGetPipelineExecutablePropertiesKHR :: CString -> Bool
is_VkGetPipelineExecutablePropertiesKHR
  = (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
_VkGetPipelineExecutablePropertiesKHR

type VkGetPipelineExecutablePropertiesKHR =
     "vkGetPipelineExecutablePropertiesKHR"

-- | Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
--
--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
--
--   > VkResult vkGetPipelineExecutablePropertiesKHR
--   >     ( VkDevice                        device
--   >     , const VkPipelineInfoKHR*        pPipelineInfo
--   >     , uint32_t* pExecutableCount
--   >     , VkPipelineExecutablePropertiesKHR* pProperties
--   >     )
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkGetPipelineExecutablePropertiesKHR vkGetPipelineExecutablePropertiesKHR registry at www.khronos.org>
type HS_vkGetPipelineExecutablePropertiesKHR =
     VkDevice -- ^ device
              ->
       Ptr VkPipelineInfoKHR -- ^ pPipelineInfo
                             ->
         Ptr Word32 -- ^ pExecutableCount
                    -> Ptr VkPipelineExecutablePropertiesKHR -- ^ pProperties
                                                             -> IO VkResult

type PFN_vkGetPipelineExecutablePropertiesKHR =
     FunPtr HS_vkGetPipelineExecutablePropertiesKHR

foreign import ccall unsafe "dynamic"
               unwrapVkGetPipelineExecutablePropertiesKHRUnsafe ::
               PFN_vkGetPipelineExecutablePropertiesKHR ->
                 HS_vkGetPipelineExecutablePropertiesKHR

foreign import ccall safe "dynamic"
               unwrapVkGetPipelineExecutablePropertiesKHRSafe ::
               PFN_vkGetPipelineExecutablePropertiesKHR ->
                 HS_vkGetPipelineExecutablePropertiesKHR

instance VulkanProc "vkGetPipelineExecutablePropertiesKHR" where
    type VkProcType "vkGetPipelineExecutablePropertiesKHR" =
         HS_vkGetPipelineExecutablePropertiesKHR
    vkProcSymbol :: CString
vkProcSymbol = CString
_VkGetPipelineExecutablePropertiesKHR

    {-# INLINE vkProcSymbol #-}
    unwrapVkProcPtrUnsafe :: FunPtr (VkProcType "vkGetPipelineExecutablePropertiesKHR")
-> VkProcType "vkGetPipelineExecutablePropertiesKHR"
unwrapVkProcPtrUnsafe
      = FunPtr (VkProcType "vkGetPipelineExecutablePropertiesKHR")
-> VkProcType "vkGetPipelineExecutablePropertiesKHR"
PFN_vkGetPipelineExecutablePropertiesKHR
-> HS_vkGetPipelineExecutablePropertiesKHR
unwrapVkGetPipelineExecutablePropertiesKHRUnsafe

    {-# INLINE unwrapVkProcPtrUnsafe #-}
    unwrapVkProcPtrSafe :: FunPtr (VkProcType "vkGetPipelineExecutablePropertiesKHR")
-> VkProcType "vkGetPipelineExecutablePropertiesKHR"
unwrapVkProcPtrSafe
      = FunPtr (VkProcType "vkGetPipelineExecutablePropertiesKHR")
-> VkProcType "vkGetPipelineExecutablePropertiesKHR"
PFN_vkGetPipelineExecutablePropertiesKHR
-> HS_vkGetPipelineExecutablePropertiesKHR
unwrapVkGetPipelineExecutablePropertiesKHRSafe

    {-# INLINE unwrapVkProcPtrSafe #-}

pattern VkGetPipelineExecutableStatisticsKHR :: CString

pattern $bVkGetPipelineExecutableStatisticsKHR :: CString
$mVkGetPipelineExecutableStatisticsKHR :: forall {r}. CString -> (Void# -> r) -> (Void# -> r) -> r
VkGetPipelineExecutableStatisticsKHR <-
        (is_VkGetPipelineExecutableStatisticsKHR -> True)
  where
    VkGetPipelineExecutableStatisticsKHR
      = CString
_VkGetPipelineExecutableStatisticsKHR

{-# INLINE _VkGetPipelineExecutableStatisticsKHR #-}

_VkGetPipelineExecutableStatisticsKHR :: CString
_VkGetPipelineExecutableStatisticsKHR :: CString
_VkGetPipelineExecutableStatisticsKHR
  = Addr# -> CString
forall a. Addr# -> Ptr a
Ptr Addr#
"vkGetPipelineExecutableStatisticsKHR\NUL"#

{-# INLINE is_VkGetPipelineExecutableStatisticsKHR #-}

is_VkGetPipelineExecutableStatisticsKHR :: CString -> Bool
is_VkGetPipelineExecutableStatisticsKHR :: CString -> Bool
is_VkGetPipelineExecutableStatisticsKHR
  = (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
_VkGetPipelineExecutableStatisticsKHR

type VkGetPipelineExecutableStatisticsKHR =
     "vkGetPipelineExecutableStatisticsKHR"

-- | Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
--
--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
--
--   > VkResult vkGetPipelineExecutableStatisticsKHR
--   >     ( VkDevice                        device
--   >     , const VkPipelineExecutableInfoKHR*  pExecutableInfo
--   >     , uint32_t* pStatisticCount
--   >     , VkPipelineExecutableStatisticKHR* pStatistics
--   >     )
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkGetPipelineExecutableStatisticsKHR vkGetPipelineExecutableStatisticsKHR registry at www.khronos.org>
type HS_vkGetPipelineExecutableStatisticsKHR =
     VkDevice -- ^ device
              ->
       Ptr VkPipelineExecutableInfoKHR -- ^ pExecutableInfo
                                       ->
         Ptr Word32 -- ^ pStatisticCount
                    -> Ptr VkPipelineExecutableStatisticKHR -- ^ pStatistics
                                                            -> IO VkResult

type PFN_vkGetPipelineExecutableStatisticsKHR =
     FunPtr HS_vkGetPipelineExecutableStatisticsKHR

foreign import ccall unsafe "dynamic"
               unwrapVkGetPipelineExecutableStatisticsKHRUnsafe ::
               PFN_vkGetPipelineExecutableStatisticsKHR ->
                 HS_vkGetPipelineExecutableStatisticsKHR

foreign import ccall safe "dynamic"
               unwrapVkGetPipelineExecutableStatisticsKHRSafe ::
               PFN_vkGetPipelineExecutableStatisticsKHR ->
                 HS_vkGetPipelineExecutableStatisticsKHR

instance VulkanProc "vkGetPipelineExecutableStatisticsKHR" where
    type VkProcType "vkGetPipelineExecutableStatisticsKHR" =
         HS_vkGetPipelineExecutableStatisticsKHR
    vkProcSymbol :: CString
vkProcSymbol = CString
_VkGetPipelineExecutableStatisticsKHR

    {-# INLINE vkProcSymbol #-}
    unwrapVkProcPtrUnsafe :: FunPtr (VkProcType "vkGetPipelineExecutableStatisticsKHR")
-> VkProcType "vkGetPipelineExecutableStatisticsKHR"
unwrapVkProcPtrUnsafe
      = FunPtr (VkProcType "vkGetPipelineExecutableStatisticsKHR")
-> VkProcType "vkGetPipelineExecutableStatisticsKHR"
PFN_vkGetPipelineExecutableStatisticsKHR
-> HS_vkGetPipelineExecutableStatisticsKHR
unwrapVkGetPipelineExecutableStatisticsKHRUnsafe

    {-# INLINE unwrapVkProcPtrUnsafe #-}
    unwrapVkProcPtrSafe :: FunPtr (VkProcType "vkGetPipelineExecutableStatisticsKHR")
-> VkProcType "vkGetPipelineExecutableStatisticsKHR"
unwrapVkProcPtrSafe
      = FunPtr (VkProcType "vkGetPipelineExecutableStatisticsKHR")
-> VkProcType "vkGetPipelineExecutableStatisticsKHR"
PFN_vkGetPipelineExecutableStatisticsKHR
-> HS_vkGetPipelineExecutableStatisticsKHR
unwrapVkGetPipelineExecutableStatisticsKHRSafe

    {-# INLINE unwrapVkProcPtrSafe #-}

pattern VkGetPipelineExecutableInternalRepresentationsKHR ::
        CString

pattern $bVkGetPipelineExecutableInternalRepresentationsKHR :: CString
$mVkGetPipelineExecutableInternalRepresentationsKHR :: forall {r}. CString -> (Void# -> r) -> (Void# -> r) -> r
VkGetPipelineExecutableInternalRepresentationsKHR <-
        (is_VkGetPipelineExecutableInternalRepresentationsKHR -> True)
  where
    VkGetPipelineExecutableInternalRepresentationsKHR
      = CString
_VkGetPipelineExecutableInternalRepresentationsKHR

{-# INLINE _VkGetPipelineExecutableInternalRepresentationsKHR #-}

_VkGetPipelineExecutableInternalRepresentationsKHR :: CString
_VkGetPipelineExecutableInternalRepresentationsKHR :: CString
_VkGetPipelineExecutableInternalRepresentationsKHR
  = Addr# -> CString
forall a. Addr# -> Ptr a
Ptr Addr#
"vkGetPipelineExecutableInternalRepresentationsKHR\NUL"#

{-# INLINE is_VkGetPipelineExecutableInternalRepresentationsKHR #-}

is_VkGetPipelineExecutableInternalRepresentationsKHR ::
                                                     CString -> Bool
is_VkGetPipelineExecutableInternalRepresentationsKHR :: CString -> Bool
is_VkGetPipelineExecutableInternalRepresentationsKHR
  = (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
_VkGetPipelineExecutableInternalRepresentationsKHR

type VkGetPipelineExecutableInternalRepresentationsKHR =
     "vkGetPipelineExecutableInternalRepresentationsKHR"

-- | Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
--
--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
--
--   > VkResult vkGetPipelineExecutableInternalRepresentationsKHR
--   >     ( VkDevice                        device
--   >     , const VkPipelineExecutableInfoKHR*  pExecutableInfo
--   >     , uint32_t* pInternalRepresentationCount
--   >     , VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations
--   >     )
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkGetPipelineExecutableInternalRepresentationsKHR vkGetPipelineExecutableInternalRepresentationsKHR registry at www.khronos.org>
type HS_vkGetPipelineExecutableInternalRepresentationsKHR =
     VkDevice -- ^ device
              ->
       Ptr VkPipelineExecutableInfoKHR -- ^ pExecutableInfo
                                       ->
         Ptr Word32 -- ^ pInternalRepresentationCount
                    ->
           Ptr VkPipelineExecutableInternalRepresentationKHR -- ^ pInternalRepresentations
                                                             -> IO VkResult

type PFN_vkGetPipelineExecutableInternalRepresentationsKHR =
     FunPtr HS_vkGetPipelineExecutableInternalRepresentationsKHR

foreign import ccall unsafe "dynamic"
               unwrapVkGetPipelineExecutableInternalRepresentationsKHRUnsafe ::
               PFN_vkGetPipelineExecutableInternalRepresentationsKHR ->
                 HS_vkGetPipelineExecutableInternalRepresentationsKHR

foreign import ccall safe "dynamic"
               unwrapVkGetPipelineExecutableInternalRepresentationsKHRSafe ::
               PFN_vkGetPipelineExecutableInternalRepresentationsKHR ->
                 HS_vkGetPipelineExecutableInternalRepresentationsKHR

instance VulkanProc
           "vkGetPipelineExecutableInternalRepresentationsKHR"
         where
    type VkProcType "vkGetPipelineExecutableInternalRepresentationsKHR"
         = HS_vkGetPipelineExecutableInternalRepresentationsKHR
    vkProcSymbol :: CString
vkProcSymbol = CString
_VkGetPipelineExecutableInternalRepresentationsKHR

    {-# INLINE vkProcSymbol #-}
    unwrapVkProcPtrUnsafe :: FunPtr
  (VkProcType "vkGetPipelineExecutableInternalRepresentationsKHR")
-> VkProcType "vkGetPipelineExecutableInternalRepresentationsKHR"
unwrapVkProcPtrUnsafe
      = FunPtr
  (VkProcType "vkGetPipelineExecutableInternalRepresentationsKHR")
-> VkProcType "vkGetPipelineExecutableInternalRepresentationsKHR"
PFN_vkGetPipelineExecutableInternalRepresentationsKHR
-> HS_vkGetPipelineExecutableInternalRepresentationsKHR
unwrapVkGetPipelineExecutableInternalRepresentationsKHRUnsafe

    {-# INLINE unwrapVkProcPtrUnsafe #-}
    unwrapVkProcPtrSafe :: FunPtr
  (VkProcType "vkGetPipelineExecutableInternalRepresentationsKHR")
-> VkProcType "vkGetPipelineExecutableInternalRepresentationsKHR"
unwrapVkProcPtrSafe
      = FunPtr
  (VkProcType "vkGetPipelineExecutableInternalRepresentationsKHR")
-> VkProcType "vkGetPipelineExecutableInternalRepresentationsKHR"
PFN_vkGetPipelineExecutableInternalRepresentationsKHR
-> HS_vkGetPipelineExecutableInternalRepresentationsKHR
unwrapVkGetPipelineExecutableInternalRepresentationsKHRSafe

    {-# INLINE unwrapVkProcPtrSafe #-}

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

pattern $bVK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_SPEC_VERSION :: forall a. (Num a, Eq a) => a
$mVK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_SPEC_VERSION :: forall {r} {a}.
(Num a, Eq a) =>
a -> (Void# -> r) -> (Void# -> r) -> r
VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_SPEC_VERSION = 1

type VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_SPEC_VERSION = 1

pattern VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME ::
        CString

pattern $bVK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME :: CString
$mVK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME :: forall {r}. CString -> (Void# -> r) -> (Void# -> r) -> r
VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME <-
        (is_VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME -> True)
  where
    VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME
      = CString
_VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME

{-# INLINE _VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME
           #-}

_VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME :: CString
_VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME :: CString
_VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME
  = Addr# -> CString
forall a. Addr# -> Ptr a
Ptr Addr#
"VK_KHR_pipeline_executable_properties\NUL"#

{-# INLINE is_VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME
           #-}

is_VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME ::
                                                        CString -> Bool
is_VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME :: CString -> Bool
is_VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_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_KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME

type VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME =
     "VK_KHR_pipeline_executable_properties"

pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR
        :: VkStructureType

pattern $bVK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR :: VkStructureType
$mVK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR :: forall {r}. VkStructureType -> (Void# -> r) -> (Void# -> r) -> r
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR
        = VkStructureType 1000269000

pattern VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR :: VkStructureType

pattern $bVK_STRUCTURE_TYPE_PIPELINE_INFO_KHR :: VkStructureType
$mVK_STRUCTURE_TYPE_PIPELINE_INFO_KHR :: forall {r}. VkStructureType -> (Void# -> r) -> (Void# -> r) -> r
VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR =
        VkStructureType 1000269001

pattern VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR ::
        VkStructureType

pattern $bVK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR :: VkStructureType
$mVK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR :: forall {r}. VkStructureType -> (Void# -> r) -> (Void# -> r) -> r
VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR =
        VkStructureType 1000269002

pattern VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR ::
        VkStructureType

pattern $bVK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR :: VkStructureType
$mVK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR :: forall {r}. VkStructureType -> (Void# -> r) -> (Void# -> r) -> r
VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR =
        VkStructureType 1000269003

pattern VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR ::
        VkStructureType

pattern $bVK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR :: VkStructureType
$mVK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR :: forall {r}. VkStructureType -> (Void# -> r) -> (Void# -> r) -> r
VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR =
        VkStructureType 1000269004

pattern VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR
        :: VkStructureType

pattern $bVK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR :: VkStructureType
$mVK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR :: forall {r}. VkStructureType -> (Void# -> r) -> (Void# -> r) -> r
VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR
        = VkStructureType 1000269005

-- | bitpos = @6@
pattern VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR ::
        VkPipelineCreateBitmask a

pattern $bVK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR :: forall (a :: FlagType). VkPipelineCreateBitmask a
$mVK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR :: forall {r} {a :: FlagType}.
VkPipelineCreateBitmask a -> (Void# -> r) -> (Void# -> r) -> r
VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR =
        VkPipelineCreateBitmask 64

-- | bitpos = @7@
pattern VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR
        :: VkPipelineCreateBitmask a

pattern $bVK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR :: forall (a :: FlagType). VkPipelineCreateBitmask a
$mVK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR :: forall {r} {a :: FlagType}.
VkPipelineCreateBitmask a -> (Void# -> r) -> (Void# -> r) -> r
VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR
        = VkPipelineCreateBitmask 128