packages feed

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

{-# OPTIONS_GHC -fno-warn-missing-pattern-synonym-signatures#-}
{-# 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_NV_ray_tracing
       (-- * Vulkan extension: @VK_NV_ray_tracing@
        -- |
        --
        -- supported: @vulkan@
        --
        -- contact: @Eric Werness @ewerness@
        --
        -- author: @NV@
        --
        -- type: @device@
        --
        -- Extension number: @166@
        --
        -- Required extensions: 'VK_KHR_get_physical_device_properties2', 'VK_KHR_get_memory_requirements2'.
        --

        -- ** Required extensions: 'VK_KHR_get_physical_device_properties2', 'VK_KHR_get_memory_requirements2'.
        module Graphics.Vulkan.Marshal, VkAabbPositionsNV,
        VkAccelerationStructureCreateInfoNV, VkAccelerationStructureInfoNV,
        VkAccelerationStructureInstanceNV,
        VkAccelerationStructureMemoryRequirementsInfoNV,
        VkAccelerationStructureBuildTypeKHR(..),
        VkAccelerationStructureMemoryRequirementsTypeKHR(..),
        VkAccelerationStructureTypeKHR(..),
        VkAccelerationStructureMemoryRequirementsTypeNV(..),
        VkAccelerationStructureTypeNV(..),
        VkBindAccelerationStructureMemoryInfoNV, AHardwareBuffer(),
        ANativeWindow(), CAMetalLayer(), VkBool32(..), VkDeviceAddress(..),
        VkDeviceSize(..), VkFlags(..), VkSampleMask(..),
        VkBuildAccelerationStructureBitmaskKHR(..),
        VkBuildAccelerationStructureFlagBitsKHR(),
        VkBuildAccelerationStructureFlagBitsNV(..),
        VkBuildAccelerationStructureFlagsKHR(),
        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(..),
        VkCopyAccelerationStructureModeKHR(..),
        VkCopyAccelerationStructureModeNV(..), VkFormat(..),
        VkFormatFeatureBitmask(..), VkFormatFeatureFlagBits(),
        VkFormatFeatureFlags(), VkGeometryAABBNV, VkGeometryDataNV,
        VkGeometryInstanceBitmaskKHR(..), VkGeometryBitmaskKHR(..),
        VkGeometryTypeKHR(..), VkGeometryFlagBitsKHR(),
        VkGeometryFlagBitsNV(..), VkGeometryFlagsKHR(),
        VkGeometryInstanceFlagBitsKHR(), VkGeometryInstanceFlagBitsNV(..),
        VkGeometryInstanceFlagsKHR(), VkGeometryTypeNV(..), VkGeometryNV,
        VkGeometryTrianglesNV, VkIndexType(..), VkMemoryRequirements2KHR,
        VkPhysicalDeviceLimits, VkPhysicalDeviceProperties,
        VkPhysicalDeviceProperties2,
        VkPhysicalDeviceRayTracingPropertiesNV,
        VkPhysicalDeviceSparseProperties, VkPhysicalDeviceType(..),
        VkPipelineBindPoint(..), VkPipelineCacheHeaderVersion(..),
        VkPipelineCreateBitmask(..),
        VkPipelineCreationFeedbackBitmaskEXT(..),
        VkPipelineExecutableStatisticFormatKHR(..),
        VkPipelineStageBitmask(..), VkPipelineCacheCreateBitmask(..),
        VkPipelineCacheCreateFlagBits(), VkPipelineCacheCreateFlags(),
        VkPipelineCompilerControlBitmaskAMD(..),
        VkPipelineCompilerControlFlagBitsAMD(),
        VkPipelineCompilerControlFlagsAMD(), VkPipelineCreateFlagBits(),
        VkPipelineCreateFlags(), VkPipelineCreationFeedbackFlagBitsEXT(),
        VkPipelineCreationFeedbackFlagsEXT(),
        VkPipelineShaderStageCreateBitmask(..),
        VkPipelineShaderStageCreateFlagBits(),
        VkPipelineShaderStageCreateFlags(), VkPipelineStageFlagBits(),
        VkPipelineStageFlags(), VkPipelineShaderStageCreateInfo,
        VkRayTracingPipelineCreateInfoNV,
        VkRayTracingShaderGroupCreateInfoNV,
        VkRayTracingShaderGroupTypeKHR(..),
        VkRayTracingShaderGroupTypeNV(..), VkSampleCountBitmask(..),
        VkSampleCountFlagBits(), VkSampleCountFlags(),
        VkShaderFloatControlsIndependence(..), VkShaderInfoTypeAMD(..),
        VkShaderStageBitmask(..), VkShaderCorePropertiesBitmaskAMD(..),
        VkShaderCorePropertiesFlagBitsAMD(),
        VkShaderCorePropertiesFlagsAMD(),
        VkShaderFloatControlsIndependenceKHR(..),
        VkShaderModuleCreateBitmask(..), VkShaderModuleCreateFlagBits(),
        VkShaderModuleCreateFlags(), VkShaderStageFlagBits(),
        VkShaderStageFlags(), VkSpecializationInfo,
        VkSpecializationMapEntry, VkStructureType(..), VkTransformMatrixNV,
        VkWriteDescriptorSetAccelerationStructureNV,
        -- > #include "vk_platform.h"
        VkCreateAccelerationStructureNV,
        pattern VkCreateAccelerationStructureNV,
        HS_vkCreateAccelerationStructureNV,
        PFN_vkCreateAccelerationStructureNV,
        VkDestroyAccelerationStructureNV,
        pattern VkDestroyAccelerationStructureNV,
        HS_vkDestroyAccelerationStructureNV,
        PFN_vkDestroyAccelerationStructureNV,
        VkGetAccelerationStructureMemoryRequirementsNV,
        pattern VkGetAccelerationStructureMemoryRequirementsNV,
        HS_vkGetAccelerationStructureMemoryRequirementsNV,
        PFN_vkGetAccelerationStructureMemoryRequirementsNV,
        VkBindAccelerationStructureMemoryNV,
        pattern VkBindAccelerationStructureMemoryNV,
        HS_vkBindAccelerationStructureMemoryNV,
        PFN_vkBindAccelerationStructureMemoryNV,
        VkCmdBuildAccelerationStructureNV,
        pattern VkCmdBuildAccelerationStructureNV,
        HS_vkCmdBuildAccelerationStructureNV,
        PFN_vkCmdBuildAccelerationStructureNV,
        VkCmdCopyAccelerationStructureNV,
        pattern VkCmdCopyAccelerationStructureNV,
        HS_vkCmdCopyAccelerationStructureNV,
        PFN_vkCmdCopyAccelerationStructureNV, VkCmdTraceRaysNV,
        pattern VkCmdTraceRaysNV, HS_vkCmdTraceRaysNV,
        PFN_vkCmdTraceRaysNV, VkCreateRayTracingPipelinesNV,
        pattern VkCreateRayTracingPipelinesNV,
        HS_vkCreateRayTracingPipelinesNV,
        PFN_vkCreateRayTracingPipelinesNV,
        VkGetRayTracingShaderGroupHandlesNV,
        pattern VkGetRayTracingShaderGroupHandlesNV,
        HS_vkGetRayTracingShaderGroupHandlesNV,
        PFN_vkGetRayTracingShaderGroupHandlesNV,
        VkGetAccelerationStructureHandleNV,
        pattern VkGetAccelerationStructureHandleNV,
        HS_vkGetAccelerationStructureHandleNV,
        PFN_vkGetAccelerationStructureHandleNV,
        VkCmdWriteAccelerationStructuresPropertiesNV,
        pattern VkCmdWriteAccelerationStructuresPropertiesNV,
        HS_vkCmdWriteAccelerationStructuresPropertiesNV,
        PFN_vkCmdWriteAccelerationStructuresPropertiesNV,
        VkCompileDeferredNV, pattern VkCompileDeferredNV,
        HS_vkCompileDeferredNV, PFN_vkCompileDeferredNV,
        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, VkAabbPositionsKHR,
        VkAccelerationStructureBuildGeometryInfoKHR,
        VkAccelerationStructureBuildOffsetInfoKHR,
        VkAccelerationStructureCreateGeometryTypeInfoKHR,
        VkAccelerationStructureCreateInfoKHR,
        VkAccelerationStructureDeviceAddressInfoKHR,
        VkAccelerationStructureGeometryAabbsDataKHR,
        VkAccelerationStructureGeometryDataKHR,
        VkAccelerationStructureGeometryInstancesDataKHR,
        VkAccelerationStructureGeometryKHR,
        VkAccelerationStructureGeometryTrianglesDataKHR,
        VkAccelerationStructureInstanceKHR,
        VkAccelerationStructureMemoryRequirementsInfoKHR,
        VkAccelerationStructureVersionKHR,
        VkBindAccelerationStructureMemoryInfoKHR,
        VkCopyAccelerationStructureInfoKHR,
        VkCopyAccelerationStructureToMemoryInfoKHR,
        VkCopyMemoryToAccelerationStructureInfoKHR,
        VkDeferredOperationInfoKHR, VkDeviceOrHostAddressConstKHR,
        VkDeviceOrHostAddressKHR, VkPhysicalDeviceRayTracingFeaturesKHR,
        VkPhysicalDeviceRayTracingPropertiesKHR,
        VkPipelineLibraryCreateInfoKHR, VkRayTracingPipelineCreateInfoKHR,
        VkRayTracingPipelineInterfaceCreateInfoKHR,
        VkRayTracingShaderGroupCreateInfoKHR, VkStridedBufferRegionKHR,
        VkTraceRaysIndirectCommandKHR, VkTransformMatrixKHR,
        VkWriteDescriptorSetAccelerationStructureKHR,
        VkMemoryAllocateFlagsInfo, VkMemoryAllocateFlagsInfoKHR,
        VkMemoryAllocateInfo, VkMemoryBarrier,
        VkMemoryDedicatedAllocateInfo, VkMemoryDedicatedAllocateInfoKHR,
        VkMemoryDedicatedRequirements, VkMemoryDedicatedRequirementsKHR,
        VkMemoryFdPropertiesKHR, VkMemoryGetFdInfoKHR, VkMemoryHeap,
        VkMemoryHostPointerPropertiesEXT,
        VkMemoryOpaqueCaptureAddressAllocateInfo,
        VkMemoryOpaqueCaptureAddressAllocateInfoKHR,
        VkMemoryPriorityAllocateInfoEXT, VkMemoryRequirements,
        VkMemoryRequirements2, 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_NV_RAY_TRACING_SPEC_VERSION,
        pattern VK_NV_RAY_TRACING_SPEC_VERSION,
        VK_NV_RAY_TRACING_EXTENSION_NAME,
        pattern VK_NV_RAY_TRACING_EXTENSION_NAME,
        pattern VK_SHADER_UNUSED_NV,
        pattern VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV,
        pattern VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV,
        pattern VK_STRUCTURE_TYPE_GEOMETRY_NV,
        pattern VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV,
        pattern VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV,
        pattern VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV,
        pattern VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV,
        pattern VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV,
        pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV,
        pattern VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV,
        pattern VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV,
        pattern VK_SHADER_STAGE_RAYGEN_BIT_NV,
        pattern VK_SHADER_STAGE_ANY_HIT_BIT_NV,
        pattern VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV,
        pattern VK_SHADER_STAGE_MISS_BIT_NV,
        pattern VK_SHADER_STAGE_INTERSECTION_BIT_NV,
        pattern VK_SHADER_STAGE_CALLABLE_BIT_NV,
        pattern VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV,
        pattern VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV,
        pattern VK_BUFFER_USAGE_RAY_TRACING_BIT_NV,
        pattern VK_PIPELINE_BIND_POINT_RAY_TRACING_NV,
        pattern VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV,
        pattern VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV,
        pattern VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV,
        pattern VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV,
        pattern VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV,
        pattern VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV,
        pattern VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT,
        pattern VK_INDEX_TYPE_NONE_NV,
        pattern VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV,
        pattern VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV,
        pattern VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV,
        pattern VK_GEOMETRY_TYPE_TRIANGLES_NV,
        pattern VK_GEOMETRY_TYPE_AABBS_NV,
        pattern VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV,
        pattern VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV,
        pattern VK_GEOMETRY_OPAQUE_BIT_NV,
        pattern VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV,
        pattern VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV,
        pattern VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV,
        pattern VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV,
        pattern VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV,
        pattern VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV,
        pattern VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV,
        pattern VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV,
        pattern VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV,
        pattern VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV,
        pattern VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV,
        pattern VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV,
        pattern VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV,
        pattern VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV,
        pattern VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV)
       where
import GHC.Ptr                                                   (Ptr (..))
import Graphics.Vulkan.Constants                                 (pattern VK_SHADER_UNUSED_NV)
import Graphics.Vulkan.Ext.VK_KHR_ray_tracing                    (pattern VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR,
                                                                  pattern VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR,
                                                                  pattern VK_BUFFER_USAGE_RAY_TRACING_BIT_KHR,
                                                                  pattern VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT,
                                                                  pattern VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR,
                                                                  pattern VK_INDEX_TYPE_NONE_KHR,
                                                                  pattern VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR,
                                                                  pattern VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR,
                                                                  pattern VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,
                                                                  pattern VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR,
                                                                  pattern VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR,
                                                                  pattern VK_SHADER_STAGE_ANY_HIT_BIT_KHR,
                                                                  pattern VK_SHADER_STAGE_CALLABLE_BIT_KHR,
                                                                  pattern VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR,
                                                                  pattern VK_SHADER_STAGE_INTERSECTION_BIT_KHR,
                                                                  pattern VK_SHADER_STAGE_MISS_BIT_KHR,
                                                                  pattern VK_SHADER_STAGE_RAYGEN_BIT_KHR,
                                                                  pattern VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_KHR,
                                                                  pattern VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_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.BuildAccelerationStructureFlag
import Graphics.Vulkan.Types.Enum.CopyAccelerationStructureMode
import Graphics.Vulkan.Types.Enum.Format
import Graphics.Vulkan.Types.Enum.Geometry
import Graphics.Vulkan.Types.Enum.IndexType
import Graphics.Vulkan.Types.Enum.InternalAllocationType
import Graphics.Vulkan.Types.Enum.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.AabbPositionsNV              (VkAabbPositionsNV)
import Graphics.Vulkan.Types.Struct.AccelerationStructure
import Graphics.Vulkan.Types.Struct.AllocationCallbacks
import Graphics.Vulkan.Types.Struct.Bind                         (VkBindAccelerationStructureMemoryInfoNV)
import Graphics.Vulkan.Types.Struct.EnableBetaExtensions
import Graphics.Vulkan.Types.Struct.Geometry
import Graphics.Vulkan.Types.Struct.Memory
import Graphics.Vulkan.Types.Struct.PhysicalDevice               (VkPhysicalDeviceLimits,
                                                                  VkPhysicalDeviceProperties,
                                                                  VkPhysicalDeviceProperties2,
                                                                  VkPhysicalDeviceRayTracingPropertiesNV,
                                                                  VkPhysicalDeviceSparseProperties)
import Graphics.Vulkan.Types.Struct.Pipeline
import Graphics.Vulkan.Types.Struct.RayTracing
import Graphics.Vulkan.Types.Struct.Specialization
import Graphics.Vulkan.Types.Struct.TransformMatrixNV            (VkTransformMatrixNV)
import Graphics.Vulkan.Types.Struct.WriteDescriptorSet           (VkWriteDescriptorSetAccelerationStructureNV)

pattern VkCreateAccelerationStructureNV :: CString

pattern VkCreateAccelerationStructureNV <-
        (is_VkCreateAccelerationStructureNV -> True)
  where
    VkCreateAccelerationStructureNV = _VkCreateAccelerationStructureNV

{-# INLINE _VkCreateAccelerationStructureNV #-}

_VkCreateAccelerationStructureNV :: CString
_VkCreateAccelerationStructureNV
  = Ptr "vkCreateAccelerationStructureNV\NUL"#

{-# INLINE is_VkCreateAccelerationStructureNV #-}

is_VkCreateAccelerationStructureNV :: CString -> Bool
is_VkCreateAccelerationStructureNV
  = (EQ ==) . cmpCStrings _VkCreateAccelerationStructureNV

type VkCreateAccelerationStructureNV =
     "vkCreateAccelerationStructureNV"

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

type PFN_vkCreateAccelerationStructureNV =
     FunPtr HS_vkCreateAccelerationStructureNV

foreign import ccall unsafe "dynamic"
               unwrapVkCreateAccelerationStructureNVUnsafe ::
               PFN_vkCreateAccelerationStructureNV ->
                 HS_vkCreateAccelerationStructureNV

foreign import ccall safe "dynamic"
               unwrapVkCreateAccelerationStructureNVSafe ::
               PFN_vkCreateAccelerationStructureNV ->
                 HS_vkCreateAccelerationStructureNV

instance VulkanProc "vkCreateAccelerationStructureNV" where
    type VkProcType "vkCreateAccelerationStructureNV" =
         HS_vkCreateAccelerationStructureNV
    vkProcSymbol = _VkCreateAccelerationStructureNV

    {-# INLINE vkProcSymbol #-}
    unwrapVkProcPtrUnsafe = unwrapVkCreateAccelerationStructureNVUnsafe

    {-# INLINE unwrapVkProcPtrUnsafe #-}
    unwrapVkProcPtrSafe = unwrapVkCreateAccelerationStructureNVSafe

    {-# INLINE unwrapVkProcPtrSafe #-}

pattern VkDestroyAccelerationStructureNV :: CString

pattern VkDestroyAccelerationStructureNV <-
        (is_VkDestroyAccelerationStructureNV -> True)
  where
    VkDestroyAccelerationStructureNV
      = _VkDestroyAccelerationStructureNV

{-# INLINE _VkDestroyAccelerationStructureNV #-}

_VkDestroyAccelerationStructureNV :: CString
_VkDestroyAccelerationStructureNV
  = Ptr "vkDestroyAccelerationStructureNV\NUL"#

{-# INLINE is_VkDestroyAccelerationStructureNV #-}

is_VkDestroyAccelerationStructureNV :: CString -> Bool
is_VkDestroyAccelerationStructureNV
  = (EQ ==) . cmpCStrings _VkDestroyAccelerationStructureNV

type VkDestroyAccelerationStructureNV =
     "vkDestroyAccelerationStructureNV"

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

type PFN_vkDestroyAccelerationStructureNV =
     FunPtr HS_vkDestroyAccelerationStructureNV

foreign import ccall unsafe "dynamic"
               unwrapVkDestroyAccelerationStructureNVUnsafe ::
               PFN_vkDestroyAccelerationStructureNV ->
                 HS_vkDestroyAccelerationStructureNV

foreign import ccall safe "dynamic"
               unwrapVkDestroyAccelerationStructureNVSafe ::
               PFN_vkDestroyAccelerationStructureNV ->
                 HS_vkDestroyAccelerationStructureNV

instance VulkanProc "vkDestroyAccelerationStructureNV" where
    type VkProcType "vkDestroyAccelerationStructureNV" =
         HS_vkDestroyAccelerationStructureNV
    vkProcSymbol = _VkDestroyAccelerationStructureNV

    {-# INLINE vkProcSymbol #-}
    unwrapVkProcPtrUnsafe
      = unwrapVkDestroyAccelerationStructureNVUnsafe

    {-# INLINE unwrapVkProcPtrUnsafe #-}
    unwrapVkProcPtrSafe = unwrapVkDestroyAccelerationStructureNVSafe

    {-# INLINE unwrapVkProcPtrSafe #-}

pattern VkGetAccelerationStructureMemoryRequirementsNV :: CString

pattern VkGetAccelerationStructureMemoryRequirementsNV <-
        (is_VkGetAccelerationStructureMemoryRequirementsNV -> True)
  where
    VkGetAccelerationStructureMemoryRequirementsNV
      = _VkGetAccelerationStructureMemoryRequirementsNV

{-# INLINE _VkGetAccelerationStructureMemoryRequirementsNV #-}

_VkGetAccelerationStructureMemoryRequirementsNV :: CString
_VkGetAccelerationStructureMemoryRequirementsNV
  = Ptr "vkGetAccelerationStructureMemoryRequirementsNV\NUL"#

{-# INLINE is_VkGetAccelerationStructureMemoryRequirementsNV #-}

is_VkGetAccelerationStructureMemoryRequirementsNV ::
                                                  CString -> Bool
is_VkGetAccelerationStructureMemoryRequirementsNV
  = (EQ ==) .
      cmpCStrings _VkGetAccelerationStructureMemoryRequirementsNV

type VkGetAccelerationStructureMemoryRequirementsNV =
     "vkGetAccelerationStructureMemoryRequirementsNV"

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

type PFN_vkGetAccelerationStructureMemoryRequirementsNV =
     FunPtr HS_vkGetAccelerationStructureMemoryRequirementsNV

foreign import ccall unsafe "dynamic"
               unwrapVkGetAccelerationStructureMemoryRequirementsNVUnsafe ::
               PFN_vkGetAccelerationStructureMemoryRequirementsNV ->
                 HS_vkGetAccelerationStructureMemoryRequirementsNV

foreign import ccall safe "dynamic"
               unwrapVkGetAccelerationStructureMemoryRequirementsNVSafe ::
               PFN_vkGetAccelerationStructureMemoryRequirementsNV ->
                 HS_vkGetAccelerationStructureMemoryRequirementsNV

instance VulkanProc
           "vkGetAccelerationStructureMemoryRequirementsNV"
         where
    type VkProcType "vkGetAccelerationStructureMemoryRequirementsNV" =
         HS_vkGetAccelerationStructureMemoryRequirementsNV
    vkProcSymbol = _VkGetAccelerationStructureMemoryRequirementsNV

    {-# INLINE vkProcSymbol #-}
    unwrapVkProcPtrUnsafe
      = unwrapVkGetAccelerationStructureMemoryRequirementsNVUnsafe

    {-# INLINE unwrapVkProcPtrUnsafe #-}
    unwrapVkProcPtrSafe
      = unwrapVkGetAccelerationStructureMemoryRequirementsNVSafe

    {-# INLINE unwrapVkProcPtrSafe #-}

pattern VkBindAccelerationStructureMemoryNV :: CString

pattern VkBindAccelerationStructureMemoryNV <-
        (is_VkBindAccelerationStructureMemoryNV -> True)
  where
    VkBindAccelerationStructureMemoryNV
      = _VkBindAccelerationStructureMemoryNV

{-# INLINE _VkBindAccelerationStructureMemoryNV #-}

_VkBindAccelerationStructureMemoryNV :: CString
_VkBindAccelerationStructureMemoryNV
  = Ptr "vkBindAccelerationStructureMemoryNV\NUL"#

{-# INLINE is_VkBindAccelerationStructureMemoryNV #-}

is_VkBindAccelerationStructureMemoryNV :: CString -> Bool
is_VkBindAccelerationStructureMemoryNV
  = (EQ ==) . cmpCStrings _VkBindAccelerationStructureMemoryNV

type VkBindAccelerationStructureMemoryNV =
     "vkBindAccelerationStructureMemoryNV"

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

type PFN_vkBindAccelerationStructureMemoryNV =
     FunPtr HS_vkBindAccelerationStructureMemoryNV

foreign import ccall unsafe "dynamic"
               unwrapVkBindAccelerationStructureMemoryNVUnsafe ::
               PFN_vkBindAccelerationStructureMemoryNV ->
                 HS_vkBindAccelerationStructureMemoryNV

foreign import ccall safe "dynamic"
               unwrapVkBindAccelerationStructureMemoryNVSafe ::
               PFN_vkBindAccelerationStructureMemoryNV ->
                 HS_vkBindAccelerationStructureMemoryNV

instance VulkanProc "vkBindAccelerationStructureMemoryNV" where
    type VkProcType "vkBindAccelerationStructureMemoryNV" =
         HS_vkBindAccelerationStructureMemoryNV
    vkProcSymbol = _VkBindAccelerationStructureMemoryNV

    {-# INLINE vkProcSymbol #-}
    unwrapVkProcPtrUnsafe
      = unwrapVkBindAccelerationStructureMemoryNVUnsafe

    {-# INLINE unwrapVkProcPtrUnsafe #-}
    unwrapVkProcPtrSafe = unwrapVkBindAccelerationStructureMemoryNVSafe

    {-# INLINE unwrapVkProcPtrSafe #-}

pattern VkCmdBuildAccelerationStructureNV :: CString

pattern VkCmdBuildAccelerationStructureNV <-
        (is_VkCmdBuildAccelerationStructureNV -> True)
  where
    VkCmdBuildAccelerationStructureNV
      = _VkCmdBuildAccelerationStructureNV

{-# INLINE _VkCmdBuildAccelerationStructureNV #-}

_VkCmdBuildAccelerationStructureNV :: CString
_VkCmdBuildAccelerationStructureNV
  = Ptr "vkCmdBuildAccelerationStructureNV\NUL"#

{-# INLINE is_VkCmdBuildAccelerationStructureNV #-}

is_VkCmdBuildAccelerationStructureNV :: CString -> Bool
is_VkCmdBuildAccelerationStructureNV
  = (EQ ==) . cmpCStrings _VkCmdBuildAccelerationStructureNV

type VkCmdBuildAccelerationStructureNV =
     "vkCmdBuildAccelerationStructureNV"

-- | Queues: 'compute'.
--
--   Renderpass: @outside@
--
--   > void vkCmdBuildAccelerationStructureNV
--   >     ( VkCommandBuffer commandBuffer
--   >     , const VkAccelerationStructureInfoNV* pInfo
--   >     , VkBuffer instanceData
--   >     , VkDeviceSize instanceOffset
--   >     , VkBool32 update
--   >     , VkAccelerationStructureKHR dst
--   >     , VkAccelerationStructureKHR src
--   >     , VkBuffer scratch
--   >     , VkDeviceSize scratchOffset
--   >     )
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBuildAccelerationStructureNV vkCmdBuildAccelerationStructureNV registry at www.khronos.org>
type HS_vkCmdBuildAccelerationStructureNV =
     VkCommandBuffer -- ^ commandBuffer
                     ->
       Ptr VkAccelerationStructureInfoNV -- ^ pInfo
                                         ->
         VkBuffer -- ^ instanceData
                  ->
           VkDeviceSize -- ^ instanceOffset
                        ->
             VkBool32 -- ^ update
                      ->
               VkAccelerationStructureKHR -- ^ dst
                                          ->
                 VkAccelerationStructureKHR -- ^ src
                                            -> VkBuffer -- ^ scratch
                                                        -> VkDeviceSize -- ^ scratchOffset
                                                                        -> IO ()

type PFN_vkCmdBuildAccelerationStructureNV =
     FunPtr HS_vkCmdBuildAccelerationStructureNV

foreign import ccall unsafe "dynamic"
               unwrapVkCmdBuildAccelerationStructureNVUnsafe ::
               PFN_vkCmdBuildAccelerationStructureNV ->
                 HS_vkCmdBuildAccelerationStructureNV

foreign import ccall safe "dynamic"
               unwrapVkCmdBuildAccelerationStructureNVSafe ::
               PFN_vkCmdBuildAccelerationStructureNV ->
                 HS_vkCmdBuildAccelerationStructureNV

instance VulkanProc "vkCmdBuildAccelerationStructureNV" where
    type VkProcType "vkCmdBuildAccelerationStructureNV" =
         HS_vkCmdBuildAccelerationStructureNV
    vkProcSymbol = _VkCmdBuildAccelerationStructureNV

    {-# INLINE vkProcSymbol #-}
    unwrapVkProcPtrUnsafe
      = unwrapVkCmdBuildAccelerationStructureNVUnsafe

    {-# INLINE unwrapVkProcPtrUnsafe #-}
    unwrapVkProcPtrSafe = unwrapVkCmdBuildAccelerationStructureNVSafe

    {-# INLINE unwrapVkProcPtrSafe #-}

pattern VkCmdCopyAccelerationStructureNV :: CString

pattern VkCmdCopyAccelerationStructureNV <-
        (is_VkCmdCopyAccelerationStructureNV -> True)
  where
    VkCmdCopyAccelerationStructureNV
      = _VkCmdCopyAccelerationStructureNV

{-# INLINE _VkCmdCopyAccelerationStructureNV #-}

_VkCmdCopyAccelerationStructureNV :: CString
_VkCmdCopyAccelerationStructureNV
  = Ptr "vkCmdCopyAccelerationStructureNV\NUL"#

{-# INLINE is_VkCmdCopyAccelerationStructureNV #-}

is_VkCmdCopyAccelerationStructureNV :: CString -> Bool
is_VkCmdCopyAccelerationStructureNV
  = (EQ ==) . cmpCStrings _VkCmdCopyAccelerationStructureNV

type VkCmdCopyAccelerationStructureNV =
     "vkCmdCopyAccelerationStructureNV"

-- | Queues: 'compute'.
--
--   Renderpass: @outside@
--
--   > void vkCmdCopyAccelerationStructureNV
--   >     ( VkCommandBuffer commandBuffer
--   >     , VkAccelerationStructureKHR dst
--   >     , VkAccelerationStructureKHR src
--   >     , VkCopyAccelerationStructureModeKHR mode
--   >     )
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdCopyAccelerationStructureNV vkCmdCopyAccelerationStructureNV registry at www.khronos.org>
type HS_vkCmdCopyAccelerationStructureNV =
     VkCommandBuffer -- ^ commandBuffer
                     ->
       VkAccelerationStructureKHR -- ^ dst
                                  ->
         VkAccelerationStructureKHR -- ^ src
                                    ->
           VkCopyAccelerationStructureModeKHR -- ^ mode
                                              -> IO ()

type PFN_vkCmdCopyAccelerationStructureNV =
     FunPtr HS_vkCmdCopyAccelerationStructureNV

foreign import ccall unsafe "dynamic"
               unwrapVkCmdCopyAccelerationStructureNVUnsafe ::
               PFN_vkCmdCopyAccelerationStructureNV ->
                 HS_vkCmdCopyAccelerationStructureNV

foreign import ccall safe "dynamic"
               unwrapVkCmdCopyAccelerationStructureNVSafe ::
               PFN_vkCmdCopyAccelerationStructureNV ->
                 HS_vkCmdCopyAccelerationStructureNV

instance VulkanProc "vkCmdCopyAccelerationStructureNV" where
    type VkProcType "vkCmdCopyAccelerationStructureNV" =
         HS_vkCmdCopyAccelerationStructureNV
    vkProcSymbol = _VkCmdCopyAccelerationStructureNV

    {-# INLINE vkProcSymbol #-}
    unwrapVkProcPtrUnsafe
      = unwrapVkCmdCopyAccelerationStructureNVUnsafe

    {-# INLINE unwrapVkProcPtrUnsafe #-}
    unwrapVkProcPtrSafe = unwrapVkCmdCopyAccelerationStructureNVSafe

    {-# INLINE unwrapVkProcPtrSafe #-}

pattern VkCmdTraceRaysNV :: CString

pattern VkCmdTraceRaysNV <- (is_VkCmdTraceRaysNV -> True)
  where
    VkCmdTraceRaysNV = _VkCmdTraceRaysNV

{-# INLINE _VkCmdTraceRaysNV #-}

_VkCmdTraceRaysNV :: CString
_VkCmdTraceRaysNV = Ptr "vkCmdTraceRaysNV\NUL"#

{-# INLINE is_VkCmdTraceRaysNV #-}

is_VkCmdTraceRaysNV :: CString -> Bool
is_VkCmdTraceRaysNV = (EQ ==) . cmpCStrings _VkCmdTraceRaysNV

type VkCmdTraceRaysNV = "vkCmdTraceRaysNV"

-- | Queues: 'compute'.
--
--   Renderpass: @outside@
--
--   > void vkCmdTraceRaysNV
--   >     ( VkCommandBuffer commandBuffer
--   >     , VkBuffer raygenShaderBindingTableBuffer
--   >     , VkDeviceSize raygenShaderBindingOffset
--   >     , VkBuffer missShaderBindingTableBuffer
--   >     , VkDeviceSize missShaderBindingOffset
--   >     , VkDeviceSize missShaderBindingStride
--   >     , VkBuffer hitShaderBindingTableBuffer
--   >     , VkDeviceSize hitShaderBindingOffset
--   >     , VkDeviceSize hitShaderBindingStride
--   >     , VkBuffer callableShaderBindingTableBuffer
--   >     , VkDeviceSize callableShaderBindingOffset
--   >     , VkDeviceSize callableShaderBindingStride
--   >     , uint32_t width
--   >     , uint32_t height
--   >     , uint32_t depth
--   >     )
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdTraceRaysNV vkCmdTraceRaysNV registry at www.khronos.org>
type HS_vkCmdTraceRaysNV =
     VkCommandBuffer -- ^ commandBuffer
                     ->
       VkBuffer -- ^ raygenShaderBindingTableBuffer
                ->
         VkDeviceSize -- ^ raygenShaderBindingOffset
                      ->
           VkBuffer -- ^ missShaderBindingTableBuffer
                    ->
             VkDeviceSize -- ^ missShaderBindingOffset
                          ->
               VkDeviceSize -- ^ missShaderBindingStride
                            ->
                 VkBuffer -- ^ hitShaderBindingTableBuffer
                          ->
                   VkDeviceSize -- ^ hitShaderBindingOffset
                                ->
                     VkDeviceSize -- ^ hitShaderBindingStride
                                  ->
                       VkBuffer -- ^ callableShaderBindingTableBuffer
                                ->
                         VkDeviceSize -- ^ callableShaderBindingOffset
                                      -> VkDeviceSize -- ^ callableShaderBindingStride
                                                      -> Word32 -- ^ width
                                                                -> Word32 -- ^ height
                                                                          -> Word32 -- ^ depth
                                                                                    -> IO ()

type PFN_vkCmdTraceRaysNV = FunPtr HS_vkCmdTraceRaysNV

foreign import ccall unsafe "dynamic" unwrapVkCmdTraceRaysNVUnsafe
               :: PFN_vkCmdTraceRaysNV -> HS_vkCmdTraceRaysNV

foreign import ccall safe "dynamic" unwrapVkCmdTraceRaysNVSafe ::
               PFN_vkCmdTraceRaysNV -> HS_vkCmdTraceRaysNV

instance VulkanProc "vkCmdTraceRaysNV" where
    type VkProcType "vkCmdTraceRaysNV" = HS_vkCmdTraceRaysNV
    vkProcSymbol = _VkCmdTraceRaysNV

    {-# INLINE vkProcSymbol #-}
    unwrapVkProcPtrUnsafe = unwrapVkCmdTraceRaysNVUnsafe

    {-# INLINE unwrapVkProcPtrUnsafe #-}
    unwrapVkProcPtrSafe = unwrapVkCmdTraceRaysNVSafe

    {-# INLINE unwrapVkProcPtrSafe #-}

pattern VkCreateRayTracingPipelinesNV :: CString

pattern VkCreateRayTracingPipelinesNV <-
        (is_VkCreateRayTracingPipelinesNV -> True)
  where
    VkCreateRayTracingPipelinesNV = _VkCreateRayTracingPipelinesNV

{-# INLINE _VkCreateRayTracingPipelinesNV #-}

_VkCreateRayTracingPipelinesNV :: CString
_VkCreateRayTracingPipelinesNV
  = Ptr "vkCreateRayTracingPipelinesNV\NUL"#

{-# INLINE is_VkCreateRayTracingPipelinesNV #-}

is_VkCreateRayTracingPipelinesNV :: CString -> Bool
is_VkCreateRayTracingPipelinesNV
  = (EQ ==) . cmpCStrings _VkCreateRayTracingPipelinesNV

type VkCreateRayTracingPipelinesNV =
     "vkCreateRayTracingPipelinesNV"

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

type PFN_vkCreateRayTracingPipelinesNV =
     FunPtr HS_vkCreateRayTracingPipelinesNV

foreign import ccall unsafe "dynamic"
               unwrapVkCreateRayTracingPipelinesNVUnsafe ::
               PFN_vkCreateRayTracingPipelinesNV ->
                 HS_vkCreateRayTracingPipelinesNV

foreign import ccall safe "dynamic"
               unwrapVkCreateRayTracingPipelinesNVSafe ::
               PFN_vkCreateRayTracingPipelinesNV ->
                 HS_vkCreateRayTracingPipelinesNV

instance VulkanProc "vkCreateRayTracingPipelinesNV" where
    type VkProcType "vkCreateRayTracingPipelinesNV" =
         HS_vkCreateRayTracingPipelinesNV
    vkProcSymbol = _VkCreateRayTracingPipelinesNV

    {-# INLINE vkProcSymbol #-}
    unwrapVkProcPtrUnsafe = unwrapVkCreateRayTracingPipelinesNVUnsafe

    {-# INLINE unwrapVkProcPtrUnsafe #-}
    unwrapVkProcPtrSafe = unwrapVkCreateRayTracingPipelinesNVSafe

    {-# INLINE unwrapVkProcPtrSafe #-}

pattern VkGetRayTracingShaderGroupHandlesNV :: CString

pattern VkGetRayTracingShaderGroupHandlesNV <-
        (is_VkGetRayTracingShaderGroupHandlesNV -> True)
  where
    VkGetRayTracingShaderGroupHandlesNV
      = _VkGetRayTracingShaderGroupHandlesNV

{-# INLINE _VkGetRayTracingShaderGroupHandlesNV #-}

_VkGetRayTracingShaderGroupHandlesNV :: CString
_VkGetRayTracingShaderGroupHandlesNV
  = Ptr "vkGetRayTracingShaderGroupHandlesNV\NUL"#

{-# INLINE is_VkGetRayTracingShaderGroupHandlesNV #-}

is_VkGetRayTracingShaderGroupHandlesNV :: CString -> Bool
is_VkGetRayTracingShaderGroupHandlesNV
  = (EQ ==) . cmpCStrings _VkGetRayTracingShaderGroupHandlesNV

type VkGetRayTracingShaderGroupHandlesNV =
     "vkGetRayTracingShaderGroupHandlesNV"

-- | This is an alias for `vkGetRayTracingShaderGroupHandlesKHR`.
--
--   Success codes: 'VK_SUCCESS'.
--
--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
--
--   > VkResult vkGetRayTracingShaderGroupHandlesNV
--   >     ( 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#vkGetRayTracingShaderGroupHandlesNV vkGetRayTracingShaderGroupHandlesNV registry at www.khronos.org>
type HS_vkGetRayTracingShaderGroupHandlesNV =
     VkDevice -- ^ device
              ->
       VkPipeline -- ^ pipeline
                  -> Word32 -- ^ firstGroup
                            -> Word32 -- ^ groupCount
                                      -> CSize -- ^ dataSize
                                               -> Ptr Void -- ^ pData
                                                           -> IO VkResult

type PFN_vkGetRayTracingShaderGroupHandlesNV =
     FunPtr HS_vkGetRayTracingShaderGroupHandlesNV

foreign import ccall unsafe "dynamic"
               unwrapVkGetRayTracingShaderGroupHandlesNVUnsafe ::
               PFN_vkGetRayTracingShaderGroupHandlesNV ->
                 HS_vkGetRayTracingShaderGroupHandlesNV

foreign import ccall safe "dynamic"
               unwrapVkGetRayTracingShaderGroupHandlesNVSafe ::
               PFN_vkGetRayTracingShaderGroupHandlesNV ->
                 HS_vkGetRayTracingShaderGroupHandlesNV

instance VulkanProc "vkGetRayTracingShaderGroupHandlesNV" where
    type VkProcType "vkGetRayTracingShaderGroupHandlesNV" =
         HS_vkGetRayTracingShaderGroupHandlesNV
    vkProcSymbol = _VkGetRayTracingShaderGroupHandlesNV

    {-# INLINE vkProcSymbol #-}
    unwrapVkProcPtrUnsafe
      = unwrapVkGetRayTracingShaderGroupHandlesNVUnsafe

    {-# INLINE unwrapVkProcPtrUnsafe #-}
    unwrapVkProcPtrSafe = unwrapVkGetRayTracingShaderGroupHandlesNVSafe

    {-# INLINE unwrapVkProcPtrSafe #-}

pattern VkGetAccelerationStructureHandleNV :: CString

pattern VkGetAccelerationStructureHandleNV <-
        (is_VkGetAccelerationStructureHandleNV -> True)
  where
    VkGetAccelerationStructureHandleNV
      = _VkGetAccelerationStructureHandleNV

{-# INLINE _VkGetAccelerationStructureHandleNV #-}

_VkGetAccelerationStructureHandleNV :: CString
_VkGetAccelerationStructureHandleNV
  = Ptr "vkGetAccelerationStructureHandleNV\NUL"#

{-# INLINE is_VkGetAccelerationStructureHandleNV #-}

is_VkGetAccelerationStructureHandleNV :: CString -> Bool
is_VkGetAccelerationStructureHandleNV
  = (EQ ==) . cmpCStrings _VkGetAccelerationStructureHandleNV

type VkGetAccelerationStructureHandleNV =
     "vkGetAccelerationStructureHandleNV"

-- | Success codes: 'VK_SUCCESS'.
--
--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
--
--   > VkResult vkGetAccelerationStructureHandleNV
--   >     ( VkDevice device
--   >     , VkAccelerationStructureKHR accelerationStructure
--   >     , size_t dataSize
--   >     , void* pData
--   >     )
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkGetAccelerationStructureHandleNV vkGetAccelerationStructureHandleNV registry at www.khronos.org>
type HS_vkGetAccelerationStructureHandleNV =
     VkDevice -- ^ device
              ->
       VkAccelerationStructureKHR -- ^ accelerationStructure
                                  -> CSize -- ^ dataSize
                                           -> Ptr Void -- ^ pData
                                                       -> IO VkResult

type PFN_vkGetAccelerationStructureHandleNV =
     FunPtr HS_vkGetAccelerationStructureHandleNV

foreign import ccall unsafe "dynamic"
               unwrapVkGetAccelerationStructureHandleNVUnsafe ::
               PFN_vkGetAccelerationStructureHandleNV ->
                 HS_vkGetAccelerationStructureHandleNV

foreign import ccall safe "dynamic"
               unwrapVkGetAccelerationStructureHandleNVSafe ::
               PFN_vkGetAccelerationStructureHandleNV ->
                 HS_vkGetAccelerationStructureHandleNV

instance VulkanProc "vkGetAccelerationStructureHandleNV" where
    type VkProcType "vkGetAccelerationStructureHandleNV" =
         HS_vkGetAccelerationStructureHandleNV
    vkProcSymbol = _VkGetAccelerationStructureHandleNV

    {-# INLINE vkProcSymbol #-}
    unwrapVkProcPtrUnsafe
      = unwrapVkGetAccelerationStructureHandleNVUnsafe

    {-# INLINE unwrapVkProcPtrUnsafe #-}
    unwrapVkProcPtrSafe = unwrapVkGetAccelerationStructureHandleNVSafe

    {-# INLINE unwrapVkProcPtrSafe #-}

pattern VkCmdWriteAccelerationStructuresPropertiesNV :: CString

pattern VkCmdWriteAccelerationStructuresPropertiesNV <-
        (is_VkCmdWriteAccelerationStructuresPropertiesNV -> True)
  where
    VkCmdWriteAccelerationStructuresPropertiesNV
      = _VkCmdWriteAccelerationStructuresPropertiesNV

{-# INLINE _VkCmdWriteAccelerationStructuresPropertiesNV #-}

_VkCmdWriteAccelerationStructuresPropertiesNV :: CString
_VkCmdWriteAccelerationStructuresPropertiesNV
  = Ptr "vkCmdWriteAccelerationStructuresPropertiesNV\NUL"#

{-# INLINE is_VkCmdWriteAccelerationStructuresPropertiesNV #-}

is_VkCmdWriteAccelerationStructuresPropertiesNV :: CString -> Bool
is_VkCmdWriteAccelerationStructuresPropertiesNV
  = (EQ ==) .
      cmpCStrings _VkCmdWriteAccelerationStructuresPropertiesNV

type VkCmdWriteAccelerationStructuresPropertiesNV =
     "vkCmdWriteAccelerationStructuresPropertiesNV"

-- | This is an alias for `vkCmdWriteAccelerationStructuresPropertiesKHR`.
--
--   Queues: 'compute'.
--
--   Renderpass: @outside@
--
--   > void vkCmdWriteAccelerationStructuresPropertiesNV
--   >     ( 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#vkCmdWriteAccelerationStructuresPropertiesNV vkCmdWriteAccelerationStructuresPropertiesNV registry at www.khronos.org>
type HS_vkCmdWriteAccelerationStructuresPropertiesNV =
     VkCommandBuffer -- ^ commandBuffer
                     ->
       Word32 -- ^ accelerationStructureCount
              ->
         Ptr VkAccelerationStructureKHR -- ^ pAccelerationStructures
                                        ->
           VkQueryType -- ^ queryType
                       -> VkQueryPool -- ^ queryPool
                                      -> Word32 -- ^ firstQuery
                                                -> IO ()

type PFN_vkCmdWriteAccelerationStructuresPropertiesNV =
     FunPtr HS_vkCmdWriteAccelerationStructuresPropertiesNV

foreign import ccall unsafe "dynamic"
               unwrapVkCmdWriteAccelerationStructuresPropertiesNVUnsafe ::
               PFN_vkCmdWriteAccelerationStructuresPropertiesNV ->
                 HS_vkCmdWriteAccelerationStructuresPropertiesNV

foreign import ccall safe "dynamic"
               unwrapVkCmdWriteAccelerationStructuresPropertiesNVSafe ::
               PFN_vkCmdWriteAccelerationStructuresPropertiesNV ->
                 HS_vkCmdWriteAccelerationStructuresPropertiesNV

instance VulkanProc "vkCmdWriteAccelerationStructuresPropertiesNV"
         where
    type VkProcType "vkCmdWriteAccelerationStructuresPropertiesNV" =
         HS_vkCmdWriteAccelerationStructuresPropertiesNV
    vkProcSymbol = _VkCmdWriteAccelerationStructuresPropertiesNV

    {-# INLINE vkProcSymbol #-}
    unwrapVkProcPtrUnsafe
      = unwrapVkCmdWriteAccelerationStructuresPropertiesNVUnsafe

    {-# INLINE unwrapVkProcPtrUnsafe #-}
    unwrapVkProcPtrSafe
      = unwrapVkCmdWriteAccelerationStructuresPropertiesNVSafe

    {-# INLINE unwrapVkProcPtrSafe #-}

pattern VkCompileDeferredNV :: CString

pattern VkCompileDeferredNV <- (is_VkCompileDeferredNV -> True)
  where
    VkCompileDeferredNV = _VkCompileDeferredNV

{-# INLINE _VkCompileDeferredNV #-}

_VkCompileDeferredNV :: CString
_VkCompileDeferredNV = Ptr "vkCompileDeferredNV\NUL"#

{-# INLINE is_VkCompileDeferredNV #-}

is_VkCompileDeferredNV :: CString -> Bool
is_VkCompileDeferredNV = (EQ ==) . cmpCStrings _VkCompileDeferredNV

type VkCompileDeferredNV = "vkCompileDeferredNV"

-- | Success codes: 'VK_SUCCESS'.
--
--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
--
--   > VkResult vkCompileDeferredNV
--   >     ( VkDevice device
--   >     , VkPipeline pipeline
--   >     , uint32_t shader
--   >     )
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCompileDeferredNV vkCompileDeferredNV registry at www.khronos.org>
type HS_vkCompileDeferredNV =
     VkDevice -- ^ device
              -> VkPipeline -- ^ pipeline
                            -> Word32 -- ^ shader
                                      -> IO VkResult

type PFN_vkCompileDeferredNV = FunPtr HS_vkCompileDeferredNV

foreign import ccall unsafe "dynamic"
               unwrapVkCompileDeferredNVUnsafe ::
               PFN_vkCompileDeferredNV -> HS_vkCompileDeferredNV

foreign import ccall safe "dynamic" unwrapVkCompileDeferredNVSafe
               :: PFN_vkCompileDeferredNV -> HS_vkCompileDeferredNV

instance VulkanProc "vkCompileDeferredNV" where
    type VkProcType "vkCompileDeferredNV" = HS_vkCompileDeferredNV
    vkProcSymbol = _VkCompileDeferredNV

    {-# INLINE vkProcSymbol #-}
    unwrapVkProcPtrUnsafe = unwrapVkCompileDeferredNVUnsafe

    {-# INLINE unwrapVkProcPtrUnsafe #-}
    unwrapVkProcPtrSafe = unwrapVkCompileDeferredNVSafe

    {-# INLINE unwrapVkProcPtrSafe #-}

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

pattern VK_NV_RAY_TRACING_SPEC_VERSION = 3

type VK_NV_RAY_TRACING_SPEC_VERSION = 3

pattern VK_NV_RAY_TRACING_EXTENSION_NAME :: CString

pattern VK_NV_RAY_TRACING_EXTENSION_NAME <-
        (is_VK_NV_RAY_TRACING_EXTENSION_NAME -> True)
  where
    VK_NV_RAY_TRACING_EXTENSION_NAME
      = _VK_NV_RAY_TRACING_EXTENSION_NAME

{-# INLINE _VK_NV_RAY_TRACING_EXTENSION_NAME #-}

_VK_NV_RAY_TRACING_EXTENSION_NAME :: CString
_VK_NV_RAY_TRACING_EXTENSION_NAME = Ptr "VK_NV_ray_tracing\NUL"#

{-# INLINE is_VK_NV_RAY_TRACING_EXTENSION_NAME #-}

is_VK_NV_RAY_TRACING_EXTENSION_NAME :: CString -> Bool
is_VK_NV_RAY_TRACING_EXTENSION_NAME
  = (EQ ==) . cmpCStrings _VK_NV_RAY_TRACING_EXTENSION_NAME

type VK_NV_RAY_TRACING_EXTENSION_NAME = "VK_NV_ray_tracing"

pattern VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV ::
        VkStructureType

pattern VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV =
        VkStructureType 1000165000

pattern VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV ::
        VkStructureType

pattern VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV =
        VkStructureType 1000165001

pattern VK_STRUCTURE_TYPE_GEOMETRY_NV :: VkStructureType

pattern VK_STRUCTURE_TYPE_GEOMETRY_NV = VkStructureType 1000165003

pattern VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV :: VkStructureType

pattern VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV =
        VkStructureType 1000165004

pattern VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV :: VkStructureType

pattern VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV =
        VkStructureType 1000165005

pattern VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV
        = VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_KHR

pattern VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV
        = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR

pattern VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV
        :: VkStructureType

pattern VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV
        = VkStructureType 1000165008

pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV
        :: VkStructureType

pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV
        = VkStructureType 1000165009

pattern VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV
        :: VkStructureType

pattern VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV =
        VkStructureType 1000165011

pattern VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV ::
        VkStructureType

pattern VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV =
        VkStructureType 1000165012

pattern VK_SHADER_STAGE_RAYGEN_BIT_NV =
        VK_SHADER_STAGE_RAYGEN_BIT_KHR

pattern VK_SHADER_STAGE_ANY_HIT_BIT_NV =
        VK_SHADER_STAGE_ANY_HIT_BIT_KHR

pattern VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV =
        VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR

pattern VK_SHADER_STAGE_MISS_BIT_NV = VK_SHADER_STAGE_MISS_BIT_KHR

pattern VK_SHADER_STAGE_INTERSECTION_BIT_NV =
        VK_SHADER_STAGE_INTERSECTION_BIT_KHR

pattern VK_SHADER_STAGE_CALLABLE_BIT_NV =
        VK_SHADER_STAGE_CALLABLE_BIT_KHR

pattern VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV =
        VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR

pattern VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV =
        VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR

pattern VK_BUFFER_USAGE_RAY_TRACING_BIT_NV =
        VK_BUFFER_USAGE_RAY_TRACING_BIT_KHR

pattern VK_PIPELINE_BIND_POINT_RAY_TRACING_NV =
        VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR

pattern VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV =
        VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR

pattern VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV =
        VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR

pattern VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV =
        VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR

pattern VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV =
        VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR

-- | bitpos = @5@
pattern VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV ::
        VkPipelineCreateBitmask a

pattern VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV =
        VkPipelineCreateBitmask 32

pattern VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV =
        VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR

pattern VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT =
        VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT

pattern VK_INDEX_TYPE_NONE_NV = VK_INDEX_TYPE_NONE_KHR

pattern VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV =
        VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR

pattern VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV =
        VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR

pattern VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV =
        VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR

pattern VK_GEOMETRY_TYPE_TRIANGLES_NV =
        VK_GEOMETRY_TYPE_TRIANGLES_KHR

pattern VK_GEOMETRY_TYPE_AABBS_NV = VK_GEOMETRY_TYPE_AABBS_KHR

pattern VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV =
        VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR

pattern VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV =
        VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR

pattern VK_GEOMETRY_OPAQUE_BIT_NV = VK_GEOMETRY_OPAQUE_BIT_KHR

pattern VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV =
        VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR

pattern VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV =
        VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR

pattern VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV
        = VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR

pattern VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV =
        VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR

pattern VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV =
        VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR

pattern VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV =
        VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR

pattern VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV =
        VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR

pattern VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV =
        VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR

pattern VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV =
        VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR

pattern VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV =
        VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR

pattern VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV =
        VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR

pattern VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV =
        VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR

pattern VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV
        = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_KHR

pattern VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV
        =
        VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_KHR

pattern VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV
        =
        VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_KHR