{-# 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_ray_tracing
       (-- * Vulkan extension: @VK_KHR_ray_tracing@
        -- |
        --
        -- supported: @vulkan@
        --
        -- contact: @Daniel Koch @dgkoch@
        --
        -- author: @KHR@
        --
        -- type: @device@
        --
        -- platform: @provisional@
        --
        -- Extension number: @151@
        --
        -- Required extensions: 'VK_KHR_get_physical_device_properties2', 'VK_KHR_get_memory_requirements2', 'VK_EXT_descriptor_indexing', 'VK_KHR_buffer_device_address', 'VK_KHR_deferred_host_operations', 'VK_KHR_pipeline_library'.
        --

        -- ** Required extensions: 'VK_KHR_get_physical_device_properties2', 'VK_KHR_get_memory_requirements2', 'VK_EXT_descriptor_indexing', 'VK_KHR_buffer_device_address', 'VK_KHR_deferred_host_operations', 'VK_KHR_pipeline_library'.
        module Graphics.Vulkan.Marshal, VkAabbPositionsKHR,
        VkAccelerationStructureBuildGeometryInfoKHR,
        VkAccelerationStructureBuildOffsetInfoKHR,
        VkAccelerationStructureBuildTypeKHR(..),
        VkAccelerationStructureMemoryRequirementsTypeKHR(..),
        VkAccelerationStructureTypeKHR(..),
        VkAccelerationStructureMemoryRequirementsTypeNV(..),
        VkAccelerationStructureTypeNV(..),
        VkAccelerationStructureCreateGeometryTypeInfoKHR,
        VkAccelerationStructureCreateInfoKHR,
        VkAccelerationStructureDeviceAddressInfoKHR,
        VkAccelerationStructureGeometryAabbsDataKHR,
        VkAccelerationStructureGeometryDataKHR,
        VkAccelerationStructureGeometryInstancesDataKHR,
        VkAccelerationStructureGeometryKHR,
        VkAccelerationStructureGeometryTrianglesDataKHR,
        VkAccelerationStructureInstanceKHR,
        VkAccelerationStructureMemoryRequirementsInfoKHR,
        VkAccelerationStructureVersionKHR,
        VkBindAccelerationStructureMemoryInfoKHR, AHardwareBuffer(),
        ANativeWindow(), CAMetalLayer(), VkBool32(..), VkDeviceAddress(..),
        VkDeviceSize(..), VkFlags(..), VkSampleMask(..),
        VkBuildAccelerationStructureBitmaskKHR(..),
        VkBuildAccelerationStructureFlagBitsKHR(),
        VkBuildAccelerationStructureFlagBitsNV(..),
        VkBuildAccelerationStructureFlagsKHR(),
        VkCopyAccelerationStructureInfoKHR,
        VkCopyAccelerationStructureModeKHR(..),
        VkCopyAccelerationStructureModeNV(..),
        VkCopyAccelerationStructureToMemoryInfoKHR,
        VkCopyMemoryToAccelerationStructureInfoKHR, VkDescriptorBufferInfo,
        VkDescriptorImageInfo, VkDescriptorBindingBitmask(..),
        VkDescriptorPoolCreateBitmask(..), VkDescriptorType(..),
        VkDescriptorUpdateTemplateType(..), VkDescriptorBindingFlagBits(),
        VkDescriptorBindingFlagBitsEXT(..), VkDescriptorBindingFlags(),
        VkDescriptorPoolCreateFlagBits(), VkDescriptorPoolCreateFlags(),
        VkDescriptorSetLayoutCreateBitmask(..),
        VkDescriptorSetLayoutCreateFlagBits(),
        VkDescriptorSetLayoutCreateFlags(),
        VkDescriptorUpdateTemplateTypeKHR(..),
        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,
        VkDeviceOrHostAddressConstKHR, VkDeviceOrHostAddressKHR,
        VkDeviceDiagnosticsConfigBitmaskNV(..), VkDeviceEventTypeEXT(..),
        VkDeviceGroupPresentModeBitmaskKHR(..), VkDeviceCreateFlagBits(..),
        VkDeviceDiagnosticsConfigFlagBitsNV(),
        VkDeviceDiagnosticsConfigFlagsNV(),
        VkDeviceGroupPresentModeFlagBitsKHR(),
        VkDeviceGroupPresentModeFlagsKHR(), VkDeviceQueueCreateBitmask(..),
        VkDeviceQueueCreateFlagBits(), VkDeviceQueueCreateFlags(),
        VkDeviceQueueCreateInfo, VkFormat(..), VkFormatFeatureBitmask(..),
        VkFormatFeatureFlagBits(), VkFormatFeatureFlags(),
        VkGeometryInstanceBitmaskKHR(..), VkGeometryBitmaskKHR(..),
        VkGeometryTypeKHR(..), VkGeometryFlagBitsKHR(),
        VkGeometryFlagBitsNV(..), VkGeometryFlagsKHR(),
        VkGeometryInstanceFlagBitsKHR(), VkGeometryInstanceFlagBitsNV(..),
        VkGeometryInstanceFlagsKHR(), VkGeometryTypeNV(..),
        VkImageAspectBitmask(..), VkImageCreateBitmask(..),
        VkImageLayout(..), VkImageTiling(..), VkImageType(..),
        VkImageUsageBitmask(..), VkImageViewType(..),
        VkImageAspectFlagBits(), VkImageAspectFlags(),
        VkImageCreateFlagBits(), VkImageCreateFlags(),
        VkImageUsageFlagBits(), VkImageUsageFlags(),
        VkImageViewCreateBitmask(..), VkImageViewCreateFlagBits(),
        VkImageViewCreateFlags(), VkIndexType(..),
        VkPhysicalDeviceFeatures, VkPhysicalDeviceFeatures2,
        VkPhysicalDeviceLimits, VkPhysicalDeviceProperties,
        VkPhysicalDeviceProperties2, VkPhysicalDeviceRayTracingFeaturesKHR,
        VkPhysicalDeviceRayTracingPropertiesKHR,
        VkPhysicalDeviceSparseProperties, VkPhysicalDeviceType(..),
        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(..), VkSampleCountBitmask(..),
        VkSampleCountFlagBits(), VkSampleCountFlags(),
        VkShaderFloatControlsIndependence(..), VkShaderInfoTypeAMD(..),
        VkShaderStageBitmask(..), VkShaderCorePropertiesBitmaskAMD(..),
        VkShaderCorePropertiesFlagBitsAMD(),
        VkShaderCorePropertiesFlagsAMD(),
        VkShaderFloatControlsIndependenceKHR(..),
        VkShaderModuleCreateBitmask(..), VkShaderModuleCreateFlagBits(),
        VkShaderModuleCreateFlags(), VkShaderStageFlagBits(),
        VkShaderStageFlags(), VkSpecializationInfo,
        VkSpecializationMapEntry, VkStridedBufferRegionKHR,
        VkStructureType(..), VkTraceRaysIndirectCommandKHR,
        VkTransformMatrixKHR, VkWriteDescriptorSet,
        VkWriteDescriptorSetAccelerationStructureKHR,
        -- > #include "vk_platform.h"
        VkCreateAccelerationStructureKHR,
        pattern VkCreateAccelerationStructureKHR,
        HS_vkCreateAccelerationStructureKHR,
        PFN_vkCreateAccelerationStructureKHR,
        VkDestroyAccelerationStructureKHR,
        pattern VkDestroyAccelerationStructureKHR,
        HS_vkDestroyAccelerationStructureKHR,
        PFN_vkDestroyAccelerationStructureKHR,
        VkGetAccelerationStructureMemoryRequirementsKHR,
        pattern VkGetAccelerationStructureMemoryRequirementsKHR,
        HS_vkGetAccelerationStructureMemoryRequirementsKHR,
        PFN_vkGetAccelerationStructureMemoryRequirementsKHR,
        VkBindAccelerationStructureMemoryKHR,
        pattern VkBindAccelerationStructureMemoryKHR,
        HS_vkBindAccelerationStructureMemoryKHR,
        PFN_vkBindAccelerationStructureMemoryKHR,
        VkCmdBuildAccelerationStructureKHR,
        pattern VkCmdBuildAccelerationStructureKHR,
        HS_vkCmdBuildAccelerationStructureKHR,
        PFN_vkCmdBuildAccelerationStructureKHR,
        VkCmdBuildAccelerationStructureIndirectKHR,
        pattern VkCmdBuildAccelerationStructureIndirectKHR,
        HS_vkCmdBuildAccelerationStructureIndirectKHR,
        PFN_vkCmdBuildAccelerationStructureIndirectKHR,
        VkBuildAccelerationStructureKHR,
        pattern VkBuildAccelerationStructureKHR,
        HS_vkBuildAccelerationStructureKHR,
        PFN_vkBuildAccelerationStructureKHR,
        VkCopyAccelerationStructureKHR,
        pattern VkCopyAccelerationStructureKHR,
        HS_vkCopyAccelerationStructureKHR,
        PFN_vkCopyAccelerationStructureKHR,
        VkCopyAccelerationStructureToMemoryKHR,
        pattern VkCopyAccelerationStructureToMemoryKHR,
        HS_vkCopyAccelerationStructureToMemoryKHR,
        PFN_vkCopyAccelerationStructureToMemoryKHR,
        VkCopyMemoryToAccelerationStructureKHR,
        pattern VkCopyMemoryToAccelerationStructureKHR,
        HS_vkCopyMemoryToAccelerationStructureKHR,
        PFN_vkCopyMemoryToAccelerationStructureKHR,
        VkWriteAccelerationStructuresPropertiesKHR,
        pattern VkWriteAccelerationStructuresPropertiesKHR,
        HS_vkWriteAccelerationStructuresPropertiesKHR,
        PFN_vkWriteAccelerationStructuresPropertiesKHR,
        VkCmdCopyAccelerationStructureKHR,
        pattern VkCmdCopyAccelerationStructureKHR,
        HS_vkCmdCopyAccelerationStructureKHR,
        PFN_vkCmdCopyAccelerationStructureKHR,
        VkCmdCopyAccelerationStructureToMemoryKHR,
        pattern VkCmdCopyAccelerationStructureToMemoryKHR,
        HS_vkCmdCopyAccelerationStructureToMemoryKHR,
        PFN_vkCmdCopyAccelerationStructureToMemoryKHR,
        VkCmdCopyMemoryToAccelerationStructureKHR,
        pattern VkCmdCopyMemoryToAccelerationStructureKHR,
        HS_vkCmdCopyMemoryToAccelerationStructureKHR,
        PFN_vkCmdCopyMemoryToAccelerationStructureKHR, VkCmdTraceRaysKHR,
        pattern VkCmdTraceRaysKHR, HS_vkCmdTraceRaysKHR,
        PFN_vkCmdTraceRaysKHR, VkCreateRayTracingPipelinesKHR,
        pattern VkCreateRayTracingPipelinesKHR,
        HS_vkCreateRayTracingPipelinesKHR,
        PFN_vkCreateRayTracingPipelinesKHR,
        VkGetRayTracingShaderGroupHandlesKHR,
        pattern VkGetRayTracingShaderGroupHandlesKHR,
        HS_vkGetRayTracingShaderGroupHandlesKHR,
        PFN_vkGetRayTracingShaderGroupHandlesKHR,
        VkGetAccelerationStructureDeviceAddressKHR,
        pattern VkGetAccelerationStructureDeviceAddressKHR,
        HS_vkGetAccelerationStructureDeviceAddressKHR,
        PFN_vkGetAccelerationStructureDeviceAddressKHR,
        VkGetRayTracingCaptureReplayShaderGroupHandlesKHR,
        pattern VkGetRayTracingCaptureReplayShaderGroupHandlesKHR,
        HS_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR,
        PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR,
        VkCmdWriteAccelerationStructuresPropertiesKHR,
        pattern VkCmdWriteAccelerationStructuresPropertiesKHR,
        HS_vkCmdWriteAccelerationStructuresPropertiesKHR,
        PFN_vkCmdWriteAccelerationStructuresPropertiesKHR,
        VkCmdTraceRaysIndirectKHR, pattern VkCmdTraceRaysIndirectKHR,
        HS_vkCmdTraceRaysIndirectKHR, PFN_vkCmdTraceRaysIndirectKHR,
        VkGetDeviceAccelerationStructureCompatibilityKHR,
        pattern VkGetDeviceAccelerationStructureCompatibilityKHR,
        HS_vkGetDeviceAccelerationStructureCompatibilityKHR,
        PFN_vkGetDeviceAccelerationStructureCompatibilityKHR,
        VkInternalAllocationType(..), VkQueryControlBitmask(..),
        VkQueryPipelineStatisticBitmask(..),
        VkQueryPoolSamplingModeINTEL(..), VkQueryResultBitmask(..),
        VkQueryType(..), VkQueryControlFlagBits(), VkQueryControlFlags(),
        VkQueryPipelineStatisticFlagBits(),
        VkQueryPipelineStatisticFlags(), VkQueryPoolCreateFlagBits(..),
        VkQueryResultFlagBits(), VkQueryResultFlags(), 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, VkDeferredOperationInfoKHR,
        VkMemoryAllocateFlagsInfo, VkMemoryAllocateFlagsInfoKHR,
        VkMemoryAllocateInfo, VkMemoryBarrier,
        VkMemoryDedicatedAllocateInfo, VkMemoryDedicatedAllocateInfoKHR,
        VkMemoryDedicatedRequirements, VkMemoryDedicatedRequirementsKHR,
        VkMemoryFdPropertiesKHR, VkMemoryGetFdInfoKHR, VkMemoryHeap,
        VkMemoryHostPointerPropertiesEXT,
        VkMemoryOpaqueCaptureAddressAllocateInfo,
        VkMemoryOpaqueCaptureAddressAllocateInfoKHR,
        VkMemoryPriorityAllocateInfoEXT, VkMemoryRequirements,
        VkMemoryRequirements2, VkMemoryRequirements2KHR, VkMemoryType,
        VkGraphicsPipelineCreateInfo, VkPipelineCacheCreateInfo,
        VkPipelineColorBlendAdvancedStateCreateInfoEXT,
        VkPipelineColorBlendAttachmentState,
        VkPipelineColorBlendStateCreateInfo,
        VkPipelineCompilerControlCreateInfoAMD,
        VkPipelineCoverageModulationStateCreateInfoNV,
        VkPipelineCoverageReductionStateCreateInfoNV,
        VkPipelineCoverageToColorStateCreateInfoNV,
        VkPipelineCreationFeedbackCreateInfoEXT,
        VkPipelineCreationFeedbackEXT,
        VkPipelineDepthStencilStateCreateInfo,
        VkPipelineDiscardRectangleStateCreateInfoEXT,
        VkPipelineDynamicStateCreateInfo, VkPipelineExecutableInfoKHR,
        VkPipelineExecutableInternalRepresentationKHR,
        VkPipelineExecutablePropertiesKHR,
        VkPipelineExecutableStatisticKHR,
        VkPipelineExecutableStatisticValueKHR, VkPipelineInfoKHR,
        VkPipelineInputAssemblyStateCreateInfo, VkPipelineLayoutCreateInfo,
        VkPipelineMultisampleStateCreateInfo,
        VkPipelineRasterizationConservativeStateCreateInfoEXT,
        VkPipelineRasterizationDepthClipStateCreateInfoEXT,
        VkPipelineRasterizationLineStateCreateInfoEXT,
        VkPipelineRasterizationStateCreateInfo,
        VkPipelineRasterizationStateRasterizationOrderAMD,
        VkPipelineRasterizationStateStreamCreateInfoEXT,
        VkPipelineRepresentativeFragmentTestStateCreateInfoNV,
        VkPipelineSampleLocationsStateCreateInfoEXT,
        VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT,
        VkPipelineTessellationDomainOriginStateCreateInfo,
        VkPipelineTessellationDomainOriginStateCreateInfoKHR,
        VkPipelineTessellationStateCreateInfo,
        VkPipelineVertexInputDivisorStateCreateInfoEXT,
        VkPipelineVertexInputStateCreateInfo,
        VkPipelineViewportCoarseSampleOrderStateCreateInfoNV,
        VkPipelineViewportExclusiveScissorStateCreateInfoNV,
        VkPipelineViewportShadingRateImageStateCreateInfoNV,
        VkPipelineViewportStateCreateInfo,
        VkPipelineViewportSwizzleStateCreateInfoNV,
        VkPipelineViewportWScalingStateCreateInfoNV,
        VK_KHR_RAY_TRACING_SPEC_VERSION,
        pattern VK_KHR_RAY_TRACING_SPEC_VERSION,
        VK_KHR_RAY_TRACING_EXTENSION_NAME,
        pattern VK_KHR_RAY_TRACING_EXTENSION_NAME,
        pattern VK_SHADER_UNUSED_KHR,
        pattern VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_KHR,
        pattern VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR,
        pattern VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR,
        pattern VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_GEOMETRY_TYPE_INFO_KHR,
        pattern VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR,
        pattern VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR,
        pattern VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR,
        pattern VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR,
        pattern VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR,
        pattern VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_KHR,
        pattern VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_KHR,
        pattern VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR,
        pattern VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR,
        pattern VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR,
        pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_FEATURES_KHR,
        pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_KHR,
        pattern VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR,
        pattern VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR,
        pattern VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR,
        pattern VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR,
        pattern VK_SHADER_STAGE_RAYGEN_BIT_KHR,
        pattern VK_SHADER_STAGE_ANY_HIT_BIT_KHR,
        pattern VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR,
        pattern VK_SHADER_STAGE_MISS_BIT_KHR,
        pattern VK_SHADER_STAGE_INTERSECTION_BIT_KHR,
        pattern VK_SHADER_STAGE_CALLABLE_BIT_KHR,
        pattern VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR,
        pattern VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,
        pattern VK_BUFFER_USAGE_RAY_TRACING_BIT_KHR,
        pattern VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR,
        pattern VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR,
        pattern VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR,
        pattern VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR,
        pattern VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR,
        pattern VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR,
        pattern VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR,
        pattern VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT,
        pattern VK_INDEX_TYPE_NONE_KHR,
        pattern VK_GEOMETRY_TYPE_INSTANCES_KHR,
        pattern VK_ERROR_INCOMPATIBLE_VERSION_KHR,
        pattern VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR,
        pattern VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR,
        pattern VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR,
        pattern VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR,
        pattern VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR,
        pattern VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR,
        pattern VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR)
       where
import GHC.Ptr                                                   (Ptr (..))
import Graphics.Vulkan.Constants                                 (pattern VK_SHADER_UNUSED_KHR)
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.AccelerationStructure
import Graphics.Vulkan.Types.Enum.AccessFlags                    (VkAccessBitmask (..))
import Graphics.Vulkan.Types.Enum.Buffer                         (VkBufferUsageBitmask (..))
import Graphics.Vulkan.Types.Enum.BuildAccelerationStructureFlag
import Graphics.Vulkan.Types.Enum.CopyAccelerationStructureMode
import Graphics.Vulkan.Types.Enum.Debug                          (VkDebugReportObjectTypeEXT (..))
import Graphics.Vulkan.Types.Enum.Descriptor
import Graphics.Vulkan.Types.Enum.Device
import Graphics.Vulkan.Types.Enum.Format
import Graphics.Vulkan.Types.Enum.Geometry
import Graphics.Vulkan.Types.Enum.Image
import Graphics.Vulkan.Types.Enum.IndexType
import Graphics.Vulkan.Types.Enum.InternalAllocationType
import Graphics.Vulkan.Types.Enum.ObjectType                     (VkObjectType (..))
import Graphics.Vulkan.Types.Enum.PhysicalDeviceType
import Graphics.Vulkan.Types.Enum.Pipeline
import Graphics.Vulkan.Types.Enum.Query
import Graphics.Vulkan.Types.Enum.RayTracingShaderGroupType
import Graphics.Vulkan.Types.Enum.Result
import Graphics.Vulkan.Types.Enum.SampleCountFlags
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.Descriptor                   (VkDescriptorBufferInfo,
                                                                  VkDescriptorImageInfo)
import Graphics.Vulkan.Types.Struct.Device                       (VkDeviceCreateInfo,
                                                                  VkDeviceQueueCreateInfo)
import Graphics.Vulkan.Types.Struct.EnableBetaExtensions
import Graphics.Vulkan.Types.Struct.Memory
import Graphics.Vulkan.Types.Struct.PhysicalDevice               (VkPhysicalDeviceFeatures2,
                                                                  VkPhysicalDeviceLimits,
                                                                  VkPhysicalDeviceProperties,
                                                                  VkPhysicalDeviceProperties2,
                                                                  VkPhysicalDeviceSparseProperties)
import Graphics.Vulkan.Types.Struct.PhysicalDeviceFeatures       (VkPhysicalDeviceFeatures)
import Graphics.Vulkan.Types.Struct.Pipeline
import Graphics.Vulkan.Types.Struct.Specialization
import Graphics.Vulkan.Types.Struct.WriteDescriptorSet           (VkWriteDescriptorSet)

pattern VkCreateAccelerationStructureKHR :: CString

pattern $bVkCreateAccelerationStructureKHR :: CString
$mVkCreateAccelerationStructureKHR :: forall {r}. CString -> (Void# -> r) -> (Void# -> r) -> r
VkCreateAccelerationStructureKHR <-
        (is_VkCreateAccelerationStructureKHR -> True)
  where
    VkCreateAccelerationStructureKHR
      = CString
_VkCreateAccelerationStructureKHR

{-# INLINE _VkCreateAccelerationStructureKHR #-}

_VkCreateAccelerationStructureKHR :: CString
_VkCreateAccelerationStructureKHR :: CString
_VkCreateAccelerationStructureKHR
  = Addr# -> CString
forall a. Addr# -> Ptr a
Ptr Addr#
"vkCreateAccelerationStructureKHR\NUL"#

{-# INLINE is_VkCreateAccelerationStructureKHR #-}

is_VkCreateAccelerationStructureKHR :: CString -> Bool
is_VkCreateAccelerationStructureKHR :: CString -> Bool
is_VkCreateAccelerationStructureKHR
  = (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
_VkCreateAccelerationStructureKHR

type VkCreateAccelerationStructureKHR =
     "vkCreateAccelerationStructureKHR"

-- | Success codes: 'VK_SUCCESS'.
--
--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR'.
--
--   > VkResult vkCreateAccelerationStructureKHR
--   >     ( VkDevice                                           device
--   >     , const VkAccelerationStructureCreateInfoKHR*        pCreateInfo
--   >     , const VkAllocationCallbacks*       pAllocator
--   >     , VkAccelerationStructureKHR*                        pAccelerationStructure
--   >     )
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCreateAccelerationStructureKHR vkCreateAccelerationStructureKHR registry at www.khronos.org>
type HS_vkCreateAccelerationStructureKHR =
     VkDevice -- ^ device
              ->
       Ptr VkAccelerationStructureCreateInfoKHR -- ^ pCreateInfo
                                                ->
         Ptr VkAllocationCallbacks -- ^ pAllocator
                                   ->
           Ptr VkAccelerationStructureKHR -- ^ pAccelerationStructure
                                          -> IO VkResult

type PFN_vkCreateAccelerationStructureKHR =
     FunPtr HS_vkCreateAccelerationStructureKHR

foreign import ccall unsafe "dynamic"
               unwrapVkCreateAccelerationStructureKHRUnsafe ::
               PFN_vkCreateAccelerationStructureKHR ->
                 HS_vkCreateAccelerationStructureKHR

foreign import ccall safe "dynamic"
               unwrapVkCreateAccelerationStructureKHRSafe ::
               PFN_vkCreateAccelerationStructureKHR ->
                 HS_vkCreateAccelerationStructureKHR

instance VulkanProc "vkCreateAccelerationStructureKHR" where
    type VkProcType "vkCreateAccelerationStructureKHR" =
         HS_vkCreateAccelerationStructureKHR
    vkProcSymbol :: CString
vkProcSymbol = CString
_VkCreateAccelerationStructureKHR

    {-# INLINE vkProcSymbol #-}
    unwrapVkProcPtrUnsafe :: FunPtr (VkProcType "vkCreateAccelerationStructureKHR")
-> VkProcType "vkCreateAccelerationStructureKHR"
unwrapVkProcPtrUnsafe
      = FunPtr (VkProcType "vkCreateAccelerationStructureKHR")
-> VkProcType "vkCreateAccelerationStructureKHR"
PFN_vkCreateAccelerationStructureKHR
-> HS_vkCreateAccelerationStructureKHR
unwrapVkCreateAccelerationStructureKHRUnsafe

    {-# INLINE unwrapVkProcPtrUnsafe #-}
    unwrapVkProcPtrSafe :: FunPtr (VkProcType "vkCreateAccelerationStructureKHR")
-> VkProcType "vkCreateAccelerationStructureKHR"
unwrapVkProcPtrSafe = FunPtr (VkProcType "vkCreateAccelerationStructureKHR")
-> VkProcType "vkCreateAccelerationStructureKHR"
PFN_vkCreateAccelerationStructureKHR
-> HS_vkCreateAccelerationStructureKHR
unwrapVkCreateAccelerationStructureKHRSafe

    {-# INLINE unwrapVkProcPtrSafe #-}

pattern VkDestroyAccelerationStructureKHR :: CString

pattern $bVkDestroyAccelerationStructureKHR :: CString
$mVkDestroyAccelerationStructureKHR :: forall {r}. CString -> (Void# -> r) -> (Void# -> r) -> r
VkDestroyAccelerationStructureKHR <-
        (is_VkDestroyAccelerationStructureKHR -> True)
  where
    VkDestroyAccelerationStructureKHR
      = CString
_VkDestroyAccelerationStructureKHR

{-# INLINE _VkDestroyAccelerationStructureKHR #-}

_VkDestroyAccelerationStructureKHR :: CString
_VkDestroyAccelerationStructureKHR :: CString
_VkDestroyAccelerationStructureKHR
  = Addr# -> CString
forall a. Addr# -> Ptr a
Ptr Addr#
"vkDestroyAccelerationStructureKHR\NUL"#

{-# INLINE is_VkDestroyAccelerationStructureKHR #-}

is_VkDestroyAccelerationStructureKHR :: CString -> Bool
is_VkDestroyAccelerationStructureKHR :: CString -> Bool
is_VkDestroyAccelerationStructureKHR
  = (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
_VkDestroyAccelerationStructureKHR

type VkDestroyAccelerationStructureKHR =
     "vkDestroyAccelerationStructureKHR"

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

type PFN_vkDestroyAccelerationStructureKHR =
     FunPtr HS_vkDestroyAccelerationStructureKHR

foreign import ccall unsafe "dynamic"
               unwrapVkDestroyAccelerationStructureKHRUnsafe ::
               PFN_vkDestroyAccelerationStructureKHR ->
                 HS_vkDestroyAccelerationStructureKHR

foreign import ccall safe "dynamic"
               unwrapVkDestroyAccelerationStructureKHRSafe ::
               PFN_vkDestroyAccelerationStructureKHR ->
                 HS_vkDestroyAccelerationStructureKHR

instance VulkanProc "vkDestroyAccelerationStructureKHR" where
    type VkProcType "vkDestroyAccelerationStructureKHR" =
         HS_vkDestroyAccelerationStructureKHR
    vkProcSymbol :: CString
vkProcSymbol = CString
_VkDestroyAccelerationStructureKHR

    {-# INLINE vkProcSymbol #-}
    unwrapVkProcPtrUnsafe :: FunPtr (VkProcType "vkDestroyAccelerationStructureKHR")
-> VkProcType "vkDestroyAccelerationStructureKHR"
unwrapVkProcPtrUnsafe
      = FunPtr (VkProcType "vkDestroyAccelerationStructureKHR")
-> VkProcType "vkDestroyAccelerationStructureKHR"
PFN_vkDestroyAccelerationStructureKHR
-> HS_vkDestroyAccelerationStructureKHR
unwrapVkDestroyAccelerationStructureKHRUnsafe

    {-# INLINE unwrapVkProcPtrUnsafe #-}
    unwrapVkProcPtrSafe :: FunPtr (VkProcType "vkDestroyAccelerationStructureKHR")
-> VkProcType "vkDestroyAccelerationStructureKHR"
unwrapVkProcPtrSafe = FunPtr (VkProcType "vkDestroyAccelerationStructureKHR")
-> VkProcType "vkDestroyAccelerationStructureKHR"
PFN_vkDestroyAccelerationStructureKHR
-> HS_vkDestroyAccelerationStructureKHR
unwrapVkDestroyAccelerationStructureKHRSafe

    {-# INLINE unwrapVkProcPtrSafe #-}

pattern VkGetAccelerationStructureMemoryRequirementsKHR :: CString

pattern $bVkGetAccelerationStructureMemoryRequirementsKHR :: CString
$mVkGetAccelerationStructureMemoryRequirementsKHR :: forall {r}. CString -> (Void# -> r) -> (Void# -> r) -> r
VkGetAccelerationStructureMemoryRequirementsKHR <-
        (is_VkGetAccelerationStructureMemoryRequirementsKHR -> True)
  where
    VkGetAccelerationStructureMemoryRequirementsKHR
      = CString
_VkGetAccelerationStructureMemoryRequirementsKHR

{-# INLINE _VkGetAccelerationStructureMemoryRequirementsKHR #-}

_VkGetAccelerationStructureMemoryRequirementsKHR :: CString
_VkGetAccelerationStructureMemoryRequirementsKHR :: CString
_VkGetAccelerationStructureMemoryRequirementsKHR
  = Addr# -> CString
forall a. Addr# -> Ptr a
Ptr Addr#
"vkGetAccelerationStructureMemoryRequirementsKHR\NUL"#

{-# INLINE is_VkGetAccelerationStructureMemoryRequirementsKHR #-}

is_VkGetAccelerationStructureMemoryRequirementsKHR ::
                                                   CString -> Bool
is_VkGetAccelerationStructureMemoryRequirementsKHR :: CString -> Bool
is_VkGetAccelerationStructureMemoryRequirementsKHR
  = (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
_VkGetAccelerationStructureMemoryRequirementsKHR

type VkGetAccelerationStructureMemoryRequirementsKHR =
     "vkGetAccelerationStructureMemoryRequirementsKHR"

-- | > void vkGetAccelerationStructureMemoryRequirementsKHR
--   >     ( VkDevice device
--   >     , const VkAccelerationStructureMemoryRequirementsInfoKHR* pInfo
--   >     , VkMemoryRequirements2* pMemoryRequirements
--   >     )
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkGetAccelerationStructureMemoryRequirementsKHR vkGetAccelerationStructureMemoryRequirementsKHR registry at www.khronos.org>
type HS_vkGetAccelerationStructureMemoryRequirementsKHR =
     VkDevice -- ^ device
              ->
       Ptr VkAccelerationStructureMemoryRequirementsInfoKHR -- ^ pInfo
                                                            ->
         Ptr VkMemoryRequirements2 -- ^ pMemoryRequirements
                                   -> IO ()

type PFN_vkGetAccelerationStructureMemoryRequirementsKHR =
     FunPtr HS_vkGetAccelerationStructureMemoryRequirementsKHR

foreign import ccall unsafe "dynamic"
               unwrapVkGetAccelerationStructureMemoryRequirementsKHRUnsafe ::
               PFN_vkGetAccelerationStructureMemoryRequirementsKHR ->
                 HS_vkGetAccelerationStructureMemoryRequirementsKHR

foreign import ccall safe "dynamic"
               unwrapVkGetAccelerationStructureMemoryRequirementsKHRSafe ::
               PFN_vkGetAccelerationStructureMemoryRequirementsKHR ->
                 HS_vkGetAccelerationStructureMemoryRequirementsKHR

instance VulkanProc
           "vkGetAccelerationStructureMemoryRequirementsKHR"
         where
    type VkProcType "vkGetAccelerationStructureMemoryRequirementsKHR" =
         HS_vkGetAccelerationStructureMemoryRequirementsKHR
    vkProcSymbol :: CString
vkProcSymbol = CString
_VkGetAccelerationStructureMemoryRequirementsKHR

    {-# INLINE vkProcSymbol #-}
    unwrapVkProcPtrUnsafe :: FunPtr
  (VkProcType "vkGetAccelerationStructureMemoryRequirementsKHR")
-> VkProcType "vkGetAccelerationStructureMemoryRequirementsKHR"
unwrapVkProcPtrUnsafe
      = FunPtr
  (VkProcType "vkGetAccelerationStructureMemoryRequirementsKHR")
-> VkProcType "vkGetAccelerationStructureMemoryRequirementsKHR"
PFN_vkGetAccelerationStructureMemoryRequirementsKHR
-> HS_vkGetAccelerationStructureMemoryRequirementsKHR
unwrapVkGetAccelerationStructureMemoryRequirementsKHRUnsafe

    {-# INLINE unwrapVkProcPtrUnsafe #-}
    unwrapVkProcPtrSafe :: FunPtr
  (VkProcType "vkGetAccelerationStructureMemoryRequirementsKHR")
-> VkProcType "vkGetAccelerationStructureMemoryRequirementsKHR"
unwrapVkProcPtrSafe
      = FunPtr
  (VkProcType "vkGetAccelerationStructureMemoryRequirementsKHR")
-> VkProcType "vkGetAccelerationStructureMemoryRequirementsKHR"
PFN_vkGetAccelerationStructureMemoryRequirementsKHR
-> HS_vkGetAccelerationStructureMemoryRequirementsKHR
unwrapVkGetAccelerationStructureMemoryRequirementsKHRSafe

    {-# INLINE unwrapVkProcPtrSafe #-}

pattern VkBindAccelerationStructureMemoryKHR :: CString

pattern $bVkBindAccelerationStructureMemoryKHR :: CString
$mVkBindAccelerationStructureMemoryKHR :: forall {r}. CString -> (Void# -> r) -> (Void# -> r) -> r
VkBindAccelerationStructureMemoryKHR <-
        (is_VkBindAccelerationStructureMemoryKHR -> True)
  where
    VkBindAccelerationStructureMemoryKHR
      = CString
_VkBindAccelerationStructureMemoryKHR

{-# INLINE _VkBindAccelerationStructureMemoryKHR #-}

_VkBindAccelerationStructureMemoryKHR :: CString
_VkBindAccelerationStructureMemoryKHR :: CString
_VkBindAccelerationStructureMemoryKHR
  = Addr# -> CString
forall a. Addr# -> Ptr a
Ptr Addr#
"vkBindAccelerationStructureMemoryKHR\NUL"#

{-# INLINE is_VkBindAccelerationStructureMemoryKHR #-}

is_VkBindAccelerationStructureMemoryKHR :: CString -> Bool
is_VkBindAccelerationStructureMemoryKHR :: CString -> Bool
is_VkBindAccelerationStructureMemoryKHR
  = (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
_VkBindAccelerationStructureMemoryKHR

type VkBindAccelerationStructureMemoryKHR =
     "vkBindAccelerationStructureMemoryKHR"

-- | Success codes: 'VK_SUCCESS'.
--
--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
--
--   > VkResult vkBindAccelerationStructureMemoryKHR
--   >     ( VkDevice device
--   >     , uint32_t bindInfoCount
--   >     , const VkBindAccelerationStructureMemoryInfoKHR* pBindInfos
--   >     )
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkBindAccelerationStructureMemoryKHR vkBindAccelerationStructureMemoryKHR registry at www.khronos.org>
type HS_vkBindAccelerationStructureMemoryKHR =
     VkDevice -- ^ device
              ->
       Word32 -- ^ bindInfoCount
              ->
         Ptr VkBindAccelerationStructureMemoryInfoKHR -- ^ pBindInfos
                                                      -> IO VkResult

type PFN_vkBindAccelerationStructureMemoryKHR =
     FunPtr HS_vkBindAccelerationStructureMemoryKHR

foreign import ccall unsafe "dynamic"
               unwrapVkBindAccelerationStructureMemoryKHRUnsafe ::
               PFN_vkBindAccelerationStructureMemoryKHR ->
                 HS_vkBindAccelerationStructureMemoryKHR

foreign import ccall safe "dynamic"
               unwrapVkBindAccelerationStructureMemoryKHRSafe ::
               PFN_vkBindAccelerationStructureMemoryKHR ->
                 HS_vkBindAccelerationStructureMemoryKHR

instance VulkanProc "vkBindAccelerationStructureMemoryKHR" where
    type VkProcType "vkBindAccelerationStructureMemoryKHR" =
         HS_vkBindAccelerationStructureMemoryKHR
    vkProcSymbol :: CString
vkProcSymbol = CString
_VkBindAccelerationStructureMemoryKHR

    {-# INLINE vkProcSymbol #-}
    unwrapVkProcPtrUnsafe :: FunPtr (VkProcType "vkBindAccelerationStructureMemoryKHR")
-> VkProcType "vkBindAccelerationStructureMemoryKHR"
unwrapVkProcPtrUnsafe
      = FunPtr (VkProcType "vkBindAccelerationStructureMemoryKHR")
-> VkProcType "vkBindAccelerationStructureMemoryKHR"
PFN_vkBindAccelerationStructureMemoryKHR
-> HS_vkBindAccelerationStructureMemoryKHR
unwrapVkBindAccelerationStructureMemoryKHRUnsafe

    {-# INLINE unwrapVkProcPtrUnsafe #-}
    unwrapVkProcPtrSafe :: FunPtr (VkProcType "vkBindAccelerationStructureMemoryKHR")
-> VkProcType "vkBindAccelerationStructureMemoryKHR"
unwrapVkProcPtrSafe
      = FunPtr (VkProcType "vkBindAccelerationStructureMemoryKHR")
-> VkProcType "vkBindAccelerationStructureMemoryKHR"
PFN_vkBindAccelerationStructureMemoryKHR
-> HS_vkBindAccelerationStructureMemoryKHR
unwrapVkBindAccelerationStructureMemoryKHRSafe

    {-# INLINE unwrapVkProcPtrSafe #-}

pattern VkCmdBuildAccelerationStructureKHR :: CString

pattern $bVkCmdBuildAccelerationStructureKHR :: CString
$mVkCmdBuildAccelerationStructureKHR :: forall {r}. CString -> (Void# -> r) -> (Void# -> r) -> r
VkCmdBuildAccelerationStructureKHR <-
        (is_VkCmdBuildAccelerationStructureKHR -> True)
  where
    VkCmdBuildAccelerationStructureKHR
      = CString
_VkCmdBuildAccelerationStructureKHR

{-# INLINE _VkCmdBuildAccelerationStructureKHR #-}

_VkCmdBuildAccelerationStructureKHR :: CString
_VkCmdBuildAccelerationStructureKHR :: CString
_VkCmdBuildAccelerationStructureKHR
  = Addr# -> CString
forall a. Addr# -> Ptr a
Ptr Addr#
"vkCmdBuildAccelerationStructureKHR\NUL"#

{-# INLINE is_VkCmdBuildAccelerationStructureKHR #-}

is_VkCmdBuildAccelerationStructureKHR :: CString -> Bool
is_VkCmdBuildAccelerationStructureKHR :: CString -> Bool
is_VkCmdBuildAccelerationStructureKHR
  = (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
_VkCmdBuildAccelerationStructureKHR

type VkCmdBuildAccelerationStructureKHR =
     "vkCmdBuildAccelerationStructureKHR"

-- | Queues: 'compute'.
--
--   Renderpass: @outside@
--
--   > void vkCmdBuildAccelerationStructureKHR
--   >     ( VkCommandBuffer                                    commandBuffer
--   >     , uint32_t infoCount
--   >     , const VkAccelerationStructureBuildGeometryInfoKHR* pInfos
--   >     , const VkAccelerationStructureBuildOffsetInfoKHR* const* ppOffsetInfos
--   >     )
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBuildAccelerationStructureKHR vkCmdBuildAccelerationStructureKHR registry at www.khronos.org>
type HS_vkCmdBuildAccelerationStructureKHR =
     VkCommandBuffer -- ^ commandBuffer
                     ->
       Word32 -- ^ infoCount
              ->
         Ptr VkAccelerationStructureBuildGeometryInfoKHR -- ^ pInfos
                                                         ->
           Ptr (Ptr VkAccelerationStructureBuildOffsetInfoKHR) -- ^ ppOffsetInfos
                                                               -> IO ()

type PFN_vkCmdBuildAccelerationStructureKHR =
     FunPtr HS_vkCmdBuildAccelerationStructureKHR

foreign import ccall unsafe "dynamic"
               unwrapVkCmdBuildAccelerationStructureKHRUnsafe ::
               PFN_vkCmdBuildAccelerationStructureKHR ->
                 HS_vkCmdBuildAccelerationStructureKHR

foreign import ccall safe "dynamic"
               unwrapVkCmdBuildAccelerationStructureKHRSafe ::
               PFN_vkCmdBuildAccelerationStructureKHR ->
                 HS_vkCmdBuildAccelerationStructureKHR

instance VulkanProc "vkCmdBuildAccelerationStructureKHR" where
    type VkProcType "vkCmdBuildAccelerationStructureKHR" =
         HS_vkCmdBuildAccelerationStructureKHR
    vkProcSymbol :: CString
vkProcSymbol = CString
_VkCmdBuildAccelerationStructureKHR

    {-# INLINE vkProcSymbol #-}
    unwrapVkProcPtrUnsafe :: FunPtr (VkProcType "vkCmdBuildAccelerationStructureKHR")
-> VkProcType "vkCmdBuildAccelerationStructureKHR"
unwrapVkProcPtrUnsafe
      = FunPtr (VkProcType "vkCmdBuildAccelerationStructureKHR")
-> VkProcType "vkCmdBuildAccelerationStructureKHR"
PFN_vkCmdBuildAccelerationStructureKHR
-> HS_vkCmdBuildAccelerationStructureKHR
unwrapVkCmdBuildAccelerationStructureKHRUnsafe

    {-# INLINE unwrapVkProcPtrUnsafe #-}
    unwrapVkProcPtrSafe :: FunPtr (VkProcType "vkCmdBuildAccelerationStructureKHR")
-> VkProcType "vkCmdBuildAccelerationStructureKHR"
unwrapVkProcPtrSafe = FunPtr (VkProcType "vkCmdBuildAccelerationStructureKHR")
-> VkProcType "vkCmdBuildAccelerationStructureKHR"
PFN_vkCmdBuildAccelerationStructureKHR
-> HS_vkCmdBuildAccelerationStructureKHR
unwrapVkCmdBuildAccelerationStructureKHRSafe

    {-# INLINE unwrapVkProcPtrSafe #-}

pattern VkCmdBuildAccelerationStructureIndirectKHR :: CString

pattern $bVkCmdBuildAccelerationStructureIndirectKHR :: CString
$mVkCmdBuildAccelerationStructureIndirectKHR :: forall {r}. CString -> (Void# -> r) -> (Void# -> r) -> r
VkCmdBuildAccelerationStructureIndirectKHR <-
        (is_VkCmdBuildAccelerationStructureIndirectKHR -> True)
  where
    VkCmdBuildAccelerationStructureIndirectKHR
      = CString
_VkCmdBuildAccelerationStructureIndirectKHR

{-# INLINE _VkCmdBuildAccelerationStructureIndirectKHR #-}

_VkCmdBuildAccelerationStructureIndirectKHR :: CString
_VkCmdBuildAccelerationStructureIndirectKHR :: CString
_VkCmdBuildAccelerationStructureIndirectKHR
  = Addr# -> CString
forall a. Addr# -> Ptr a
Ptr Addr#
"vkCmdBuildAccelerationStructureIndirectKHR\NUL"#

{-# INLINE is_VkCmdBuildAccelerationStructureIndirectKHR #-}

is_VkCmdBuildAccelerationStructureIndirectKHR :: CString -> Bool
is_VkCmdBuildAccelerationStructureIndirectKHR :: CString -> Bool
is_VkCmdBuildAccelerationStructureIndirectKHR
  = (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
_VkCmdBuildAccelerationStructureIndirectKHR

type VkCmdBuildAccelerationStructureIndirectKHR =
     "vkCmdBuildAccelerationStructureIndirectKHR"

-- | Queues: 'compute'.
--
--   Renderpass: @outside@
--
--   > void vkCmdBuildAccelerationStructureIndirectKHR
--   >     ( VkCommandBuffer                  commandBuffer
--   >     , const VkAccelerationStructureBuildGeometryInfoKHR* pInfo
--   >     , VkBuffer                                           indirectBuffer
--   >     , VkDeviceSize                                       indirectOffset
--   >     , uint32_t                                           indirectStride
--   >     )
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBuildAccelerationStructureIndirectKHR vkCmdBuildAccelerationStructureIndirectKHR registry at www.khronos.org>
type HS_vkCmdBuildAccelerationStructureIndirectKHR =
     VkCommandBuffer -- ^ commandBuffer
                     ->
       Ptr VkAccelerationStructureBuildGeometryInfoKHR -- ^ pInfo
                                                       ->
         VkBuffer -- ^ indirectBuffer
                  -> VkDeviceSize -- ^ indirectOffset
                                  -> Word32 -- ^ indirectStride
                                            -> IO ()

type PFN_vkCmdBuildAccelerationStructureIndirectKHR =
     FunPtr HS_vkCmdBuildAccelerationStructureIndirectKHR

foreign import ccall unsafe "dynamic"
               unwrapVkCmdBuildAccelerationStructureIndirectKHRUnsafe ::
               PFN_vkCmdBuildAccelerationStructureIndirectKHR ->
                 HS_vkCmdBuildAccelerationStructureIndirectKHR

foreign import ccall safe "dynamic"
               unwrapVkCmdBuildAccelerationStructureIndirectKHRSafe ::
               PFN_vkCmdBuildAccelerationStructureIndirectKHR ->
                 HS_vkCmdBuildAccelerationStructureIndirectKHR

instance VulkanProc "vkCmdBuildAccelerationStructureIndirectKHR"
         where
    type VkProcType "vkCmdBuildAccelerationStructureIndirectKHR" =
         HS_vkCmdBuildAccelerationStructureIndirectKHR
    vkProcSymbol :: CString
vkProcSymbol = CString
_VkCmdBuildAccelerationStructureIndirectKHR

    {-# INLINE vkProcSymbol #-}
    unwrapVkProcPtrUnsafe :: FunPtr (VkProcType "vkCmdBuildAccelerationStructureIndirectKHR")
-> VkProcType "vkCmdBuildAccelerationStructureIndirectKHR"
unwrapVkProcPtrUnsafe
      = FunPtr (VkProcType "vkCmdBuildAccelerationStructureIndirectKHR")
-> VkProcType "vkCmdBuildAccelerationStructureIndirectKHR"
PFN_vkCmdBuildAccelerationStructureIndirectKHR
-> HS_vkCmdBuildAccelerationStructureIndirectKHR
unwrapVkCmdBuildAccelerationStructureIndirectKHRUnsafe

    {-# INLINE unwrapVkProcPtrUnsafe #-}
    unwrapVkProcPtrSafe :: FunPtr (VkProcType "vkCmdBuildAccelerationStructureIndirectKHR")
-> VkProcType "vkCmdBuildAccelerationStructureIndirectKHR"
unwrapVkProcPtrSafe
      = FunPtr (VkProcType "vkCmdBuildAccelerationStructureIndirectKHR")
-> VkProcType "vkCmdBuildAccelerationStructureIndirectKHR"
PFN_vkCmdBuildAccelerationStructureIndirectKHR
-> HS_vkCmdBuildAccelerationStructureIndirectKHR
unwrapVkCmdBuildAccelerationStructureIndirectKHRSafe

    {-# INLINE unwrapVkProcPtrSafe #-}

pattern VkBuildAccelerationStructureKHR :: CString

pattern $bVkBuildAccelerationStructureKHR :: CString
$mVkBuildAccelerationStructureKHR :: forall {r}. CString -> (Void# -> r) -> (Void# -> r) -> r
VkBuildAccelerationStructureKHR <-
        (is_VkBuildAccelerationStructureKHR -> True)
  where
    VkBuildAccelerationStructureKHR = CString
_VkBuildAccelerationStructureKHR

{-# INLINE _VkBuildAccelerationStructureKHR #-}

_VkBuildAccelerationStructureKHR :: CString
_VkBuildAccelerationStructureKHR :: CString
_VkBuildAccelerationStructureKHR
  = Addr# -> CString
forall a. Addr# -> Ptr a
Ptr Addr#
"vkBuildAccelerationStructureKHR\NUL"#

{-# INLINE is_VkBuildAccelerationStructureKHR #-}

is_VkBuildAccelerationStructureKHR :: CString -> Bool
is_VkBuildAccelerationStructureKHR :: CString -> Bool
is_VkBuildAccelerationStructureKHR
  = (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
_VkBuildAccelerationStructureKHR

type VkBuildAccelerationStructureKHR =
     "vkBuildAccelerationStructureKHR"

-- | Success codes: 'VK_SUCCESS', 'VK_OPERATION_DEFERRED_KHR', 'VK_OPERATION_NOT_DEFERRED_KHR'.
--
--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
--
--   > VkResult vkBuildAccelerationStructureKHR
--   >     ( VkDevice                                           device
--   >     , uint32_t infoCount
--   >     , const VkAccelerationStructureBuildGeometryInfoKHR* pInfos
--   >     , const VkAccelerationStructureBuildOffsetInfoKHR* const* ppOffsetInfos
--   >     )
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkBuildAccelerationStructureKHR vkBuildAccelerationStructureKHR registry at www.khronos.org>
type HS_vkBuildAccelerationStructureKHR =
     VkDevice -- ^ device
              ->
       Word32 -- ^ infoCount
              ->
         Ptr VkAccelerationStructureBuildGeometryInfoKHR -- ^ pInfos
                                                         ->
           Ptr (Ptr VkAccelerationStructureBuildOffsetInfoKHR) -- ^ ppOffsetInfos
                                                               -> IO VkResult

type PFN_vkBuildAccelerationStructureKHR =
     FunPtr HS_vkBuildAccelerationStructureKHR

foreign import ccall unsafe "dynamic"
               unwrapVkBuildAccelerationStructureKHRUnsafe ::
               PFN_vkBuildAccelerationStructureKHR ->
                 HS_vkBuildAccelerationStructureKHR

foreign import ccall safe "dynamic"
               unwrapVkBuildAccelerationStructureKHRSafe ::
               PFN_vkBuildAccelerationStructureKHR ->
                 HS_vkBuildAccelerationStructureKHR

instance VulkanProc "vkBuildAccelerationStructureKHR" where
    type VkProcType "vkBuildAccelerationStructureKHR" =
         HS_vkBuildAccelerationStructureKHR
    vkProcSymbol :: CString
vkProcSymbol = CString
_VkBuildAccelerationStructureKHR

    {-# INLINE vkProcSymbol #-}
    unwrapVkProcPtrUnsafe :: FunPtr (VkProcType "vkBuildAccelerationStructureKHR")
-> VkProcType "vkBuildAccelerationStructureKHR"
unwrapVkProcPtrUnsafe = FunPtr (VkProcType "vkBuildAccelerationStructureKHR")
-> VkProcType "vkBuildAccelerationStructureKHR"
PFN_vkBuildAccelerationStructureKHR
-> HS_vkBuildAccelerationStructureKHR
unwrapVkBuildAccelerationStructureKHRUnsafe

    {-# INLINE unwrapVkProcPtrUnsafe #-}
    unwrapVkProcPtrSafe :: FunPtr (VkProcType "vkBuildAccelerationStructureKHR")
-> VkProcType "vkBuildAccelerationStructureKHR"
unwrapVkProcPtrSafe = FunPtr (VkProcType "vkBuildAccelerationStructureKHR")
-> VkProcType "vkBuildAccelerationStructureKHR"
PFN_vkBuildAccelerationStructureKHR
-> HS_vkBuildAccelerationStructureKHR
unwrapVkBuildAccelerationStructureKHRSafe

    {-# INLINE unwrapVkProcPtrSafe #-}

pattern VkCopyAccelerationStructureKHR :: CString

pattern $bVkCopyAccelerationStructureKHR :: CString
$mVkCopyAccelerationStructureKHR :: forall {r}. CString -> (Void# -> r) -> (Void# -> r) -> r
VkCopyAccelerationStructureKHR <-
        (is_VkCopyAccelerationStructureKHR -> True)
  where
    VkCopyAccelerationStructureKHR = CString
_VkCopyAccelerationStructureKHR

{-# INLINE _VkCopyAccelerationStructureKHR #-}

_VkCopyAccelerationStructureKHR :: CString
_VkCopyAccelerationStructureKHR :: CString
_VkCopyAccelerationStructureKHR
  = Addr# -> CString
forall a. Addr# -> Ptr a
Ptr Addr#
"vkCopyAccelerationStructureKHR\NUL"#

{-# INLINE is_VkCopyAccelerationStructureKHR #-}

is_VkCopyAccelerationStructureKHR :: CString -> Bool
is_VkCopyAccelerationStructureKHR :: CString -> Bool
is_VkCopyAccelerationStructureKHR
  = (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
_VkCopyAccelerationStructureKHR

type VkCopyAccelerationStructureKHR =
     "vkCopyAccelerationStructureKHR"

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

type PFN_vkCopyAccelerationStructureKHR =
     FunPtr HS_vkCopyAccelerationStructureKHR

foreign import ccall unsafe "dynamic"
               unwrapVkCopyAccelerationStructureKHRUnsafe ::
               PFN_vkCopyAccelerationStructureKHR ->
                 HS_vkCopyAccelerationStructureKHR

foreign import ccall safe "dynamic"
               unwrapVkCopyAccelerationStructureKHRSafe ::
               PFN_vkCopyAccelerationStructureKHR ->
                 HS_vkCopyAccelerationStructureKHR

instance VulkanProc "vkCopyAccelerationStructureKHR" where
    type VkProcType "vkCopyAccelerationStructureKHR" =
         HS_vkCopyAccelerationStructureKHR
    vkProcSymbol :: CString
vkProcSymbol = CString
_VkCopyAccelerationStructureKHR

    {-# INLINE vkProcSymbol #-}
    unwrapVkProcPtrUnsafe :: FunPtr (VkProcType "vkCopyAccelerationStructureKHR")
-> VkProcType "vkCopyAccelerationStructureKHR"
unwrapVkProcPtrUnsafe = FunPtr (VkProcType "vkCopyAccelerationStructureKHR")
-> VkProcType "vkCopyAccelerationStructureKHR"
PFN_vkCopyAccelerationStructureKHR
-> HS_vkCopyAccelerationStructureKHR
unwrapVkCopyAccelerationStructureKHRUnsafe

    {-# INLINE unwrapVkProcPtrUnsafe #-}
    unwrapVkProcPtrSafe :: FunPtr (VkProcType "vkCopyAccelerationStructureKHR")
-> VkProcType "vkCopyAccelerationStructureKHR"
unwrapVkProcPtrSafe = FunPtr (VkProcType "vkCopyAccelerationStructureKHR")
-> VkProcType "vkCopyAccelerationStructureKHR"
PFN_vkCopyAccelerationStructureKHR
-> HS_vkCopyAccelerationStructureKHR
unwrapVkCopyAccelerationStructureKHRSafe

    {-# INLINE unwrapVkProcPtrSafe #-}

pattern VkCopyAccelerationStructureToMemoryKHR :: CString

pattern $bVkCopyAccelerationStructureToMemoryKHR :: CString
$mVkCopyAccelerationStructureToMemoryKHR :: forall {r}. CString -> (Void# -> r) -> (Void# -> r) -> r
VkCopyAccelerationStructureToMemoryKHR <-
        (is_VkCopyAccelerationStructureToMemoryKHR -> True)
  where
    VkCopyAccelerationStructureToMemoryKHR
      = CString
_VkCopyAccelerationStructureToMemoryKHR

{-# INLINE _VkCopyAccelerationStructureToMemoryKHR #-}

_VkCopyAccelerationStructureToMemoryKHR :: CString
_VkCopyAccelerationStructureToMemoryKHR :: CString
_VkCopyAccelerationStructureToMemoryKHR
  = Addr# -> CString
forall a. Addr# -> Ptr a
Ptr Addr#
"vkCopyAccelerationStructureToMemoryKHR\NUL"#

{-# INLINE is_VkCopyAccelerationStructureToMemoryKHR #-}

is_VkCopyAccelerationStructureToMemoryKHR :: CString -> Bool
is_VkCopyAccelerationStructureToMemoryKHR :: CString -> Bool
is_VkCopyAccelerationStructureToMemoryKHR
  = (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
_VkCopyAccelerationStructureToMemoryKHR

type VkCopyAccelerationStructureToMemoryKHR =
     "vkCopyAccelerationStructureToMemoryKHR"

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

type PFN_vkCopyAccelerationStructureToMemoryKHR =
     FunPtr HS_vkCopyAccelerationStructureToMemoryKHR

foreign import ccall unsafe "dynamic"
               unwrapVkCopyAccelerationStructureToMemoryKHRUnsafe ::
               PFN_vkCopyAccelerationStructureToMemoryKHR ->
                 HS_vkCopyAccelerationStructureToMemoryKHR

foreign import ccall safe "dynamic"
               unwrapVkCopyAccelerationStructureToMemoryKHRSafe ::
               PFN_vkCopyAccelerationStructureToMemoryKHR ->
                 HS_vkCopyAccelerationStructureToMemoryKHR

instance VulkanProc "vkCopyAccelerationStructureToMemoryKHR" where
    type VkProcType "vkCopyAccelerationStructureToMemoryKHR" =
         HS_vkCopyAccelerationStructureToMemoryKHR
    vkProcSymbol :: CString
vkProcSymbol = CString
_VkCopyAccelerationStructureToMemoryKHR

    {-# INLINE vkProcSymbol #-}
    unwrapVkProcPtrUnsafe :: FunPtr (VkProcType "vkCopyAccelerationStructureToMemoryKHR")
-> VkProcType "vkCopyAccelerationStructureToMemoryKHR"
unwrapVkProcPtrUnsafe
      = FunPtr (VkProcType "vkCopyAccelerationStructureToMemoryKHR")
-> VkProcType "vkCopyAccelerationStructureToMemoryKHR"
PFN_vkCopyAccelerationStructureToMemoryKHR
-> HS_vkCopyAccelerationStructureToMemoryKHR
unwrapVkCopyAccelerationStructureToMemoryKHRUnsafe

    {-# INLINE unwrapVkProcPtrUnsafe #-}
    unwrapVkProcPtrSafe :: FunPtr (VkProcType "vkCopyAccelerationStructureToMemoryKHR")
-> VkProcType "vkCopyAccelerationStructureToMemoryKHR"
unwrapVkProcPtrSafe
      = FunPtr (VkProcType "vkCopyAccelerationStructureToMemoryKHR")
-> VkProcType "vkCopyAccelerationStructureToMemoryKHR"
PFN_vkCopyAccelerationStructureToMemoryKHR
-> HS_vkCopyAccelerationStructureToMemoryKHR
unwrapVkCopyAccelerationStructureToMemoryKHRSafe

    {-# INLINE unwrapVkProcPtrSafe #-}

pattern VkCopyMemoryToAccelerationStructureKHR :: CString

pattern $bVkCopyMemoryToAccelerationStructureKHR :: CString
$mVkCopyMemoryToAccelerationStructureKHR :: forall {r}. CString -> (Void# -> r) -> (Void# -> r) -> r
VkCopyMemoryToAccelerationStructureKHR <-
        (is_VkCopyMemoryToAccelerationStructureKHR -> True)
  where
    VkCopyMemoryToAccelerationStructureKHR
      = CString
_VkCopyMemoryToAccelerationStructureKHR

{-# INLINE _VkCopyMemoryToAccelerationStructureKHR #-}

_VkCopyMemoryToAccelerationStructureKHR :: CString
_VkCopyMemoryToAccelerationStructureKHR :: CString
_VkCopyMemoryToAccelerationStructureKHR
  = Addr# -> CString
forall a. Addr# -> Ptr a
Ptr Addr#
"vkCopyMemoryToAccelerationStructureKHR\NUL"#

{-# INLINE is_VkCopyMemoryToAccelerationStructureKHR #-}

is_VkCopyMemoryToAccelerationStructureKHR :: CString -> Bool
is_VkCopyMemoryToAccelerationStructureKHR :: CString -> Bool
is_VkCopyMemoryToAccelerationStructureKHR
  = (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
_VkCopyMemoryToAccelerationStructureKHR

type VkCopyMemoryToAccelerationStructureKHR =
     "vkCopyMemoryToAccelerationStructureKHR"

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

type PFN_vkCopyMemoryToAccelerationStructureKHR =
     FunPtr HS_vkCopyMemoryToAccelerationStructureKHR

foreign import ccall unsafe "dynamic"
               unwrapVkCopyMemoryToAccelerationStructureKHRUnsafe ::
               PFN_vkCopyMemoryToAccelerationStructureKHR ->
                 HS_vkCopyMemoryToAccelerationStructureKHR

foreign import ccall safe "dynamic"
               unwrapVkCopyMemoryToAccelerationStructureKHRSafe ::
               PFN_vkCopyMemoryToAccelerationStructureKHR ->
                 HS_vkCopyMemoryToAccelerationStructureKHR

instance VulkanProc "vkCopyMemoryToAccelerationStructureKHR" where
    type VkProcType "vkCopyMemoryToAccelerationStructureKHR" =
         HS_vkCopyMemoryToAccelerationStructureKHR
    vkProcSymbol :: CString
vkProcSymbol = CString
_VkCopyMemoryToAccelerationStructureKHR

    {-# INLINE vkProcSymbol #-}
    unwrapVkProcPtrUnsafe :: FunPtr (VkProcType "vkCopyMemoryToAccelerationStructureKHR")
-> VkProcType "vkCopyMemoryToAccelerationStructureKHR"
unwrapVkProcPtrUnsafe
      = FunPtr (VkProcType "vkCopyMemoryToAccelerationStructureKHR")
-> VkProcType "vkCopyMemoryToAccelerationStructureKHR"
PFN_vkCopyMemoryToAccelerationStructureKHR
-> HS_vkCopyMemoryToAccelerationStructureKHR
unwrapVkCopyMemoryToAccelerationStructureKHRUnsafe

    {-# INLINE unwrapVkProcPtrUnsafe #-}
    unwrapVkProcPtrSafe :: FunPtr (VkProcType "vkCopyMemoryToAccelerationStructureKHR")
-> VkProcType "vkCopyMemoryToAccelerationStructureKHR"
unwrapVkProcPtrSafe
      = FunPtr (VkProcType "vkCopyMemoryToAccelerationStructureKHR")
-> VkProcType "vkCopyMemoryToAccelerationStructureKHR"
PFN_vkCopyMemoryToAccelerationStructureKHR
-> HS_vkCopyMemoryToAccelerationStructureKHR
unwrapVkCopyMemoryToAccelerationStructureKHRSafe

    {-# INLINE unwrapVkProcPtrSafe #-}

pattern VkWriteAccelerationStructuresPropertiesKHR :: CString

pattern $bVkWriteAccelerationStructuresPropertiesKHR :: CString
$mVkWriteAccelerationStructuresPropertiesKHR :: forall {r}. CString -> (Void# -> r) -> (Void# -> r) -> r
VkWriteAccelerationStructuresPropertiesKHR <-
        (is_VkWriteAccelerationStructuresPropertiesKHR -> True)
  where
    VkWriteAccelerationStructuresPropertiesKHR
      = CString
_VkWriteAccelerationStructuresPropertiesKHR

{-# INLINE _VkWriteAccelerationStructuresPropertiesKHR #-}

_VkWriteAccelerationStructuresPropertiesKHR :: CString
_VkWriteAccelerationStructuresPropertiesKHR :: CString
_VkWriteAccelerationStructuresPropertiesKHR
  = Addr# -> CString
forall a. Addr# -> Ptr a
Ptr Addr#
"vkWriteAccelerationStructuresPropertiesKHR\NUL"#

{-# INLINE is_VkWriteAccelerationStructuresPropertiesKHR #-}

is_VkWriteAccelerationStructuresPropertiesKHR :: CString -> Bool
is_VkWriteAccelerationStructuresPropertiesKHR :: CString -> Bool
is_VkWriteAccelerationStructuresPropertiesKHR
  = (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
_VkWriteAccelerationStructuresPropertiesKHR

type VkWriteAccelerationStructuresPropertiesKHR =
     "vkWriteAccelerationStructuresPropertiesKHR"

-- | Success codes: 'VK_SUCCESS'.
--
--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
--
--   > VkResult vkWriteAccelerationStructuresPropertiesKHR
--   >     ( VkDevice device
--   >     , uint32_t accelerationStructureCount
--   >     , const VkAccelerationStructureKHR* pAccelerationStructures
--   >     , VkQueryType  queryType
--   >     , size_t       dataSize
--   >     , void* pData
--   >     , size_t stride
--   >     )
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkWriteAccelerationStructuresPropertiesKHR vkWriteAccelerationStructuresPropertiesKHR registry at www.khronos.org>
type HS_vkWriteAccelerationStructuresPropertiesKHR =
     VkDevice -- ^ device
              ->
       Word32 -- ^ accelerationStructureCount
              ->
         Ptr VkAccelerationStructureKHR -- ^ pAccelerationStructures
                                        ->
           VkQueryType -- ^ queryType
                       -> CSize -- ^ dataSize
                                -> Ptr Void -- ^ pData
                                            -> CSize -- ^ stride
                                                     -> IO VkResult

type PFN_vkWriteAccelerationStructuresPropertiesKHR =
     FunPtr HS_vkWriteAccelerationStructuresPropertiesKHR

foreign import ccall unsafe "dynamic"
               unwrapVkWriteAccelerationStructuresPropertiesKHRUnsafe ::
               PFN_vkWriteAccelerationStructuresPropertiesKHR ->
                 HS_vkWriteAccelerationStructuresPropertiesKHR

foreign import ccall safe "dynamic"
               unwrapVkWriteAccelerationStructuresPropertiesKHRSafe ::
               PFN_vkWriteAccelerationStructuresPropertiesKHR ->
                 HS_vkWriteAccelerationStructuresPropertiesKHR

instance VulkanProc "vkWriteAccelerationStructuresPropertiesKHR"
         where
    type VkProcType "vkWriteAccelerationStructuresPropertiesKHR" =
         HS_vkWriteAccelerationStructuresPropertiesKHR
    vkProcSymbol :: CString
vkProcSymbol = CString
_VkWriteAccelerationStructuresPropertiesKHR

    {-# INLINE vkProcSymbol #-}
    unwrapVkProcPtrUnsafe :: FunPtr (VkProcType "vkWriteAccelerationStructuresPropertiesKHR")
-> VkProcType "vkWriteAccelerationStructuresPropertiesKHR"
unwrapVkProcPtrUnsafe
      = FunPtr (VkProcType "vkWriteAccelerationStructuresPropertiesKHR")
-> VkProcType "vkWriteAccelerationStructuresPropertiesKHR"
PFN_vkWriteAccelerationStructuresPropertiesKHR
-> HS_vkWriteAccelerationStructuresPropertiesKHR
unwrapVkWriteAccelerationStructuresPropertiesKHRUnsafe

    {-# INLINE unwrapVkProcPtrUnsafe #-}
    unwrapVkProcPtrSafe :: FunPtr (VkProcType "vkWriteAccelerationStructuresPropertiesKHR")
-> VkProcType "vkWriteAccelerationStructuresPropertiesKHR"
unwrapVkProcPtrSafe
      = FunPtr (VkProcType "vkWriteAccelerationStructuresPropertiesKHR")
-> VkProcType "vkWriteAccelerationStructuresPropertiesKHR"
PFN_vkWriteAccelerationStructuresPropertiesKHR
-> HS_vkWriteAccelerationStructuresPropertiesKHR
unwrapVkWriteAccelerationStructuresPropertiesKHRSafe

    {-# INLINE unwrapVkProcPtrSafe #-}

pattern VkCmdCopyAccelerationStructureKHR :: CString

pattern $bVkCmdCopyAccelerationStructureKHR :: CString
$mVkCmdCopyAccelerationStructureKHR :: forall {r}. CString -> (Void# -> r) -> (Void# -> r) -> r
VkCmdCopyAccelerationStructureKHR <-
        (is_VkCmdCopyAccelerationStructureKHR -> True)
  where
    VkCmdCopyAccelerationStructureKHR
      = CString
_VkCmdCopyAccelerationStructureKHR

{-# INLINE _VkCmdCopyAccelerationStructureKHR #-}

_VkCmdCopyAccelerationStructureKHR :: CString
_VkCmdCopyAccelerationStructureKHR :: CString
_VkCmdCopyAccelerationStructureKHR
  = Addr# -> CString
forall a. Addr# -> Ptr a
Ptr Addr#
"vkCmdCopyAccelerationStructureKHR\NUL"#

{-# INLINE is_VkCmdCopyAccelerationStructureKHR #-}

is_VkCmdCopyAccelerationStructureKHR :: CString -> Bool
is_VkCmdCopyAccelerationStructureKHR :: CString -> Bool
is_VkCmdCopyAccelerationStructureKHR
  = (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
_VkCmdCopyAccelerationStructureKHR

type VkCmdCopyAccelerationStructureKHR =
     "vkCmdCopyAccelerationStructureKHR"

-- | Queues: 'compute'.
--
--   Renderpass: @outside@
--
--   > void vkCmdCopyAccelerationStructureKHR
--   >     ( VkCommandBuffer commandBuffer
--   >     , const VkCopyAccelerationStructureInfoKHR* pInfo
--   >     )
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdCopyAccelerationStructureKHR vkCmdCopyAccelerationStructureKHR registry at www.khronos.org>
type HS_vkCmdCopyAccelerationStructureKHR =
     VkCommandBuffer -- ^ commandBuffer
                     -> Ptr VkCopyAccelerationStructureInfoKHR -- ^ pInfo
                                                               -> IO ()

type PFN_vkCmdCopyAccelerationStructureKHR =
     FunPtr HS_vkCmdCopyAccelerationStructureKHR

foreign import ccall unsafe "dynamic"
               unwrapVkCmdCopyAccelerationStructureKHRUnsafe ::
               PFN_vkCmdCopyAccelerationStructureKHR ->
                 HS_vkCmdCopyAccelerationStructureKHR

foreign import ccall safe "dynamic"
               unwrapVkCmdCopyAccelerationStructureKHRSafe ::
               PFN_vkCmdCopyAccelerationStructureKHR ->
                 HS_vkCmdCopyAccelerationStructureKHR

instance VulkanProc "vkCmdCopyAccelerationStructureKHR" where
    type VkProcType "vkCmdCopyAccelerationStructureKHR" =
         HS_vkCmdCopyAccelerationStructureKHR
    vkProcSymbol :: CString
vkProcSymbol = CString
_VkCmdCopyAccelerationStructureKHR

    {-# INLINE vkProcSymbol #-}
    unwrapVkProcPtrUnsafe :: FunPtr (VkProcType "vkCmdCopyAccelerationStructureKHR")
-> VkProcType "vkCmdCopyAccelerationStructureKHR"
unwrapVkProcPtrUnsafe
      = FunPtr (VkProcType "vkCmdCopyAccelerationStructureKHR")
-> VkProcType "vkCmdCopyAccelerationStructureKHR"
PFN_vkCmdCopyAccelerationStructureKHR
-> HS_vkCmdCopyAccelerationStructureKHR
unwrapVkCmdCopyAccelerationStructureKHRUnsafe

    {-# INLINE unwrapVkProcPtrUnsafe #-}
    unwrapVkProcPtrSafe :: FunPtr (VkProcType "vkCmdCopyAccelerationStructureKHR")
-> VkProcType "vkCmdCopyAccelerationStructureKHR"
unwrapVkProcPtrSafe = FunPtr (VkProcType "vkCmdCopyAccelerationStructureKHR")
-> VkProcType "vkCmdCopyAccelerationStructureKHR"
PFN_vkCmdCopyAccelerationStructureKHR
-> HS_vkCmdCopyAccelerationStructureKHR
unwrapVkCmdCopyAccelerationStructureKHRSafe

    {-# INLINE unwrapVkProcPtrSafe #-}

pattern VkCmdCopyAccelerationStructureToMemoryKHR :: CString

pattern $bVkCmdCopyAccelerationStructureToMemoryKHR :: CString
$mVkCmdCopyAccelerationStructureToMemoryKHR :: forall {r}. CString -> (Void# -> r) -> (Void# -> r) -> r
VkCmdCopyAccelerationStructureToMemoryKHR <-
        (is_VkCmdCopyAccelerationStructureToMemoryKHR -> True)
  where
    VkCmdCopyAccelerationStructureToMemoryKHR
      = CString
_VkCmdCopyAccelerationStructureToMemoryKHR

{-# INLINE _VkCmdCopyAccelerationStructureToMemoryKHR #-}

_VkCmdCopyAccelerationStructureToMemoryKHR :: CString
_VkCmdCopyAccelerationStructureToMemoryKHR :: CString
_VkCmdCopyAccelerationStructureToMemoryKHR
  = Addr# -> CString
forall a. Addr# -> Ptr a
Ptr Addr#
"vkCmdCopyAccelerationStructureToMemoryKHR\NUL"#

{-# INLINE is_VkCmdCopyAccelerationStructureToMemoryKHR #-}

is_VkCmdCopyAccelerationStructureToMemoryKHR :: CString -> Bool
is_VkCmdCopyAccelerationStructureToMemoryKHR :: CString -> Bool
is_VkCmdCopyAccelerationStructureToMemoryKHR
  = (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
_VkCmdCopyAccelerationStructureToMemoryKHR

type VkCmdCopyAccelerationStructureToMemoryKHR =
     "vkCmdCopyAccelerationStructureToMemoryKHR"

-- | Queues: 'compute'.
--
--   Renderpass: @outside@
--
--   > void vkCmdCopyAccelerationStructureToMemoryKHR
--   >     ( VkCommandBuffer commandBuffer
--   >     , const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo
--   >     )
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdCopyAccelerationStructureToMemoryKHR vkCmdCopyAccelerationStructureToMemoryKHR registry at www.khronos.org>
type HS_vkCmdCopyAccelerationStructureToMemoryKHR =
     VkCommandBuffer -- ^ commandBuffer
                     ->
       Ptr VkCopyAccelerationStructureToMemoryInfoKHR -- ^ pInfo
                                                      -> IO ()

type PFN_vkCmdCopyAccelerationStructureToMemoryKHR =
     FunPtr HS_vkCmdCopyAccelerationStructureToMemoryKHR

foreign import ccall unsafe "dynamic"
               unwrapVkCmdCopyAccelerationStructureToMemoryKHRUnsafe ::
               PFN_vkCmdCopyAccelerationStructureToMemoryKHR ->
                 HS_vkCmdCopyAccelerationStructureToMemoryKHR

foreign import ccall safe "dynamic"
               unwrapVkCmdCopyAccelerationStructureToMemoryKHRSafe ::
               PFN_vkCmdCopyAccelerationStructureToMemoryKHR ->
                 HS_vkCmdCopyAccelerationStructureToMemoryKHR

instance VulkanProc "vkCmdCopyAccelerationStructureToMemoryKHR"
         where
    type VkProcType "vkCmdCopyAccelerationStructureToMemoryKHR" =
         HS_vkCmdCopyAccelerationStructureToMemoryKHR
    vkProcSymbol :: CString
vkProcSymbol = CString
_VkCmdCopyAccelerationStructureToMemoryKHR

    {-# INLINE vkProcSymbol #-}
    unwrapVkProcPtrUnsafe :: FunPtr (VkProcType "vkCmdCopyAccelerationStructureToMemoryKHR")
-> VkProcType "vkCmdCopyAccelerationStructureToMemoryKHR"
unwrapVkProcPtrUnsafe
      = FunPtr (VkProcType "vkCmdCopyAccelerationStructureToMemoryKHR")
-> VkProcType "vkCmdCopyAccelerationStructureToMemoryKHR"
PFN_vkCmdCopyAccelerationStructureToMemoryKHR
-> HS_vkCmdCopyAccelerationStructureToMemoryKHR
unwrapVkCmdCopyAccelerationStructureToMemoryKHRUnsafe

    {-# INLINE unwrapVkProcPtrUnsafe #-}
    unwrapVkProcPtrSafe :: FunPtr (VkProcType "vkCmdCopyAccelerationStructureToMemoryKHR")
-> VkProcType "vkCmdCopyAccelerationStructureToMemoryKHR"
unwrapVkProcPtrSafe
      = FunPtr (VkProcType "vkCmdCopyAccelerationStructureToMemoryKHR")
-> VkProcType "vkCmdCopyAccelerationStructureToMemoryKHR"
PFN_vkCmdCopyAccelerationStructureToMemoryKHR
-> HS_vkCmdCopyAccelerationStructureToMemoryKHR
unwrapVkCmdCopyAccelerationStructureToMemoryKHRSafe

    {-# INLINE unwrapVkProcPtrSafe #-}

pattern VkCmdCopyMemoryToAccelerationStructureKHR :: CString

pattern $bVkCmdCopyMemoryToAccelerationStructureKHR :: CString
$mVkCmdCopyMemoryToAccelerationStructureKHR :: forall {r}. CString -> (Void# -> r) -> (Void# -> r) -> r
VkCmdCopyMemoryToAccelerationStructureKHR <-
        (is_VkCmdCopyMemoryToAccelerationStructureKHR -> True)
  where
    VkCmdCopyMemoryToAccelerationStructureKHR
      = CString
_VkCmdCopyMemoryToAccelerationStructureKHR

{-# INLINE _VkCmdCopyMemoryToAccelerationStructureKHR #-}

_VkCmdCopyMemoryToAccelerationStructureKHR :: CString
_VkCmdCopyMemoryToAccelerationStructureKHR :: CString
_VkCmdCopyMemoryToAccelerationStructureKHR
  = Addr# -> CString
forall a. Addr# -> Ptr a
Ptr Addr#
"vkCmdCopyMemoryToAccelerationStructureKHR\NUL"#

{-# INLINE is_VkCmdCopyMemoryToAccelerationStructureKHR #-}

is_VkCmdCopyMemoryToAccelerationStructureKHR :: CString -> Bool
is_VkCmdCopyMemoryToAccelerationStructureKHR :: CString -> Bool
is_VkCmdCopyMemoryToAccelerationStructureKHR
  = (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
_VkCmdCopyMemoryToAccelerationStructureKHR

type VkCmdCopyMemoryToAccelerationStructureKHR =
     "vkCmdCopyMemoryToAccelerationStructureKHR"

-- | Queues: 'compute'.
--
--   Renderpass: @outside@
--
--   > void vkCmdCopyMemoryToAccelerationStructureKHR
--   >     ( VkCommandBuffer commandBuffer
--   >     , const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo
--   >     )
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdCopyMemoryToAccelerationStructureKHR vkCmdCopyMemoryToAccelerationStructureKHR registry at www.khronos.org>
type HS_vkCmdCopyMemoryToAccelerationStructureKHR =
     VkCommandBuffer -- ^ commandBuffer
                     ->
       Ptr VkCopyMemoryToAccelerationStructureInfoKHR -- ^ pInfo
                                                      -> IO ()

type PFN_vkCmdCopyMemoryToAccelerationStructureKHR =
     FunPtr HS_vkCmdCopyMemoryToAccelerationStructureKHR

foreign import ccall unsafe "dynamic"
               unwrapVkCmdCopyMemoryToAccelerationStructureKHRUnsafe ::
               PFN_vkCmdCopyMemoryToAccelerationStructureKHR ->
                 HS_vkCmdCopyMemoryToAccelerationStructureKHR

foreign import ccall safe "dynamic"
               unwrapVkCmdCopyMemoryToAccelerationStructureKHRSafe ::
               PFN_vkCmdCopyMemoryToAccelerationStructureKHR ->
                 HS_vkCmdCopyMemoryToAccelerationStructureKHR

instance VulkanProc "vkCmdCopyMemoryToAccelerationStructureKHR"
         where
    type VkProcType "vkCmdCopyMemoryToAccelerationStructureKHR" =
         HS_vkCmdCopyMemoryToAccelerationStructureKHR
    vkProcSymbol :: CString
vkProcSymbol = CString
_VkCmdCopyMemoryToAccelerationStructureKHR

    {-# INLINE vkProcSymbol #-}
    unwrapVkProcPtrUnsafe :: FunPtr (VkProcType "vkCmdCopyMemoryToAccelerationStructureKHR")
-> VkProcType "vkCmdCopyMemoryToAccelerationStructureKHR"
unwrapVkProcPtrUnsafe
      = FunPtr (VkProcType "vkCmdCopyMemoryToAccelerationStructureKHR")
-> VkProcType "vkCmdCopyMemoryToAccelerationStructureKHR"
PFN_vkCmdCopyMemoryToAccelerationStructureKHR
-> HS_vkCmdCopyMemoryToAccelerationStructureKHR
unwrapVkCmdCopyMemoryToAccelerationStructureKHRUnsafe

    {-# INLINE unwrapVkProcPtrUnsafe #-}
    unwrapVkProcPtrSafe :: FunPtr (VkProcType "vkCmdCopyMemoryToAccelerationStructureKHR")
-> VkProcType "vkCmdCopyMemoryToAccelerationStructureKHR"
unwrapVkProcPtrSafe
      = FunPtr (VkProcType "vkCmdCopyMemoryToAccelerationStructureKHR")
-> VkProcType "vkCmdCopyMemoryToAccelerationStructureKHR"
PFN_vkCmdCopyMemoryToAccelerationStructureKHR
-> HS_vkCmdCopyMemoryToAccelerationStructureKHR
unwrapVkCmdCopyMemoryToAccelerationStructureKHRSafe

    {-# INLINE unwrapVkProcPtrSafe #-}

pattern VkCmdTraceRaysKHR :: CString

pattern $bVkCmdTraceRaysKHR :: CString
$mVkCmdTraceRaysKHR :: forall {r}. CString -> (Void# -> r) -> (Void# -> r) -> r
VkCmdTraceRaysKHR <- (is_VkCmdTraceRaysKHR -> True)
  where
    VkCmdTraceRaysKHR = CString
_VkCmdTraceRaysKHR

{-# INLINE _VkCmdTraceRaysKHR #-}

_VkCmdTraceRaysKHR :: CString
_VkCmdTraceRaysKHR :: CString
_VkCmdTraceRaysKHR = Addr# -> CString
forall a. Addr# -> Ptr a
Ptr Addr#
"vkCmdTraceRaysKHR\NUL"#

{-# INLINE is_VkCmdTraceRaysKHR #-}

is_VkCmdTraceRaysKHR :: CString -> Bool
is_VkCmdTraceRaysKHR :: CString -> Bool
is_VkCmdTraceRaysKHR = (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
_VkCmdTraceRaysKHR

type VkCmdTraceRaysKHR = "vkCmdTraceRaysKHR"

-- | Queues: 'compute'.
--
--   Renderpass: @outside@
--
--   > void vkCmdTraceRaysKHR
--   >     ( VkCommandBuffer commandBuffer
--   >     , const VkStridedBufferRegionKHR* pRaygenShaderBindingTable
--   >     , const VkStridedBufferRegionKHR* pMissShaderBindingTable
--   >     , const VkStridedBufferRegionKHR* pHitShaderBindingTable
--   >     , const VkStridedBufferRegionKHR* pCallableShaderBindingTable
--   >     , uint32_t width
--   >     , uint32_t height
--   >     , uint32_t depth
--   >     )
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdTraceRaysKHR vkCmdTraceRaysKHR registry at www.khronos.org>
type HS_vkCmdTraceRaysKHR =
     VkCommandBuffer -- ^ commandBuffer
                     ->
       Ptr VkStridedBufferRegionKHR -- ^ pRaygenShaderBindingTable
                                    ->
         Ptr VkStridedBufferRegionKHR -- ^ pMissShaderBindingTable
                                      ->
           Ptr VkStridedBufferRegionKHR -- ^ pHitShaderBindingTable
                                        ->
             Ptr VkStridedBufferRegionKHR -- ^ pCallableShaderBindingTable
                                          -> Word32 -- ^ width
                                                    -> Word32 -- ^ height
                                                              -> Word32 -- ^ depth
                                                                        -> IO ()

type PFN_vkCmdTraceRaysKHR = FunPtr HS_vkCmdTraceRaysKHR

foreign import ccall unsafe "dynamic" unwrapVkCmdTraceRaysKHRUnsafe
               :: PFN_vkCmdTraceRaysKHR -> HS_vkCmdTraceRaysKHR

foreign import ccall safe "dynamic" unwrapVkCmdTraceRaysKHRSafe ::
               PFN_vkCmdTraceRaysKHR -> HS_vkCmdTraceRaysKHR

instance VulkanProc "vkCmdTraceRaysKHR" where
    type VkProcType "vkCmdTraceRaysKHR" = HS_vkCmdTraceRaysKHR
    vkProcSymbol :: CString
vkProcSymbol = CString
_VkCmdTraceRaysKHR

    {-# INLINE vkProcSymbol #-}
    unwrapVkProcPtrUnsafe :: FunPtr (VkProcType "vkCmdTraceRaysKHR")
-> VkProcType "vkCmdTraceRaysKHR"
unwrapVkProcPtrUnsafe = FunPtr (VkProcType "vkCmdTraceRaysKHR")
-> VkProcType "vkCmdTraceRaysKHR"
PFN_vkCmdTraceRaysKHR -> HS_vkCmdTraceRaysKHR
unwrapVkCmdTraceRaysKHRUnsafe

    {-# INLINE unwrapVkProcPtrUnsafe #-}
    unwrapVkProcPtrSafe :: FunPtr (VkProcType "vkCmdTraceRaysKHR")
-> VkProcType "vkCmdTraceRaysKHR"
unwrapVkProcPtrSafe = FunPtr (VkProcType "vkCmdTraceRaysKHR")
-> VkProcType "vkCmdTraceRaysKHR"
PFN_vkCmdTraceRaysKHR -> HS_vkCmdTraceRaysKHR
unwrapVkCmdTraceRaysKHRSafe

    {-# INLINE unwrapVkProcPtrSafe #-}

pattern VkCreateRayTracingPipelinesKHR :: CString

pattern $bVkCreateRayTracingPipelinesKHR :: CString
$mVkCreateRayTracingPipelinesKHR :: forall {r}. CString -> (Void# -> r) -> (Void# -> r) -> r
VkCreateRayTracingPipelinesKHR <-
        (is_VkCreateRayTracingPipelinesKHR -> True)
  where
    VkCreateRayTracingPipelinesKHR = CString
_VkCreateRayTracingPipelinesKHR

{-# INLINE _VkCreateRayTracingPipelinesKHR #-}

_VkCreateRayTracingPipelinesKHR :: CString
_VkCreateRayTracingPipelinesKHR :: CString
_VkCreateRayTracingPipelinesKHR
  = Addr# -> CString
forall a. Addr# -> Ptr a
Ptr Addr#
"vkCreateRayTracingPipelinesKHR\NUL"#

{-# INLINE is_VkCreateRayTracingPipelinesKHR #-}

is_VkCreateRayTracingPipelinesKHR :: CString -> Bool
is_VkCreateRayTracingPipelinesKHR :: CString -> Bool
is_VkCreateRayTracingPipelinesKHR
  = (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
_VkCreateRayTracingPipelinesKHR

type VkCreateRayTracingPipelinesKHR =
     "vkCreateRayTracingPipelinesKHR"

-- | Success codes: 'VK_SUCCESS', 'VK_OPERATION_DEFERRED_KHR', 'VK_OPERATION_NOT_DEFERRED_KHR', 'VK_PIPELINE_COMPILE_REQUIRED_EXT'.
--
--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS'.
--
--   > VkResult vkCreateRayTracingPipelinesKHR
--   >     ( VkDevice device
--   >     , VkPipelineCache pipelineCache
--   >     , uint32_t createInfoCount
--   >     , const VkRayTracingPipelineCreateInfoKHR* pCreateInfos
--   >     , const VkAllocationCallbacks* pAllocator
--   >     , VkPipeline* pPipelines
--   >     )
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCreateRayTracingPipelinesKHR vkCreateRayTracingPipelinesKHR registry at www.khronos.org>
type HS_vkCreateRayTracingPipelinesKHR =
     VkDevice -- ^ device
              ->
       VkPipelineCache -- ^ pipelineCache
                       ->
         Word32 -- ^ createInfoCount
                ->
           Ptr VkRayTracingPipelineCreateInfoKHR -- ^ pCreateInfos
                                                 ->
             Ptr VkAllocationCallbacks -- ^ pAllocator
                                       -> Ptr VkPipeline -- ^ pPipelines
                                                         -> IO VkResult

type PFN_vkCreateRayTracingPipelinesKHR =
     FunPtr HS_vkCreateRayTracingPipelinesKHR

foreign import ccall unsafe "dynamic"
               unwrapVkCreateRayTracingPipelinesKHRUnsafe ::
               PFN_vkCreateRayTracingPipelinesKHR ->
                 HS_vkCreateRayTracingPipelinesKHR

foreign import ccall safe "dynamic"
               unwrapVkCreateRayTracingPipelinesKHRSafe ::
               PFN_vkCreateRayTracingPipelinesKHR ->
                 HS_vkCreateRayTracingPipelinesKHR

instance VulkanProc "vkCreateRayTracingPipelinesKHR" where
    type VkProcType "vkCreateRayTracingPipelinesKHR" =
         HS_vkCreateRayTracingPipelinesKHR
    vkProcSymbol :: CString
vkProcSymbol = CString
_VkCreateRayTracingPipelinesKHR

    {-# INLINE vkProcSymbol #-}
    unwrapVkProcPtrUnsafe :: FunPtr (VkProcType "vkCreateRayTracingPipelinesKHR")
-> VkProcType "vkCreateRayTracingPipelinesKHR"
unwrapVkProcPtrUnsafe = FunPtr (VkProcType "vkCreateRayTracingPipelinesKHR")
-> VkProcType "vkCreateRayTracingPipelinesKHR"
PFN_vkCreateRayTracingPipelinesKHR
-> HS_vkCreateRayTracingPipelinesKHR
unwrapVkCreateRayTracingPipelinesKHRUnsafe

    {-# INLINE unwrapVkProcPtrUnsafe #-}
    unwrapVkProcPtrSafe :: FunPtr (VkProcType "vkCreateRayTracingPipelinesKHR")
-> VkProcType "vkCreateRayTracingPipelinesKHR"
unwrapVkProcPtrSafe = FunPtr (VkProcType "vkCreateRayTracingPipelinesKHR")
-> VkProcType "vkCreateRayTracingPipelinesKHR"
PFN_vkCreateRayTracingPipelinesKHR
-> HS_vkCreateRayTracingPipelinesKHR
unwrapVkCreateRayTracingPipelinesKHRSafe

    {-# INLINE unwrapVkProcPtrSafe #-}

pattern VkGetRayTracingShaderGroupHandlesKHR :: CString

pattern $bVkGetRayTracingShaderGroupHandlesKHR :: CString
$mVkGetRayTracingShaderGroupHandlesKHR :: forall {r}. CString -> (Void# -> r) -> (Void# -> r) -> r
VkGetRayTracingShaderGroupHandlesKHR <-
        (is_VkGetRayTracingShaderGroupHandlesKHR -> True)
  where
    VkGetRayTracingShaderGroupHandlesKHR
      = CString
_VkGetRayTracingShaderGroupHandlesKHR

{-# INLINE _VkGetRayTracingShaderGroupHandlesKHR #-}

_VkGetRayTracingShaderGroupHandlesKHR :: CString
_VkGetRayTracingShaderGroupHandlesKHR :: CString
_VkGetRayTracingShaderGroupHandlesKHR
  = Addr# -> CString
forall a. Addr# -> Ptr a
Ptr Addr#
"vkGetRayTracingShaderGroupHandlesKHR\NUL"#

{-# INLINE is_VkGetRayTracingShaderGroupHandlesKHR #-}

is_VkGetRayTracingShaderGroupHandlesKHR :: CString -> Bool
is_VkGetRayTracingShaderGroupHandlesKHR :: CString -> Bool
is_VkGetRayTracingShaderGroupHandlesKHR
  = (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
_VkGetRayTracingShaderGroupHandlesKHR

type VkGetRayTracingShaderGroupHandlesKHR =
     "vkGetRayTracingShaderGroupHandlesKHR"

-- | Success codes: 'VK_SUCCESS'.
--
--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
--
--   > VkResult vkGetRayTracingShaderGroupHandlesKHR
--   >     ( VkDevice device
--   >     , VkPipeline pipeline
--   >     , uint32_t firstGroup
--   >     , uint32_t groupCount
--   >     , size_t dataSize
--   >     , void* pData
--   >     )
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkGetRayTracingShaderGroupHandlesKHR vkGetRayTracingShaderGroupHandlesKHR registry at www.khronos.org>
type HS_vkGetRayTracingShaderGroupHandlesKHR =
     VkDevice -- ^ device
              ->
       VkPipeline -- ^ pipeline
                  -> Word32 -- ^ firstGroup
                            -> Word32 -- ^ groupCount
                                      -> CSize -- ^ dataSize
                                               -> Ptr Void -- ^ pData
                                                           -> IO VkResult

type PFN_vkGetRayTracingShaderGroupHandlesKHR =
     FunPtr HS_vkGetRayTracingShaderGroupHandlesKHR

foreign import ccall unsafe "dynamic"
               unwrapVkGetRayTracingShaderGroupHandlesKHRUnsafe ::
               PFN_vkGetRayTracingShaderGroupHandlesKHR ->
                 HS_vkGetRayTracingShaderGroupHandlesKHR

foreign import ccall safe "dynamic"
               unwrapVkGetRayTracingShaderGroupHandlesKHRSafe ::
               PFN_vkGetRayTracingShaderGroupHandlesKHR ->
                 HS_vkGetRayTracingShaderGroupHandlesKHR

instance VulkanProc "vkGetRayTracingShaderGroupHandlesKHR" where
    type VkProcType "vkGetRayTracingShaderGroupHandlesKHR" =
         HS_vkGetRayTracingShaderGroupHandlesKHR
    vkProcSymbol :: CString
vkProcSymbol = CString
_VkGetRayTracingShaderGroupHandlesKHR

    {-# INLINE vkProcSymbol #-}
    unwrapVkProcPtrUnsafe :: FunPtr (VkProcType "vkGetRayTracingShaderGroupHandlesKHR")
-> VkProcType "vkGetRayTracingShaderGroupHandlesKHR"
unwrapVkProcPtrUnsafe
      = FunPtr (VkProcType "vkGetRayTracingShaderGroupHandlesKHR")
-> VkProcType "vkGetRayTracingShaderGroupHandlesKHR"
PFN_vkGetRayTracingShaderGroupHandlesKHR
-> HS_vkGetRayTracingShaderGroupHandlesKHR
unwrapVkGetRayTracingShaderGroupHandlesKHRUnsafe

    {-# INLINE unwrapVkProcPtrUnsafe #-}
    unwrapVkProcPtrSafe :: FunPtr (VkProcType "vkGetRayTracingShaderGroupHandlesKHR")
-> VkProcType "vkGetRayTracingShaderGroupHandlesKHR"
unwrapVkProcPtrSafe
      = FunPtr (VkProcType "vkGetRayTracingShaderGroupHandlesKHR")
-> VkProcType "vkGetRayTracingShaderGroupHandlesKHR"
PFN_vkGetRayTracingShaderGroupHandlesKHR
-> HS_vkGetRayTracingShaderGroupHandlesKHR
unwrapVkGetRayTracingShaderGroupHandlesKHRSafe

    {-# INLINE unwrapVkProcPtrSafe #-}

pattern VkGetAccelerationStructureDeviceAddressKHR :: CString

pattern $bVkGetAccelerationStructureDeviceAddressKHR :: CString
$mVkGetAccelerationStructureDeviceAddressKHR :: forall {r}. CString -> (Void# -> r) -> (Void# -> r) -> r
VkGetAccelerationStructureDeviceAddressKHR <-
        (is_VkGetAccelerationStructureDeviceAddressKHR -> True)
  where
    VkGetAccelerationStructureDeviceAddressKHR
      = CString
_VkGetAccelerationStructureDeviceAddressKHR

{-# INLINE _VkGetAccelerationStructureDeviceAddressKHR #-}

_VkGetAccelerationStructureDeviceAddressKHR :: CString
_VkGetAccelerationStructureDeviceAddressKHR :: CString
_VkGetAccelerationStructureDeviceAddressKHR
  = Addr# -> CString
forall a. Addr# -> Ptr a
Ptr Addr#
"vkGetAccelerationStructureDeviceAddressKHR\NUL"#

{-# INLINE is_VkGetAccelerationStructureDeviceAddressKHR #-}

is_VkGetAccelerationStructureDeviceAddressKHR :: CString -> Bool
is_VkGetAccelerationStructureDeviceAddressKHR :: CString -> Bool
is_VkGetAccelerationStructureDeviceAddressKHR
  = (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
_VkGetAccelerationStructureDeviceAddressKHR

type VkGetAccelerationStructureDeviceAddressKHR =
     "vkGetAccelerationStructureDeviceAddressKHR"

-- | > VkDeviceAddress vkGetAccelerationStructureDeviceAddressKHR
--   >     ( VkDevice device
--   >     , const VkAccelerationStructureDeviceAddressInfoKHR* pInfo
--   >     )
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkGetAccelerationStructureDeviceAddressKHR vkGetAccelerationStructureDeviceAddressKHR registry at www.khronos.org>
type HS_vkGetAccelerationStructureDeviceAddressKHR =
     VkDevice -- ^ device
              ->
       Ptr VkAccelerationStructureDeviceAddressInfoKHR -- ^ pInfo
                                                       ->
         IO VkDeviceAddress

type PFN_vkGetAccelerationStructureDeviceAddressKHR =
     FunPtr HS_vkGetAccelerationStructureDeviceAddressKHR

foreign import ccall unsafe "dynamic"
               unwrapVkGetAccelerationStructureDeviceAddressKHRUnsafe ::
               PFN_vkGetAccelerationStructureDeviceAddressKHR ->
                 HS_vkGetAccelerationStructureDeviceAddressKHR

foreign import ccall safe "dynamic"
               unwrapVkGetAccelerationStructureDeviceAddressKHRSafe ::
               PFN_vkGetAccelerationStructureDeviceAddressKHR ->
                 HS_vkGetAccelerationStructureDeviceAddressKHR

instance VulkanProc "vkGetAccelerationStructureDeviceAddressKHR"
         where
    type VkProcType "vkGetAccelerationStructureDeviceAddressKHR" =
         HS_vkGetAccelerationStructureDeviceAddressKHR
    vkProcSymbol :: CString
vkProcSymbol = CString
_VkGetAccelerationStructureDeviceAddressKHR

    {-# INLINE vkProcSymbol #-}
    unwrapVkProcPtrUnsafe :: FunPtr (VkProcType "vkGetAccelerationStructureDeviceAddressKHR")
-> VkProcType "vkGetAccelerationStructureDeviceAddressKHR"
unwrapVkProcPtrUnsafe
      = FunPtr (VkProcType "vkGetAccelerationStructureDeviceAddressKHR")
-> VkProcType "vkGetAccelerationStructureDeviceAddressKHR"
PFN_vkGetAccelerationStructureDeviceAddressKHR
-> HS_vkGetAccelerationStructureDeviceAddressKHR
unwrapVkGetAccelerationStructureDeviceAddressKHRUnsafe

    {-# INLINE unwrapVkProcPtrUnsafe #-}
    unwrapVkProcPtrSafe :: FunPtr (VkProcType "vkGetAccelerationStructureDeviceAddressKHR")
-> VkProcType "vkGetAccelerationStructureDeviceAddressKHR"
unwrapVkProcPtrSafe
      = FunPtr (VkProcType "vkGetAccelerationStructureDeviceAddressKHR")
-> VkProcType "vkGetAccelerationStructureDeviceAddressKHR"
PFN_vkGetAccelerationStructureDeviceAddressKHR
-> HS_vkGetAccelerationStructureDeviceAddressKHR
unwrapVkGetAccelerationStructureDeviceAddressKHRSafe

    {-# INLINE unwrapVkProcPtrSafe #-}

pattern VkGetRayTracingCaptureReplayShaderGroupHandlesKHR ::
        CString

pattern $bVkGetRayTracingCaptureReplayShaderGroupHandlesKHR :: CString
$mVkGetRayTracingCaptureReplayShaderGroupHandlesKHR :: forall {r}. CString -> (Void# -> r) -> (Void# -> r) -> r
VkGetRayTracingCaptureReplayShaderGroupHandlesKHR <-
        (is_VkGetRayTracingCaptureReplayShaderGroupHandlesKHR -> True)
  where
    VkGetRayTracingCaptureReplayShaderGroupHandlesKHR
      = CString
_VkGetRayTracingCaptureReplayShaderGroupHandlesKHR

{-# INLINE _VkGetRayTracingCaptureReplayShaderGroupHandlesKHR #-}

_VkGetRayTracingCaptureReplayShaderGroupHandlesKHR :: CString
_VkGetRayTracingCaptureReplayShaderGroupHandlesKHR :: CString
_VkGetRayTracingCaptureReplayShaderGroupHandlesKHR
  = Addr# -> CString
forall a. Addr# -> Ptr a
Ptr Addr#
"vkGetRayTracingCaptureReplayShaderGroupHandlesKHR\NUL"#

{-# INLINE is_VkGetRayTracingCaptureReplayShaderGroupHandlesKHR #-}

is_VkGetRayTracingCaptureReplayShaderGroupHandlesKHR ::
                                                     CString -> Bool
is_VkGetRayTracingCaptureReplayShaderGroupHandlesKHR :: CString -> Bool
is_VkGetRayTracingCaptureReplayShaderGroupHandlesKHR
  = (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
_VkGetRayTracingCaptureReplayShaderGroupHandlesKHR

type VkGetRayTracingCaptureReplayShaderGroupHandlesKHR =
     "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR"

-- | Success codes: 'VK_SUCCESS'.
--
--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
--
--   > VkResult vkGetRayTracingCaptureReplayShaderGroupHandlesKHR
--   >     ( VkDevice device
--   >     , VkPipeline pipeline
--   >     , uint32_t firstGroup
--   >     , uint32_t groupCount
--   >     , size_t dataSize
--   >     , void* pData
--   >     )
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkGetRayTracingCaptureReplayShaderGroupHandlesKHR vkGetRayTracingCaptureReplayShaderGroupHandlesKHR registry at www.khronos.org>
type HS_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR =
     VkDevice -- ^ device
              ->
       VkPipeline -- ^ pipeline
                  -> Word32 -- ^ firstGroup
                            -> Word32 -- ^ groupCount
                                      -> CSize -- ^ dataSize
                                               -> Ptr Void -- ^ pData
                                                           -> IO VkResult

type PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR =
     FunPtr HS_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR

foreign import ccall unsafe "dynamic"
               unwrapVkGetRayTracingCaptureReplayShaderGroupHandlesKHRUnsafe ::
               PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR ->
                 HS_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR

foreign import ccall safe "dynamic"
               unwrapVkGetRayTracingCaptureReplayShaderGroupHandlesKHRSafe ::
               PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR ->
                 HS_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR

instance VulkanProc
           "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR"
         where
    type VkProcType "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR"
         = HS_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR
    vkProcSymbol :: CString
vkProcSymbol = CString
_VkGetRayTracingCaptureReplayShaderGroupHandlesKHR

    {-# INLINE vkProcSymbol #-}
    unwrapVkProcPtrUnsafe :: FunPtr
  (VkProcType "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR")
-> VkProcType "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR"
unwrapVkProcPtrUnsafe
      = FunPtr
  (VkProcType "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR")
-> VkProcType "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR"
PFN_vkGetRayTracingShaderGroupHandlesKHR
-> HS_vkGetRayTracingShaderGroupHandlesKHR
unwrapVkGetRayTracingCaptureReplayShaderGroupHandlesKHRUnsafe

    {-# INLINE unwrapVkProcPtrUnsafe #-}
    unwrapVkProcPtrSafe :: FunPtr
  (VkProcType "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR")
-> VkProcType "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR"
unwrapVkProcPtrSafe
      = FunPtr
  (VkProcType "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR")
-> VkProcType "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR"
PFN_vkGetRayTracingShaderGroupHandlesKHR
-> HS_vkGetRayTracingShaderGroupHandlesKHR
unwrapVkGetRayTracingCaptureReplayShaderGroupHandlesKHRSafe

    {-# INLINE unwrapVkProcPtrSafe #-}

pattern VkCmdWriteAccelerationStructuresPropertiesKHR :: CString

pattern $bVkCmdWriteAccelerationStructuresPropertiesKHR :: CString
$mVkCmdWriteAccelerationStructuresPropertiesKHR :: forall {r}. CString -> (Void# -> r) -> (Void# -> r) -> r
VkCmdWriteAccelerationStructuresPropertiesKHR <-
        (is_VkCmdWriteAccelerationStructuresPropertiesKHR -> True)
  where
    VkCmdWriteAccelerationStructuresPropertiesKHR
      = CString
_VkCmdWriteAccelerationStructuresPropertiesKHR

{-# INLINE _VkCmdWriteAccelerationStructuresPropertiesKHR #-}

_VkCmdWriteAccelerationStructuresPropertiesKHR :: CString
_VkCmdWriteAccelerationStructuresPropertiesKHR :: CString
_VkCmdWriteAccelerationStructuresPropertiesKHR
  = Addr# -> CString
forall a. Addr# -> Ptr a
Ptr Addr#
"vkCmdWriteAccelerationStructuresPropertiesKHR\NUL"#

{-# INLINE is_VkCmdWriteAccelerationStructuresPropertiesKHR #-}

is_VkCmdWriteAccelerationStructuresPropertiesKHR :: CString -> Bool
is_VkCmdWriteAccelerationStructuresPropertiesKHR :: CString -> Bool
is_VkCmdWriteAccelerationStructuresPropertiesKHR
  = (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
_VkCmdWriteAccelerationStructuresPropertiesKHR

type VkCmdWriteAccelerationStructuresPropertiesKHR =
     "vkCmdWriteAccelerationStructuresPropertiesKHR"

-- | Queues: 'compute'.
--
--   Renderpass: @outside@
--
--   > void vkCmdWriteAccelerationStructuresPropertiesKHR
--   >     ( VkCommandBuffer commandBuffer
--   >     , uint32_t accelerationStructureCount
--   >     , const VkAccelerationStructureKHR* pAccelerationStructures
--   >     , VkQueryType queryType
--   >     , VkQueryPool queryPool
--   >     , uint32_t firstQuery
--   >     )
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdWriteAccelerationStructuresPropertiesKHR vkCmdWriteAccelerationStructuresPropertiesKHR registry at www.khronos.org>
type HS_vkCmdWriteAccelerationStructuresPropertiesKHR =
     VkCommandBuffer -- ^ commandBuffer
                     ->
       Word32 -- ^ accelerationStructureCount
              ->
         Ptr VkAccelerationStructureKHR -- ^ pAccelerationStructures
                                        ->
           VkQueryType -- ^ queryType
                       -> VkQueryPool -- ^ queryPool
                                      -> Word32 -- ^ firstQuery
                                                -> IO ()

type PFN_vkCmdWriteAccelerationStructuresPropertiesKHR =
     FunPtr HS_vkCmdWriteAccelerationStructuresPropertiesKHR

foreign import ccall unsafe "dynamic"
               unwrapVkCmdWriteAccelerationStructuresPropertiesKHRUnsafe ::
               PFN_vkCmdWriteAccelerationStructuresPropertiesKHR ->
                 HS_vkCmdWriteAccelerationStructuresPropertiesKHR

foreign import ccall safe "dynamic"
               unwrapVkCmdWriteAccelerationStructuresPropertiesKHRSafe ::
               PFN_vkCmdWriteAccelerationStructuresPropertiesKHR ->
                 HS_vkCmdWriteAccelerationStructuresPropertiesKHR

instance VulkanProc "vkCmdWriteAccelerationStructuresPropertiesKHR"
         where
    type VkProcType "vkCmdWriteAccelerationStructuresPropertiesKHR" =
         HS_vkCmdWriteAccelerationStructuresPropertiesKHR
    vkProcSymbol :: CString
vkProcSymbol = CString
_VkCmdWriteAccelerationStructuresPropertiesKHR

    {-# INLINE vkProcSymbol #-}
    unwrapVkProcPtrUnsafe :: FunPtr (VkProcType "vkCmdWriteAccelerationStructuresPropertiesKHR")
-> VkProcType "vkCmdWriteAccelerationStructuresPropertiesKHR"
unwrapVkProcPtrUnsafe
      = FunPtr (VkProcType "vkCmdWriteAccelerationStructuresPropertiesKHR")
-> VkProcType "vkCmdWriteAccelerationStructuresPropertiesKHR"
PFN_vkCmdWriteAccelerationStructuresPropertiesKHR
-> HS_vkCmdWriteAccelerationStructuresPropertiesKHR
unwrapVkCmdWriteAccelerationStructuresPropertiesKHRUnsafe

    {-# INLINE unwrapVkProcPtrUnsafe #-}
    unwrapVkProcPtrSafe :: FunPtr (VkProcType "vkCmdWriteAccelerationStructuresPropertiesKHR")
-> VkProcType "vkCmdWriteAccelerationStructuresPropertiesKHR"
unwrapVkProcPtrSafe
      = FunPtr (VkProcType "vkCmdWriteAccelerationStructuresPropertiesKHR")
-> VkProcType "vkCmdWriteAccelerationStructuresPropertiesKHR"
PFN_vkCmdWriteAccelerationStructuresPropertiesKHR
-> HS_vkCmdWriteAccelerationStructuresPropertiesKHR
unwrapVkCmdWriteAccelerationStructuresPropertiesKHRSafe

    {-# INLINE unwrapVkProcPtrSafe #-}

pattern VkCmdTraceRaysIndirectKHR :: CString

pattern $bVkCmdTraceRaysIndirectKHR :: CString
$mVkCmdTraceRaysIndirectKHR :: forall {r}. CString -> (Void# -> r) -> (Void# -> r) -> r
VkCmdTraceRaysIndirectKHR <-
        (is_VkCmdTraceRaysIndirectKHR -> True)
  where
    VkCmdTraceRaysIndirectKHR = CString
_VkCmdTraceRaysIndirectKHR

{-# INLINE _VkCmdTraceRaysIndirectKHR #-}

_VkCmdTraceRaysIndirectKHR :: CString
_VkCmdTraceRaysIndirectKHR :: CString
_VkCmdTraceRaysIndirectKHR = Addr# -> CString
forall a. Addr# -> Ptr a
Ptr Addr#
"vkCmdTraceRaysIndirectKHR\NUL"#

{-# INLINE is_VkCmdTraceRaysIndirectKHR #-}

is_VkCmdTraceRaysIndirectKHR :: CString -> Bool
is_VkCmdTraceRaysIndirectKHR :: CString -> Bool
is_VkCmdTraceRaysIndirectKHR
  = (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
_VkCmdTraceRaysIndirectKHR

type VkCmdTraceRaysIndirectKHR = "vkCmdTraceRaysIndirectKHR"

-- | Queues: 'compute'.
--
--   Renderpass: @outside@
--
--   > void vkCmdTraceRaysIndirectKHR
--   >     ( VkCommandBuffer commandBuffer
--   >     , const VkStridedBufferRegionKHR* pRaygenShaderBindingTable
--   >     , const VkStridedBufferRegionKHR* pMissShaderBindingTable
--   >     , const VkStridedBufferRegionKHR* pHitShaderBindingTable
--   >     , const VkStridedBufferRegionKHR* pCallableShaderBindingTable
--   >     , VkBuffer buffer
--   >     , VkDeviceSize offset
--   >     )
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdTraceRaysIndirectKHR vkCmdTraceRaysIndirectKHR registry at www.khronos.org>
type HS_vkCmdTraceRaysIndirectKHR =
     VkCommandBuffer -- ^ commandBuffer
                     ->
       Ptr VkStridedBufferRegionKHR -- ^ pRaygenShaderBindingTable
                                    ->
         Ptr VkStridedBufferRegionKHR -- ^ pMissShaderBindingTable
                                      ->
           Ptr VkStridedBufferRegionKHR -- ^ pHitShaderBindingTable
                                        ->
             Ptr VkStridedBufferRegionKHR -- ^ pCallableShaderBindingTable
                                          -> VkBuffer -- ^ buffer
                                                      -> VkDeviceSize -- ^ offset
                                                                      -> IO ()

type PFN_vkCmdTraceRaysIndirectKHR =
     FunPtr HS_vkCmdTraceRaysIndirectKHR

foreign import ccall unsafe "dynamic"
               unwrapVkCmdTraceRaysIndirectKHRUnsafe ::
               PFN_vkCmdTraceRaysIndirectKHR -> HS_vkCmdTraceRaysIndirectKHR

foreign import ccall safe "dynamic"
               unwrapVkCmdTraceRaysIndirectKHRSafe ::
               PFN_vkCmdTraceRaysIndirectKHR -> HS_vkCmdTraceRaysIndirectKHR

instance VulkanProc "vkCmdTraceRaysIndirectKHR" where
    type VkProcType "vkCmdTraceRaysIndirectKHR" =
         HS_vkCmdTraceRaysIndirectKHR
    vkProcSymbol :: CString
vkProcSymbol = CString
_VkCmdTraceRaysIndirectKHR

    {-# INLINE vkProcSymbol #-}
    unwrapVkProcPtrUnsafe :: FunPtr (VkProcType "vkCmdTraceRaysIndirectKHR")
-> VkProcType "vkCmdTraceRaysIndirectKHR"
unwrapVkProcPtrUnsafe = FunPtr (VkProcType "vkCmdTraceRaysIndirectKHR")
-> VkProcType "vkCmdTraceRaysIndirectKHR"
PFN_vkCmdTraceRaysIndirectKHR -> HS_vkCmdTraceRaysIndirectKHR
unwrapVkCmdTraceRaysIndirectKHRUnsafe

    {-# INLINE unwrapVkProcPtrUnsafe #-}
    unwrapVkProcPtrSafe :: FunPtr (VkProcType "vkCmdTraceRaysIndirectKHR")
-> VkProcType "vkCmdTraceRaysIndirectKHR"
unwrapVkProcPtrSafe = FunPtr (VkProcType "vkCmdTraceRaysIndirectKHR")
-> VkProcType "vkCmdTraceRaysIndirectKHR"
PFN_vkCmdTraceRaysIndirectKHR -> HS_vkCmdTraceRaysIndirectKHR
unwrapVkCmdTraceRaysIndirectKHRSafe

    {-# INLINE unwrapVkProcPtrSafe #-}

pattern VkGetDeviceAccelerationStructureCompatibilityKHR :: CString

pattern $bVkGetDeviceAccelerationStructureCompatibilityKHR :: CString
$mVkGetDeviceAccelerationStructureCompatibilityKHR :: forall {r}. CString -> (Void# -> r) -> (Void# -> r) -> r
VkGetDeviceAccelerationStructureCompatibilityKHR <-
        (is_VkGetDeviceAccelerationStructureCompatibilityKHR -> True)
  where
    VkGetDeviceAccelerationStructureCompatibilityKHR
      = CString
_VkGetDeviceAccelerationStructureCompatibilityKHR

{-# INLINE _VkGetDeviceAccelerationStructureCompatibilityKHR #-}

_VkGetDeviceAccelerationStructureCompatibilityKHR :: CString
_VkGetDeviceAccelerationStructureCompatibilityKHR :: CString
_VkGetDeviceAccelerationStructureCompatibilityKHR
  = Addr# -> CString
forall a. Addr# -> Ptr a
Ptr Addr#
"vkGetDeviceAccelerationStructureCompatibilityKHR\NUL"#

{-# INLINE is_VkGetDeviceAccelerationStructureCompatibilityKHR #-}

is_VkGetDeviceAccelerationStructureCompatibilityKHR ::
                                                    CString -> Bool
is_VkGetDeviceAccelerationStructureCompatibilityKHR :: CString -> Bool
is_VkGetDeviceAccelerationStructureCompatibilityKHR
  = (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
_VkGetDeviceAccelerationStructureCompatibilityKHR

type VkGetDeviceAccelerationStructureCompatibilityKHR =
     "vkGetDeviceAccelerationStructureCompatibilityKHR"

-- | Success codes: 'VK_SUCCESS'.
--
--   Error codes: 'VK_ERROR_INCOMPATIBLE_VERSION_KHR'.
--
--   > VkResult vkGetDeviceAccelerationStructureCompatibilityKHR
--   >     ( VkDevice device
--   >     , const VkAccelerationStructureVersionKHR* version
--   >     )
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkGetDeviceAccelerationStructureCompatibilityKHR vkGetDeviceAccelerationStructureCompatibilityKHR registry at www.khronos.org>
type HS_vkGetDeviceAccelerationStructureCompatibilityKHR =
     VkDevice -- ^ device
              -> Ptr VkAccelerationStructureVersionKHR -- ^ version
                                                       -> IO VkResult

type PFN_vkGetDeviceAccelerationStructureCompatibilityKHR =
     FunPtr HS_vkGetDeviceAccelerationStructureCompatibilityKHR

foreign import ccall unsafe "dynamic"
               unwrapVkGetDeviceAccelerationStructureCompatibilityKHRUnsafe ::
               PFN_vkGetDeviceAccelerationStructureCompatibilityKHR ->
                 HS_vkGetDeviceAccelerationStructureCompatibilityKHR

foreign import ccall safe "dynamic"
               unwrapVkGetDeviceAccelerationStructureCompatibilityKHRSafe ::
               PFN_vkGetDeviceAccelerationStructureCompatibilityKHR ->
                 HS_vkGetDeviceAccelerationStructureCompatibilityKHR

instance VulkanProc
           "vkGetDeviceAccelerationStructureCompatibilityKHR"
         where
    type VkProcType "vkGetDeviceAccelerationStructureCompatibilityKHR"
         = HS_vkGetDeviceAccelerationStructureCompatibilityKHR
    vkProcSymbol :: CString
vkProcSymbol = CString
_VkGetDeviceAccelerationStructureCompatibilityKHR

    {-# INLINE vkProcSymbol #-}
    unwrapVkProcPtrUnsafe :: FunPtr
  (VkProcType "vkGetDeviceAccelerationStructureCompatibilityKHR")
-> VkProcType "vkGetDeviceAccelerationStructureCompatibilityKHR"
unwrapVkProcPtrUnsafe
      = FunPtr
  (VkProcType "vkGetDeviceAccelerationStructureCompatibilityKHR")
-> VkProcType "vkGetDeviceAccelerationStructureCompatibilityKHR"
PFN_vkGetDeviceAccelerationStructureCompatibilityKHR
-> HS_vkGetDeviceAccelerationStructureCompatibilityKHR
unwrapVkGetDeviceAccelerationStructureCompatibilityKHRUnsafe

    {-# INLINE unwrapVkProcPtrUnsafe #-}
    unwrapVkProcPtrSafe :: FunPtr
  (VkProcType "vkGetDeviceAccelerationStructureCompatibilityKHR")
-> VkProcType "vkGetDeviceAccelerationStructureCompatibilityKHR"
unwrapVkProcPtrSafe
      = FunPtr
  (VkProcType "vkGetDeviceAccelerationStructureCompatibilityKHR")
-> VkProcType "vkGetDeviceAccelerationStructureCompatibilityKHR"
PFN_vkGetDeviceAccelerationStructureCompatibilityKHR
-> HS_vkGetDeviceAccelerationStructureCompatibilityKHR
unwrapVkGetDeviceAccelerationStructureCompatibilityKHRSafe

    {-# INLINE unwrapVkProcPtrSafe #-}

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

pattern $bVK_KHR_RAY_TRACING_SPEC_VERSION :: forall a. (Num a, Eq a) => a
$mVK_KHR_RAY_TRACING_SPEC_VERSION :: forall {r} {a}.
(Num a, Eq a) =>
a -> (Void# -> r) -> (Void# -> r) -> r
VK_KHR_RAY_TRACING_SPEC_VERSION = 8

type VK_KHR_RAY_TRACING_SPEC_VERSION = 8

pattern VK_KHR_RAY_TRACING_EXTENSION_NAME :: CString

pattern $bVK_KHR_RAY_TRACING_EXTENSION_NAME :: CString
$mVK_KHR_RAY_TRACING_EXTENSION_NAME :: forall {r}. CString -> (Void# -> r) -> (Void# -> r) -> r
VK_KHR_RAY_TRACING_EXTENSION_NAME <-
        (is_VK_KHR_RAY_TRACING_EXTENSION_NAME -> True)
  where
    VK_KHR_RAY_TRACING_EXTENSION_NAME
      = CString
_VK_KHR_RAY_TRACING_EXTENSION_NAME

{-# INLINE _VK_KHR_RAY_TRACING_EXTENSION_NAME #-}

_VK_KHR_RAY_TRACING_EXTENSION_NAME :: CString
_VK_KHR_RAY_TRACING_EXTENSION_NAME :: CString
_VK_KHR_RAY_TRACING_EXTENSION_NAME = Addr# -> CString
forall a. Addr# -> Ptr a
Ptr Addr#
"VK_KHR_ray_tracing\NUL"#

{-# INLINE is_VK_KHR_RAY_TRACING_EXTENSION_NAME #-}

is_VK_KHR_RAY_TRACING_EXTENSION_NAME :: CString -> Bool
is_VK_KHR_RAY_TRACING_EXTENSION_NAME :: CString -> Bool
is_VK_KHR_RAY_TRACING_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_RAY_TRACING_EXTENSION_NAME

type VK_KHR_RAY_TRACING_EXTENSION_NAME = "VK_KHR_ray_tracing"

pattern VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_KHR
        :: VkStructureType

pattern $bVK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_KHR :: VkStructureType
$mVK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_KHR :: forall {r}. VkStructureType -> (Void# -> r) -> (Void# -> r) -> r
VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_KHR
        = VkStructureType 1000165006

pattern VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR
        :: VkStructureType

pattern $bVK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR :: VkStructureType
$mVK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR :: forall {r}. VkStructureType -> (Void# -> r) -> (Void# -> r) -> r
VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR
        = VkStructureType 1000165007

pattern VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR
        :: VkStructureType

pattern $bVK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR :: VkStructureType
$mVK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR :: forall {r}. VkStructureType -> (Void# -> r) -> (Void# -> r) -> r
VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR
        = VkStructureType 1000150000

pattern VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_GEOMETRY_TYPE_INFO_KHR
        :: VkStructureType

pattern $bVK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_GEOMETRY_TYPE_INFO_KHR :: VkStructureType
$mVK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_GEOMETRY_TYPE_INFO_KHR :: forall {r}. VkStructureType -> (Void# -> r) -> (Void# -> r) -> r
VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_GEOMETRY_TYPE_INFO_KHR
        = VkStructureType 1000150001

pattern VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR
        :: VkStructureType

pattern $bVK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR :: VkStructureType
$mVK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR :: forall {r}. VkStructureType -> (Void# -> r) -> (Void# -> r) -> r
VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR
        = VkStructureType 1000150002

pattern VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR
        :: VkStructureType

pattern $bVK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR :: VkStructureType
$mVK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR :: forall {r}. VkStructureType -> (Void# -> r) -> (Void# -> r) -> r
VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR
        = VkStructureType 1000150003

pattern VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR
        :: VkStructureType

pattern $bVK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR :: VkStructureType
$mVK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR :: forall {r}. VkStructureType -> (Void# -> r) -> (Void# -> r) -> r
VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR
        = VkStructureType 1000150004

pattern VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR
        :: VkStructureType

pattern $bVK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR :: VkStructureType
$mVK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR :: forall {r}. VkStructureType -> (Void# -> r) -> (Void# -> r) -> r
VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR
        = VkStructureType 1000150005

pattern VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR ::
        VkStructureType

pattern $bVK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR :: VkStructureType
$mVK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR :: forall {r}. VkStructureType -> (Void# -> r) -> (Void# -> r) -> r
VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR =
        VkStructureType 1000150006

pattern VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_KHR
        :: VkStructureType

pattern $bVK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_KHR :: VkStructureType
$mVK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_KHR :: forall {r}. VkStructureType -> (Void# -> r) -> (Void# -> r) -> r
VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_KHR
        = VkStructureType 1000150008

pattern VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_KHR ::
        VkStructureType

pattern $bVK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_KHR :: VkStructureType
$mVK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_KHR :: forall {r}. VkStructureType -> (Void# -> r) -> (Void# -> r) -> r
VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_KHR =
        VkStructureType 1000150009

pattern VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR ::
        VkStructureType

pattern $bVK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR :: VkStructureType
$mVK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR :: forall {r}. VkStructureType -> (Void# -> r) -> (Void# -> r) -> r
VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR =
        VkStructureType 1000150010

pattern VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR
        :: VkStructureType

pattern $bVK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR :: VkStructureType
$mVK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR :: forall {r}. VkStructureType -> (Void# -> r) -> (Void# -> r) -> r
VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR
        = VkStructureType 1000150011

pattern VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR
        :: VkStructureType

pattern $bVK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR :: VkStructureType
$mVK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR :: forall {r}. VkStructureType -> (Void# -> r) -> (Void# -> r) -> r
VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR
        = VkStructureType 1000150012

pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_FEATURES_KHR
        :: VkStructureType

pattern $bVK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_FEATURES_KHR :: VkStructureType
$mVK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_FEATURES_KHR :: forall {r}. VkStructureType -> (Void# -> r) -> (Void# -> r) -> r
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_FEATURES_KHR
        = VkStructureType 1000150013

pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_KHR
        :: VkStructureType

pattern $bVK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_KHR :: VkStructureType
$mVK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_KHR :: forall {r}. VkStructureType -> (Void# -> r) -> (Void# -> r) -> r
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_KHR
        = VkStructureType 1000150014

pattern VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR ::
        VkStructureType

pattern $bVK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR :: VkStructureType
$mVK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR :: forall {r}. VkStructureType -> (Void# -> r) -> (Void# -> r) -> r
VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR =
        VkStructureType 1000150015

pattern VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR
        :: VkStructureType

pattern $bVK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR :: VkStructureType
$mVK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR :: forall {r}. VkStructureType -> (Void# -> r) -> (Void# -> r) -> r
VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR
        = VkStructureType 1000150016

pattern VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR ::
        VkStructureType

pattern $bVK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR :: VkStructureType
$mVK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR :: forall {r}. VkStructureType -> (Void# -> r) -> (Void# -> r) -> r
VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR =
        VkStructureType 1000150017

pattern VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR
        :: VkStructureType

pattern $bVK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR :: VkStructureType
$mVK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR :: forall {r}. VkStructureType -> (Void# -> r) -> (Void# -> r) -> r
VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR
        = VkStructureType 1000150018

-- | bitpos = @8@
pattern VK_SHADER_STAGE_RAYGEN_BIT_KHR :: VkShaderStageBitmask a

pattern $bVK_SHADER_STAGE_RAYGEN_BIT_KHR :: forall (a :: FlagType). VkShaderStageBitmask a
$mVK_SHADER_STAGE_RAYGEN_BIT_KHR :: forall {r} {a :: FlagType}.
VkShaderStageBitmask a -> (Void# -> r) -> (Void# -> r) -> r
VK_SHADER_STAGE_RAYGEN_BIT_KHR = VkShaderStageBitmask 256

-- | bitpos = @9@
pattern VK_SHADER_STAGE_ANY_HIT_BIT_KHR :: VkShaderStageBitmask a

pattern $bVK_SHADER_STAGE_ANY_HIT_BIT_KHR :: forall (a :: FlagType). VkShaderStageBitmask a
$mVK_SHADER_STAGE_ANY_HIT_BIT_KHR :: forall {r} {a :: FlagType}.
VkShaderStageBitmask a -> (Void# -> r) -> (Void# -> r) -> r
VK_SHADER_STAGE_ANY_HIT_BIT_KHR = VkShaderStageBitmask 512

-- | bitpos = @10@
pattern VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR ::
        VkShaderStageBitmask a

pattern $bVK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR :: forall (a :: FlagType). VkShaderStageBitmask a
$mVK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR :: forall {r} {a :: FlagType}.
VkShaderStageBitmask a -> (Void# -> r) -> (Void# -> r) -> r
VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR =
        VkShaderStageBitmask 1024

-- | bitpos = @11@
pattern VK_SHADER_STAGE_MISS_BIT_KHR :: VkShaderStageBitmask a

pattern $bVK_SHADER_STAGE_MISS_BIT_KHR :: forall (a :: FlagType). VkShaderStageBitmask a
$mVK_SHADER_STAGE_MISS_BIT_KHR :: forall {r} {a :: FlagType}.
VkShaderStageBitmask a -> (Void# -> r) -> (Void# -> r) -> r
VK_SHADER_STAGE_MISS_BIT_KHR = VkShaderStageBitmask 2048

-- | bitpos = @12@
pattern VK_SHADER_STAGE_INTERSECTION_BIT_KHR ::
        VkShaderStageBitmask a

pattern $bVK_SHADER_STAGE_INTERSECTION_BIT_KHR :: forall (a :: FlagType). VkShaderStageBitmask a
$mVK_SHADER_STAGE_INTERSECTION_BIT_KHR :: forall {r} {a :: FlagType}.
VkShaderStageBitmask a -> (Void# -> r) -> (Void# -> r) -> r
VK_SHADER_STAGE_INTERSECTION_BIT_KHR =
        VkShaderStageBitmask 4096

-- | bitpos = @13@
pattern VK_SHADER_STAGE_CALLABLE_BIT_KHR :: VkShaderStageBitmask a

pattern $bVK_SHADER_STAGE_CALLABLE_BIT_KHR :: forall (a :: FlagType). VkShaderStageBitmask a
$mVK_SHADER_STAGE_CALLABLE_BIT_KHR :: forall {r} {a :: FlagType}.
VkShaderStageBitmask a -> (Void# -> r) -> (Void# -> r) -> r
VK_SHADER_STAGE_CALLABLE_BIT_KHR =
        VkShaderStageBitmask 8192

-- | bitpos = @21@
pattern VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR ::
        VkPipelineStageBitmask a

pattern $bVK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR :: forall (a :: FlagType). VkPipelineStageBitmask a
$mVK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR :: forall {r} {a :: FlagType}.
VkPipelineStageBitmask a -> (Void# -> r) -> (Void# -> r) -> r
VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR =
        VkPipelineStageBitmask 2097152

-- | bitpos = @25@
pattern VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR ::
        VkPipelineStageBitmask a

pattern $bVK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR :: forall (a :: FlagType). VkPipelineStageBitmask a
$mVK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR :: forall {r} {a :: FlagType}.
VkPipelineStageBitmask a -> (Void# -> r) -> (Void# -> r) -> r
VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR =
        VkPipelineStageBitmask 33554432

-- | bitpos = @10@
pattern VK_BUFFER_USAGE_RAY_TRACING_BIT_KHR ::
        VkBufferUsageBitmask a

pattern $bVK_BUFFER_USAGE_RAY_TRACING_BIT_KHR :: forall (a :: FlagType). VkBufferUsageBitmask a
$mVK_BUFFER_USAGE_RAY_TRACING_BIT_KHR :: forall {r} {a :: FlagType}.
VkBufferUsageBitmask a -> (Void# -> r) -> (Void# -> r) -> r
VK_BUFFER_USAGE_RAY_TRACING_BIT_KHR =
        VkBufferUsageBitmask 1024

pattern VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR ::
        VkPipelineBindPoint

pattern $bVK_PIPELINE_BIND_POINT_RAY_TRACING_KHR :: VkPipelineBindPoint
$mVK_PIPELINE_BIND_POINT_RAY_TRACING_KHR :: forall {r}.
VkPipelineBindPoint -> (Void# -> r) -> (Void# -> r) -> r
VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR =
        VkPipelineBindPoint 1000165000

pattern VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR ::
        VkDescriptorType

pattern $bVK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR :: VkDescriptorType
$mVK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR :: forall {r}. VkDescriptorType -> (Void# -> r) -> (Void# -> r) -> r
VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR =
        VkDescriptorType 1000165000

-- | bitpos = @21@
pattern VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR ::
        VkAccessBitmask a

pattern $bVK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR :: forall (a :: FlagType). VkAccessBitmask a
$mVK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR :: forall {r} {a :: FlagType}.
VkAccessBitmask a -> (Void# -> r) -> (Void# -> r) -> r
VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR =
        VkAccessBitmask 2097152

-- | bitpos = @22@
pattern VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR ::
        VkAccessBitmask a

pattern $bVK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR :: forall (a :: FlagType). VkAccessBitmask a
$mVK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR :: forall {r} {a :: FlagType}.
VkAccessBitmask a -> (Void# -> r) -> (Void# -> r) -> r
VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR =
        VkAccessBitmask 4194304

pattern VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR ::
        VkQueryType

pattern $bVK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR :: VkQueryType
$mVK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR :: forall {r}. VkQueryType -> (Void# -> r) -> (Void# -> r) -> r
VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR =
        VkQueryType 1000165000

pattern VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR
        :: VkQueryType

pattern $bVK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR :: VkQueryType
$mVK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR :: forall {r}. VkQueryType -> (Void# -> r) -> (Void# -> r) -> r
VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR
        = VkQueryType 1000150000

pattern VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR :: VkObjectType

pattern $bVK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR :: VkObjectType
$mVK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR :: forall {r}. VkObjectType -> (Void# -> r) -> (Void# -> r) -> r
VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR =
        VkObjectType 1000165000

pattern VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT
        :: VkDebugReportObjectTypeEXT

pattern $bVK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT :: VkDebugReportObjectTypeEXT
$mVK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT :: forall {r}.
VkDebugReportObjectTypeEXT -> (Void# -> r) -> (Void# -> r) -> r
VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT
        = VkDebugReportObjectTypeEXT 1000165000

pattern VK_INDEX_TYPE_NONE_KHR :: VkIndexType

pattern $bVK_INDEX_TYPE_NONE_KHR :: VkIndexType
$mVK_INDEX_TYPE_NONE_KHR :: forall {r}. VkIndexType -> (Void# -> r) -> (Void# -> r) -> r
VK_INDEX_TYPE_NONE_KHR = VkIndexType 1000165000

pattern VK_GEOMETRY_TYPE_INSTANCES_KHR :: VkGeometryTypeKHR

pattern $bVK_GEOMETRY_TYPE_INSTANCES_KHR :: VkGeometryTypeKHR
$mVK_GEOMETRY_TYPE_INSTANCES_KHR :: forall {r}. VkGeometryTypeKHR -> (Void# -> r) -> (Void# -> r) -> r
VK_GEOMETRY_TYPE_INSTANCES_KHR =
        VkGeometryTypeKHR 1000150000

pattern VK_ERROR_INCOMPATIBLE_VERSION_KHR :: VkResult

pattern $bVK_ERROR_INCOMPATIBLE_VERSION_KHR :: VkResult
$mVK_ERROR_INCOMPATIBLE_VERSION_KHR :: forall {r}. VkResult -> (Void# -> r) -> (Void# -> r) -> r
VK_ERROR_INCOMPATIBLE_VERSION_KHR = VkResult (-1000150000)

-- | bitpos = @29@
pattern VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR
        :: VkFormatFeatureBitmask a

pattern $bVK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR :: forall (a :: FlagType). VkFormatFeatureBitmask a
$mVK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR :: forall {r} {a :: FlagType}.
VkFormatFeatureBitmask a -> (Void# -> r) -> (Void# -> r) -> r
VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR
        = VkFormatFeatureBitmask 536870912

-- | bitpos = @14@
pattern VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR
        :: VkPipelineCreateBitmask a

pattern $bVK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR :: forall (a :: FlagType). VkPipelineCreateBitmask a
$mVK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR :: forall {r} {a :: FlagType}.
VkPipelineCreateBitmask a -> (Void# -> r) -> (Void# -> r) -> r
VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR
        = VkPipelineCreateBitmask 16384

-- | bitpos = @15@
pattern VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR
        :: VkPipelineCreateBitmask a

pattern $bVK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR :: forall (a :: FlagType). VkPipelineCreateBitmask a
$mVK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR :: forall {r} {a :: FlagType}.
VkPipelineCreateBitmask a -> (Void# -> r) -> (Void# -> r) -> r
VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR
        = VkPipelineCreateBitmask 32768

-- | bitpos = @16@
pattern VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR
        :: VkPipelineCreateBitmask a

pattern $bVK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR :: forall (a :: FlagType). VkPipelineCreateBitmask a
$mVK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR :: forall {r} {a :: FlagType}.
VkPipelineCreateBitmask a -> (Void# -> r) -> (Void# -> r) -> r
VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR
        = VkPipelineCreateBitmask 65536

-- | bitpos = @17@
pattern VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR
        :: VkPipelineCreateBitmask a

pattern $bVK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR :: forall (a :: FlagType). VkPipelineCreateBitmask a
$mVK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR :: forall {r} {a :: FlagType}.
VkPipelineCreateBitmask a -> (Void# -> r) -> (Void# -> r) -> r
VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR
        = VkPipelineCreateBitmask 131072

-- | bitpos = @12@
pattern VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR ::
        VkPipelineCreateBitmask a

pattern $bVK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR :: forall (a :: FlagType). VkPipelineCreateBitmask a
$mVK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR :: forall {r} {a :: FlagType}.
VkPipelineCreateBitmask a -> (Void# -> r) -> (Void# -> r) -> r
VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR =
        VkPipelineCreateBitmask 4096

-- | bitpos = @13@
pattern VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR ::
        VkPipelineCreateBitmask a

pattern $bVK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR :: forall (a :: FlagType). VkPipelineCreateBitmask a
$mVK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR :: forall {r} {a :: FlagType}.
VkPipelineCreateBitmask a -> (Void# -> r) -> (Void# -> r) -> r
VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR =
        VkPipelineCreateBitmask 8192