packages feed

vulkan-api-1.4.0.0: src-gen/Graphics/Vulkan/Ext/VK_KHR_deferred_host_operations.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_deferred_host_operations
       (-- * Vulkan extension: @VK_KHR_deferred_host_operations@
        -- |
        --
        -- supported: @vulkan@
        --
        -- contact: @Josh Barczak @jbarczak@
        --
        -- author: @KHR@
        --
        -- type: @device@
        --
        -- platform: @provisional@
        --
        -- Extension number: @269@
        module Graphics.Vulkan.Marshal,
        VkAccelerationStructureBuildGeometryInfoKHR,
        VkAccelerationStructureGeometryAabbsDataKHR,
        VkAccelerationStructureGeometryDataKHR,
        VkAccelerationStructureGeometryInstancesDataKHR,
        VkAccelerationStructureGeometryKHR,
        VkAccelerationStructureGeometryTrianglesDataKHR,
        VkAccelerationStructureBuildTypeKHR(..),
        VkAccelerationStructureMemoryRequirementsTypeKHR(..),
        VkAccelerationStructureTypeKHR(..),
        VkAccelerationStructureMemoryRequirementsTypeNV(..),
        VkAccelerationStructureTypeNV(..), AHardwareBuffer(),
        ANativeWindow(), CAMetalLayer(), VkBool32(..), VkDeviceAddress(..),
        VkDeviceSize(..), VkFlags(..), VkSampleMask(..),
        VkBuildAccelerationStructureBitmaskKHR(..),
        VkBuildAccelerationStructureFlagBitsKHR(),
        VkBuildAccelerationStructureFlagBitsNV(..),
        VkBuildAccelerationStructureFlagsKHR(),
        VkCopyAccelerationStructureInfoKHR,
        VkCopyAccelerationStructureModeKHR(..),
        VkCopyAccelerationStructureModeNV(..),
        VkCopyAccelerationStructureToMemoryInfoKHR,
        VkCopyMemoryToAccelerationStructureInfoKHR,
        VkDeferredOperationInfoKHR, VkDeviceOrHostAddressConstKHR,
        VkDeviceOrHostAddressKHR, VkFormat(..), VkFormatFeatureBitmask(..),
        VkFormatFeatureFlagBits(), VkFormatFeatureFlags(),
        VkGeometryInstanceBitmaskKHR(..), VkGeometryBitmaskKHR(..),
        VkGeometryTypeKHR(..), VkGeometryFlagBitsKHR(),
        VkGeometryFlagBitsNV(..), VkGeometryFlagsKHR(),
        VkGeometryInstanceFlagBitsKHR(), VkGeometryInstanceFlagBitsNV(..),
        VkGeometryInstanceFlagsKHR(), VkGeometryTypeNV(..),
        VkIndexType(..), VkPipelineBindPoint(..),
        VkPipelineCacheHeaderVersion(..), VkPipelineCreateBitmask(..),
        VkPipelineCreationFeedbackBitmaskEXT(..),
        VkPipelineExecutableStatisticFormatKHR(..),
        VkPipelineStageBitmask(..), VkPipelineCacheCreateBitmask(..),
        VkPipelineCacheCreateFlagBits(), VkPipelineCacheCreateFlags(),
        VkPipelineCompilerControlBitmaskAMD(..),
        VkPipelineCompilerControlFlagBitsAMD(),
        VkPipelineCompilerControlFlagsAMD(), VkPipelineCreateFlagBits(),
        VkPipelineCreateFlags(), VkPipelineCreationFeedbackFlagBitsEXT(),
        VkPipelineCreationFeedbackFlagsEXT(),
        VkPipelineShaderStageCreateBitmask(..),
        VkPipelineShaderStageCreateFlagBits(),
        VkPipelineShaderStageCreateFlags(), VkPipelineStageFlagBits(),
        VkPipelineStageFlags(), VkPipelineLibraryCreateInfoKHR,
        VkPipelineShaderStageCreateInfo, VkRayTracingPipelineCreateInfoKHR,
        VkRayTracingPipelineInterfaceCreateInfoKHR,
        VkRayTracingShaderGroupCreateInfoKHR,
        VkRayTracingShaderGroupTypeKHR(..),
        VkRayTracingShaderGroupTypeNV(..),
        VkShaderFloatControlsIndependence(..), VkShaderInfoTypeAMD(..),
        VkShaderStageBitmask(..), VkShaderCorePropertiesBitmaskAMD(..),
        VkShaderCorePropertiesFlagBitsAMD(),
        VkShaderCorePropertiesFlagsAMD(),
        VkShaderFloatControlsIndependenceKHR(..),
        VkShaderModuleCreateBitmask(..), VkShaderModuleCreateFlagBits(),
        VkShaderModuleCreateFlags(), VkShaderStageFlagBits(),
        VkShaderStageFlags(), VkSpecializationInfo,
        VkSpecializationMapEntry, VkStructureType(..),
        -- > #include "vk_platform.h"
        VkCreateDeferredOperationKHR, pattern VkCreateDeferredOperationKHR,
        HS_vkCreateDeferredOperationKHR, PFN_vkCreateDeferredOperationKHR,
        VkDestroyDeferredOperationKHR,
        pattern VkDestroyDeferredOperationKHR,
        HS_vkDestroyDeferredOperationKHR,
        PFN_vkDestroyDeferredOperationKHR,
        VkGetDeferredOperationMaxConcurrencyKHR,
        pattern VkGetDeferredOperationMaxConcurrencyKHR,
        HS_vkGetDeferredOperationMaxConcurrencyKHR,
        PFN_vkGetDeferredOperationMaxConcurrencyKHR,
        VkGetDeferredOperationResultKHR,
        pattern VkGetDeferredOperationResultKHR,
        HS_vkGetDeferredOperationResultKHR,
        PFN_vkGetDeferredOperationResultKHR, VkDeferredOperationJoinKHR,
        pattern VkDeferredOperationJoinKHR, HS_vkDeferredOperationJoinKHR,
        PFN_vkDeferredOperationJoinKHR, VkInternalAllocationType(..),
        VkResult(..), VkSystemAllocationScope(..), newVkAllocationFunction,
        newVkDebugReportCallbackEXT, newVkDebugUtilsMessengerCallbackEXT,
        newVkFreeFunction, newVkInternalAllocationNotification,
        newVkInternalFreeNotification, newVkReallocationFunction,
        newVkVoidFunction, unwrapVkAllocationFunction,
        unwrapVkDebugReportCallbackEXT,
        unwrapVkDebugUtilsMessengerCallbackEXT, unwrapVkFreeFunction,
        unwrapVkInternalAllocationNotification,
        unwrapVkInternalFreeNotification, unwrapVkReallocationFunction,
        unwrapVkVoidFunction, HS_vkAllocationFunction,
        HS_vkDebugReportCallbackEXT, HS_vkDebugUtilsMessengerCallbackEXT,
        HS_vkFreeFunction, HS_vkInternalAllocationNotification,
        HS_vkInternalFreeNotification, HS_vkReallocationFunction,
        HS_vkVoidFunction, PFN_vkAllocationFunction,
        PFN_vkDebugReportCallbackEXT, PFN_vkDebugUtilsMessengerCallbackEXT,
        PFN_vkFreeFunction, PFN_vkInternalAllocationNotification,
        PFN_vkInternalFreeNotification, PFN_vkReallocationFunction,
        PFN_vkVoidFunction, 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(),
        VkAllocationCallbacks,
        VK_KHR_DEFERRED_HOST_OPERATIONS_SPEC_VERSION,
        pattern VK_KHR_DEFERRED_HOST_OPERATIONS_SPEC_VERSION,
        VK_KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME,
        pattern VK_KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME,
        pattern VK_STRUCTURE_TYPE_DEFERRED_OPERATION_INFO_KHR,
        pattern VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR,
        pattern VK_THREAD_IDLE_KHR, pattern VK_THREAD_DONE_KHR,
        pattern VK_OPERATION_DEFERRED_KHR,
        pattern VK_OPERATION_NOT_DEFERRED_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.Enum.AccelerationStructure
import Graphics.Vulkan.Types.Enum.BuildAccelerationStructureFlag
import Graphics.Vulkan.Types.Enum.CopyAccelerationStructureMode
import Graphics.Vulkan.Types.Enum.Format
import Graphics.Vulkan.Types.Enum.Geometry
import Graphics.Vulkan.Types.Enum.IndexType
import Graphics.Vulkan.Types.Enum.InternalAllocationType
import Graphics.Vulkan.Types.Enum.ObjectType                     (VkObjectType (..))
import Graphics.Vulkan.Types.Enum.Pipeline
import Graphics.Vulkan.Types.Enum.RayTracingShaderGroupType
import Graphics.Vulkan.Types.Enum.Result
import Graphics.Vulkan.Types.Enum.Shader
import Graphics.Vulkan.Types.Enum.StructureType
import Graphics.Vulkan.Types.Enum.SystemAllocationScope
import Graphics.Vulkan.Types.Funcpointers
import Graphics.Vulkan.Types.Handles
import Graphics.Vulkan.Types.Struct.AllocationCallbacks
import Graphics.Vulkan.Types.Struct.EnableBetaExtensions         (VkAccelerationStructureBuildGeometryInfoKHR,
                                                                  VkAccelerationStructureGeometryAabbsDataKHR,
                                                                  VkAccelerationStructureGeometryDataKHR,
                                                                  VkAccelerationStructureGeometryInstancesDataKHR,
                                                                  VkAccelerationStructureGeometryKHR,
                                                                  VkAccelerationStructureGeometryTrianglesDataKHR,
                                                                  VkCopyAccelerationStructureInfoKHR,
                                                                  VkCopyAccelerationStructureToMemoryInfoKHR,
                                                                  VkCopyMemoryToAccelerationStructureInfoKHR,
                                                                  VkDeferredOperationInfoKHR,
                                                                  VkDeviceOrHostAddressConstKHR,
                                                                  VkDeviceOrHostAddressKHR,
                                                                  VkPipelineLibraryCreateInfoKHR,
                                                                  VkRayTracingPipelineCreateInfoKHR,
                                                                  VkRayTracingPipelineInterfaceCreateInfoKHR,
                                                                  VkRayTracingShaderGroupCreateInfoKHR)
import Graphics.Vulkan.Types.Struct.Pipeline                     (VkPipelineShaderStageCreateInfo)
import Graphics.Vulkan.Types.Struct.Specialization               (VkSpecializationInfo,
                                                                  VkSpecializationMapEntry)

pattern VkCreateDeferredOperationKHR :: CString

pattern VkCreateDeferredOperationKHR <-
        (is_VkCreateDeferredOperationKHR -> True)
  where
    VkCreateDeferredOperationKHR = _VkCreateDeferredOperationKHR

{-# INLINE _VkCreateDeferredOperationKHR #-}

_VkCreateDeferredOperationKHR :: CString
_VkCreateDeferredOperationKHR
  = Ptr "vkCreateDeferredOperationKHR\NUL"#

{-# INLINE is_VkCreateDeferredOperationKHR #-}

is_VkCreateDeferredOperationKHR :: CString -> Bool
is_VkCreateDeferredOperationKHR
  = (EQ ==) . cmpCStrings _VkCreateDeferredOperationKHR

type VkCreateDeferredOperationKHR = "vkCreateDeferredOperationKHR"

-- | Success codes: 'VK_SUCCESS'.
--
--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY'.
--
--   > VkResult vkCreateDeferredOperationKHR
--   >     ( VkDevice device
--   >     , const VkAllocationCallbacks* pAllocator
--   >     , VkDeferredOperationKHR* pDeferredOperation
--   >     )
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCreateDeferredOperationKHR vkCreateDeferredOperationKHR registry at www.khronos.org>
type HS_vkCreateDeferredOperationKHR =
     VkDevice -- ^ device
              ->
       Ptr VkAllocationCallbacks -- ^ pAllocator
                                 ->
         Ptr VkDeferredOperationKHR -- ^ pDeferredOperation
                                    -> IO VkResult

type PFN_vkCreateDeferredOperationKHR =
     FunPtr HS_vkCreateDeferredOperationKHR

foreign import ccall unsafe "dynamic"
               unwrapVkCreateDeferredOperationKHRUnsafe ::
               PFN_vkCreateDeferredOperationKHR -> HS_vkCreateDeferredOperationKHR

foreign import ccall safe "dynamic"
               unwrapVkCreateDeferredOperationKHRSafe ::
               PFN_vkCreateDeferredOperationKHR -> HS_vkCreateDeferredOperationKHR

instance VulkanProc "vkCreateDeferredOperationKHR" where
    type VkProcType "vkCreateDeferredOperationKHR" =
         HS_vkCreateDeferredOperationKHR
    vkProcSymbol = _VkCreateDeferredOperationKHR

    {-# INLINE vkProcSymbol #-}
    unwrapVkProcPtrUnsafe = unwrapVkCreateDeferredOperationKHRUnsafe

    {-# INLINE unwrapVkProcPtrUnsafe #-}
    unwrapVkProcPtrSafe = unwrapVkCreateDeferredOperationKHRSafe

    {-# INLINE unwrapVkProcPtrSafe #-}

pattern VkDestroyDeferredOperationKHR :: CString

pattern VkDestroyDeferredOperationKHR <-
        (is_VkDestroyDeferredOperationKHR -> True)
  where
    VkDestroyDeferredOperationKHR = _VkDestroyDeferredOperationKHR

{-# INLINE _VkDestroyDeferredOperationKHR #-}

_VkDestroyDeferredOperationKHR :: CString
_VkDestroyDeferredOperationKHR
  = Ptr "vkDestroyDeferredOperationKHR\NUL"#

{-# INLINE is_VkDestroyDeferredOperationKHR #-}

is_VkDestroyDeferredOperationKHR :: CString -> Bool
is_VkDestroyDeferredOperationKHR
  = (EQ ==) . cmpCStrings _VkDestroyDeferredOperationKHR

type VkDestroyDeferredOperationKHR =
     "vkDestroyDeferredOperationKHR"

-- | > void vkDestroyDeferredOperationKHR
--   >     ( VkDevice device
--   >     , VkDeferredOperationKHR operation
--   >     , const VkAllocationCallbacks* pAllocator
--   >     )
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkDestroyDeferredOperationKHR vkDestroyDeferredOperationKHR registry at www.khronos.org>
type HS_vkDestroyDeferredOperationKHR =
     VkDevice -- ^ device
              ->
       VkDeferredOperationKHR -- ^ operation
                              -> Ptr VkAllocationCallbacks -- ^ pAllocator
                                                           -> IO ()

type PFN_vkDestroyDeferredOperationKHR =
     FunPtr HS_vkDestroyDeferredOperationKHR

foreign import ccall unsafe "dynamic"
               unwrapVkDestroyDeferredOperationKHRUnsafe ::
               PFN_vkDestroyDeferredOperationKHR ->
                 HS_vkDestroyDeferredOperationKHR

foreign import ccall safe "dynamic"
               unwrapVkDestroyDeferredOperationKHRSafe ::
               PFN_vkDestroyDeferredOperationKHR ->
                 HS_vkDestroyDeferredOperationKHR

instance VulkanProc "vkDestroyDeferredOperationKHR" where
    type VkProcType "vkDestroyDeferredOperationKHR" =
         HS_vkDestroyDeferredOperationKHR
    vkProcSymbol = _VkDestroyDeferredOperationKHR

    {-# INLINE vkProcSymbol #-}
    unwrapVkProcPtrUnsafe = unwrapVkDestroyDeferredOperationKHRUnsafe

    {-# INLINE unwrapVkProcPtrUnsafe #-}
    unwrapVkProcPtrSafe = unwrapVkDestroyDeferredOperationKHRSafe

    {-# INLINE unwrapVkProcPtrSafe #-}

pattern VkGetDeferredOperationMaxConcurrencyKHR :: CString

pattern VkGetDeferredOperationMaxConcurrencyKHR <-
        (is_VkGetDeferredOperationMaxConcurrencyKHR -> True)
  where
    VkGetDeferredOperationMaxConcurrencyKHR
      = _VkGetDeferredOperationMaxConcurrencyKHR

{-# INLINE _VkGetDeferredOperationMaxConcurrencyKHR #-}

_VkGetDeferredOperationMaxConcurrencyKHR :: CString
_VkGetDeferredOperationMaxConcurrencyKHR
  = Ptr "vkGetDeferredOperationMaxConcurrencyKHR\NUL"#

{-# INLINE is_VkGetDeferredOperationMaxConcurrencyKHR #-}

is_VkGetDeferredOperationMaxConcurrencyKHR :: CString -> Bool
is_VkGetDeferredOperationMaxConcurrencyKHR
  = (EQ ==) . cmpCStrings _VkGetDeferredOperationMaxConcurrencyKHR

type VkGetDeferredOperationMaxConcurrencyKHR =
     "vkGetDeferredOperationMaxConcurrencyKHR"

-- | > uint32_t vkGetDeferredOperationMaxConcurrencyKHR
--   >     ( VkDevice device
--   >     , VkDeferredOperationKHR operation
--   >     )
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkGetDeferredOperationMaxConcurrencyKHR vkGetDeferredOperationMaxConcurrencyKHR registry at www.khronos.org>
type HS_vkGetDeferredOperationMaxConcurrencyKHR =
     VkDevice -- ^ device
              -> VkDeferredOperationKHR -- ^ operation
                                        -> IO Word32

type PFN_vkGetDeferredOperationMaxConcurrencyKHR =
     FunPtr HS_vkGetDeferredOperationMaxConcurrencyKHR

foreign import ccall unsafe "dynamic"
               unwrapVkGetDeferredOperationMaxConcurrencyKHRUnsafe ::
               PFN_vkGetDeferredOperationMaxConcurrencyKHR ->
                 HS_vkGetDeferredOperationMaxConcurrencyKHR

foreign import ccall safe "dynamic"
               unwrapVkGetDeferredOperationMaxConcurrencyKHRSafe ::
               PFN_vkGetDeferredOperationMaxConcurrencyKHR ->
                 HS_vkGetDeferredOperationMaxConcurrencyKHR

instance VulkanProc "vkGetDeferredOperationMaxConcurrencyKHR" where
    type VkProcType "vkGetDeferredOperationMaxConcurrencyKHR" =
         HS_vkGetDeferredOperationMaxConcurrencyKHR
    vkProcSymbol = _VkGetDeferredOperationMaxConcurrencyKHR

    {-# INLINE vkProcSymbol #-}
    unwrapVkProcPtrUnsafe
      = unwrapVkGetDeferredOperationMaxConcurrencyKHRUnsafe

    {-# INLINE unwrapVkProcPtrUnsafe #-}
    unwrapVkProcPtrSafe
      = unwrapVkGetDeferredOperationMaxConcurrencyKHRSafe

    {-# INLINE unwrapVkProcPtrSafe #-}

pattern VkGetDeferredOperationResultKHR :: CString

pattern VkGetDeferredOperationResultKHR <-
        (is_VkGetDeferredOperationResultKHR -> True)
  where
    VkGetDeferredOperationResultKHR = _VkGetDeferredOperationResultKHR

{-# INLINE _VkGetDeferredOperationResultKHR #-}

_VkGetDeferredOperationResultKHR :: CString
_VkGetDeferredOperationResultKHR
  = Ptr "vkGetDeferredOperationResultKHR\NUL"#

{-# INLINE is_VkGetDeferredOperationResultKHR #-}

is_VkGetDeferredOperationResultKHR :: CString -> Bool
is_VkGetDeferredOperationResultKHR
  = (EQ ==) . cmpCStrings _VkGetDeferredOperationResultKHR

type VkGetDeferredOperationResultKHR =
     "vkGetDeferredOperationResultKHR"

-- | Success codes: 'VK_SUCCESS', 'VK_NOT_READY'.
--
--   > VkResult vkGetDeferredOperationResultKHR
--   >     ( VkDevice device
--   >     , VkDeferredOperationKHR operation
--   >     )
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkGetDeferredOperationResultKHR vkGetDeferredOperationResultKHR registry at www.khronos.org>
type HS_vkGetDeferredOperationResultKHR =
     VkDevice -- ^ device
              -> VkDeferredOperationKHR -- ^ operation
                                        -> IO VkResult

type PFN_vkGetDeferredOperationResultKHR =
     FunPtr HS_vkGetDeferredOperationResultKHR

foreign import ccall unsafe "dynamic"
               unwrapVkGetDeferredOperationResultKHRUnsafe ::
               PFN_vkGetDeferredOperationResultKHR ->
                 HS_vkGetDeferredOperationResultKHR

foreign import ccall safe "dynamic"
               unwrapVkGetDeferredOperationResultKHRSafe ::
               PFN_vkGetDeferredOperationResultKHR ->
                 HS_vkGetDeferredOperationResultKHR

instance VulkanProc "vkGetDeferredOperationResultKHR" where
    type VkProcType "vkGetDeferredOperationResultKHR" =
         HS_vkGetDeferredOperationResultKHR
    vkProcSymbol = _VkGetDeferredOperationResultKHR

    {-# INLINE vkProcSymbol #-}
    unwrapVkProcPtrUnsafe = unwrapVkGetDeferredOperationResultKHRUnsafe

    {-# INLINE unwrapVkProcPtrUnsafe #-}
    unwrapVkProcPtrSafe = unwrapVkGetDeferredOperationResultKHRSafe

    {-# INLINE unwrapVkProcPtrSafe #-}

pattern VkDeferredOperationJoinKHR :: CString

pattern VkDeferredOperationJoinKHR <-
        (is_VkDeferredOperationJoinKHR -> True)
  where
    VkDeferredOperationJoinKHR = _VkDeferredOperationJoinKHR

{-# INLINE _VkDeferredOperationJoinKHR #-}

_VkDeferredOperationJoinKHR :: CString
_VkDeferredOperationJoinKHR = Ptr "vkDeferredOperationJoinKHR\NUL"#

{-# INLINE is_VkDeferredOperationJoinKHR #-}

is_VkDeferredOperationJoinKHR :: CString -> Bool
is_VkDeferredOperationJoinKHR
  = (EQ ==) . cmpCStrings _VkDeferredOperationJoinKHR

type VkDeferredOperationJoinKHR = "vkDeferredOperationJoinKHR"

-- | Success codes: 'VK_SUCCESS', 'VK_THREAD_DONE_KHR', 'VK_THREAD_IDLE_KHR'.
--
--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
--
--   > VkResult vkDeferredOperationJoinKHR
--   >     ( VkDevice device
--   >     , VkDeferredOperationKHR operation
--   >     )
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkDeferredOperationJoinKHR vkDeferredOperationJoinKHR registry at www.khronos.org>
type HS_vkDeferredOperationJoinKHR =
     VkDevice -- ^ device
              -> VkDeferredOperationKHR -- ^ operation
                                        -> IO VkResult

type PFN_vkDeferredOperationJoinKHR =
     FunPtr HS_vkDeferredOperationJoinKHR

foreign import ccall unsafe "dynamic"
               unwrapVkDeferredOperationJoinKHRUnsafe ::
               PFN_vkDeferredOperationJoinKHR -> HS_vkDeferredOperationJoinKHR

foreign import ccall safe "dynamic"
               unwrapVkDeferredOperationJoinKHRSafe ::
               PFN_vkDeferredOperationJoinKHR -> HS_vkDeferredOperationJoinKHR

instance VulkanProc "vkDeferredOperationJoinKHR" where
    type VkProcType "vkDeferredOperationJoinKHR" =
         HS_vkDeferredOperationJoinKHR
    vkProcSymbol = _VkDeferredOperationJoinKHR

    {-# INLINE vkProcSymbol #-}
    unwrapVkProcPtrUnsafe = unwrapVkDeferredOperationJoinKHRUnsafe

    {-# INLINE unwrapVkProcPtrUnsafe #-}
    unwrapVkProcPtrSafe = unwrapVkDeferredOperationJoinKHRSafe

    {-# INLINE unwrapVkProcPtrSafe #-}

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

pattern VK_KHR_DEFERRED_HOST_OPERATIONS_SPEC_VERSION = 3

type VK_KHR_DEFERRED_HOST_OPERATIONS_SPEC_VERSION = 3

pattern VK_KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME :: CString

pattern VK_KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME <-
        (is_VK_KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME -> True)
  where
    VK_KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME
      = _VK_KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME

{-# INLINE _VK_KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME #-}

_VK_KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME :: CString
_VK_KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME
  = Ptr "VK_KHR_deferred_host_operations\NUL"#

{-# INLINE is_VK_KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME #-}

is_VK_KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME ::
                                                  CString -> Bool
is_VK_KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME
  = (EQ ==) .
      cmpCStrings _VK_KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME

type VK_KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME =
     "VK_KHR_deferred_host_operations"

pattern VK_STRUCTURE_TYPE_DEFERRED_OPERATION_INFO_KHR ::
        VkStructureType

pattern VK_STRUCTURE_TYPE_DEFERRED_OPERATION_INFO_KHR =
        VkStructureType 1000268000

pattern VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR :: VkObjectType

pattern VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR =
        VkObjectType 1000268000

pattern VK_THREAD_IDLE_KHR :: VkResult

pattern VK_THREAD_IDLE_KHR = VkResult 1000268000

pattern VK_THREAD_DONE_KHR :: VkResult

pattern VK_THREAD_DONE_KHR = VkResult 1000268001

pattern VK_OPERATION_DEFERRED_KHR :: VkResult

pattern VK_OPERATION_DEFERRED_KHR = VkResult 1000268002

pattern VK_OPERATION_NOT_DEFERRED_KHR :: VkResult

pattern VK_OPERATION_NOT_DEFERRED_KHR = VkResult 1000268003