diff --git a/debug/Debug.hs b/debug/Debug.hs
new file mode 100644
--- /dev/null
+++ b/debug/Debug.hs
@@ -0,0 +1,9 @@
+{-# LANGUAGE TemplateHaskell #-}
+
+module Debug where
+
+import Language.Haskell.TH
+
+runIO $ putStrLn "gpu-vulkan Debug: ************* DEBUG DEBUG DEBUG **************" >> pure []
+
+debug = True
diff --git a/gpu-vulkan-middle.cabal b/gpu-vulkan-middle.cabal
--- a/gpu-vulkan-middle.cabal
+++ b/gpu-vulkan-middle.cabal
@@ -5,7 +5,7 @@
 -- see: https://github.com/sol/hpack
 
 name:           gpu-vulkan-middle
-version:        0.1.0.57
+version:        0.1.0.60
 synopsis:       Medium wrapper for Vulkan API
 description:    Please see the README on GitHub at <https://github.com/YoshikuniJujo/gpu-vulkan-middle#readme>
 category:       GPU
@@ -31,6 +31,10 @@
   type: git
   location: https://github.com/YoshikuniJujo/gpu-vulkan-middle
 
+flag debug
+  manual: True
+  default: False
+
 library
   exposed-modules:
       Gpu.Vulkan.AllocationCallbacks.Middle
@@ -126,6 +130,10 @@
       Gpu.Vulkan.Subpass.Middle
       Gpu.Vulkan.VertexInput.Enum
       Gpu.Vulkan.VertexInput.Middle
+      Gpu.Vulkan.Sparse.Enum
+      Gpu.Vulkan.Sparse.Middle
+      Gpu.Vulkan.Sparse.Buffer.Middle
+      Gpu.Vulkan.Sparse.Image.Middle
   other-modules:
       Gpu.Vulkan.Attachment.Middle.Internal
       Gpu.Vulkan.Base.Middle
@@ -172,6 +180,9 @@
       Gpu.Vulkan.Sample.Middle.Internal
       Gpu.Vulkan.Sampler.Middle.Internal
       Gpu.Vulkan.ShaderModule.Middle.Internal
+      Gpu.Vulkan.Sparse.Buffer.Middle.Internal
+      Gpu.Vulkan.Sparse.Image.Middle.Internal
+      Gpu.Vulkan.Sparse.Middle.Internal
       Gpu.Vulkan.Specialization.Middle.Internal
       Gpu.Vulkan.Subpass.Middle.Internal
       Gpu.Vulkan.VertexInput.Middle.Internal
@@ -186,7 +197,7 @@
     , containers <1
     , data-default <1
     , exception-hierarchy <1
-    , gpu-vulkan-core <1
+    , gpu-vulkan-core >=0.1.0.11 && <1
     , hetero-parameter-list <1
     , language-spir-v <1
     , mtl <3
@@ -202,6 +213,16 @@
     , union-color <1
     , uuid <2
   default-language: Haskell2010
+  if flag(debug)
+    other-modules:
+        Debug
+    hs-source-dirs:
+        debug
+  else
+    other-modules:
+        Debug
+    hs-source-dirs:
+        nodebug
 
 test-suite gpu-vulkan-middle-test
   type: exitcode-stdio-1.0
@@ -218,7 +239,7 @@
     , containers <1
     , data-default <1
     , exception-hierarchy <1
-    , gpu-vulkan-core <1
+    , gpu-vulkan-core >=0.1.0.11 && <1
     , gpu-vulkan-middle
     , hetero-parameter-list <1
     , language-spir-v <1
diff --git a/nodebug/Debug.hs b/nodebug/Debug.hs
new file mode 100644
--- /dev/null
+++ b/nodebug/Debug.hs
@@ -0,0 +1,3 @@
+module Debug where
+
+debug = False
diff --git a/src/Gpu/Vulkan/Attachment/Enum.hsc b/src/Gpu/Vulkan/Attachment/Enum.hsc
--- a/src/Gpu/Vulkan/Attachment/Enum.hsc
+++ b/src/Gpu/Vulkan/Attachment/Enum.hsc
@@ -29,6 +29,7 @@
 	("LoadOpLoad", #{const VK_ATTACHMENT_LOAD_OP_LOAD}),
 	("LoadOpClear", #{const VK_ATTACHMENT_LOAD_OP_CLEAR}),
 	("LoadOpDontCare", #{const VK_ATTACHMENT_LOAD_OP_DONT_CARE}),
+	("LoadOpNoneKhr", #{const VK_ATTACHMENT_LOAD_OP_NONE_KHR}),
 	("LoadOpNoneExt", #{const VK_ATTACHMENT_LOAD_OP_NONE_EXT}),
 	("LoadOpMaxEnum", #{const VK_ATTACHMENT_LOAD_OP_MAX_ENUM}) ]
 
diff --git a/src/Gpu/Vulkan/Buffer/Enum.hsc b/src/Gpu/Vulkan/Buffer/Enum.hsc
--- a/src/Gpu/Vulkan/Buffer/Enum.hsc
+++ b/src/Gpu/Vulkan/Buffer/Enum.hsc
@@ -32,6 +32,8 @@
 		#{const VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT}),
 	("CreateDescriptorBufferCaptureReplayBitExt",
 		#{const VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT}),
+	("CreateVideoProfileIndependentBitKhr",
+		#{const VK_BUFFER_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR}),
 	("CreateDeviceAddressCaptureReplayBitExt",
 		#{const VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT}),
 	("CreateDeviceAddressCaptureReplayBitKhr",
@@ -81,6 +83,10 @@
 		#{const VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR}),
 	("UsageShaderBindingTableBitKhr",
 		#{const VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR}),
+	("UsageVideoEncodeDstBitKhr",
+		#{const VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR}),
+	("UsageVideoEncodeSrcBitKhr",
+		#{const VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR}),
 	("UsageSamplerDescriptorBufferBitExt",
 		#{const VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT}),
 	("UsageResourceDescriptorBufferBitExt",
diff --git a/src/Gpu/Vulkan/DescriptorPool/Enum.hsc b/src/Gpu/Vulkan/DescriptorPool/Enum.hsc
--- a/src/Gpu/Vulkan/DescriptorPool/Enum.hsc
+++ b/src/Gpu/Vulkan/DescriptorPool/Enum.hsc
@@ -25,6 +25,10 @@
 		#{const VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT}),
 	("CreateHostOnlyBitExt",
 		#{const VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT}),
+	("CreateAllowOverallocationSetsBitNv",
+		#{const VK_DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_SETS_BIT_NV}),
+	("CreateAllowOverallocationPoolsBitNv",
+		#{const VK_DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_POOLS_BIT_NV}),
 	("CreateUpdateAfterBindBitExt",
 		#{const VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT}),
 	("CreateHostOnlyBitValve",
diff --git a/src/Gpu/Vulkan/DescriptorSetLayout/Enum.hsc b/src/Gpu/Vulkan/DescriptorSetLayout/Enum.hsc
--- a/src/Gpu/Vulkan/DescriptorSetLayout/Enum.hsc
+++ b/src/Gpu/Vulkan/DescriptorSetLayout/Enum.hsc
@@ -28,8 +28,12 @@
 		#{const VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT}),
 	("CreateEmbeddedImmutableSamplersBitExt",
 		#{const VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT}),
+	("CreateIndirectBindableBitNv",
+		#{const VK_DESCRIPTOR_SET_LAYOUT_CREATE_INDIRECT_BINDABLE_BIT_NV}),
 	("CreateHostOnlyPoolBitExt",
 		#{const VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT}),
+	("CreatePerStageBitNv",
+		#{const VK_DESCRIPTOR_SET_LAYOUT_CREATE_PER_STAGE_BIT_NV}),
 	("CreateUpdateAfterBindPoolBitExt",
 		#{const VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT}),
 	("CreateHostOnlyPoolBitValve",
diff --git a/src/Gpu/Vulkan/Device/Middle/Internal.hsc b/src/Gpu/Vulkan/Device/Middle/Internal.hsc
--- a/src/Gpu/Vulkan/Device/Middle/Internal.hsc
+++ b/src/Gpu/Vulkan/Device/Middle/Internal.hsc
@@ -58,7 +58,7 @@
 import qualified Gpu.Vulkan.PhysicalDevice.Middle.Internal as PhysicalDevice
 import qualified Gpu.Vulkan.PhysicalDevice.Struct as PhysicalDevice
 import qualified Gpu.Vulkan.Device.Core as C
-import qualified Gpu.Vulkan.Queue.Middle.Internal as Queue
+import {-# SOURCE #-} qualified Gpu.Vulkan.Queue.Middle.Internal as Queue
 
 import qualified Gpu.Vulkan.QueueFamily.EnumManual as QueueFamily
 
diff --git a/src/Gpu/Vulkan/Enum.hsc b/src/Gpu/Vulkan/Enum.hsc
--- a/src/Gpu/Vulkan/Enum.hsc
+++ b/src/Gpu/Vulkan/Enum.hsc
@@ -550,6 +550,62 @@
 		#{const VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX}),
 	("StructureTypeImageViewAddressPropertiesNvx",
 		#{const VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX}),
+	("StructureTypeVideoEncodeH264CapabilitiesKhr",
+		#{const VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_KHR}),
+	("StructureTypeVideoEncodeH264SessionParametersCreateInfoKhr",
+		#{const VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR}),
+	("StructureTypeVideoEncodeH264SessionParametersAddInfoKhr",
+		#{const VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR}),
+	("StructureTypeVideoEncodeH264PictureInfoKhr",
+		#{const VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PICTURE_INFO_KHR}),
+	("StructureTypeVideoEncodeH264DpbSlotInfoKhr",
+		#{const VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_KHR}),
+	("StructureTypeVideoEncodeH264NaluSliceInfoKhr",
+		#{const VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_INFO_KHR}),
+	("StructureTypeVideoEncodeH264GopRemainingFrameInfoKhr",
+		#{const VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_GOP_REMAINING_FRAME_INFO_KHR}),
+	("StructureTypeVideoEncodeH264ProfileInfoKhr",
+		#{const VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_INFO_KHR}),
+	("StructureTypeVideoEncodeH264RateControlInfoKhr",
+		#{const VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_KHR}),
+	("StructureTypeVideoEncodeH264RateControlLayerInfoKhr",
+		#{const VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_KHR}),
+	("StructureTypeVideoEncodeH264SessionCreateInfoKhr",
+		#{const VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_CREATE_INFO_KHR}),
+	("StructureTypeVideoEncodeH264QualityLevelPropertiesKhr",
+		#{const VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_QUALITY_LEVEL_PROPERTIES_KHR}),
+	("StructureTypeVideoEncodeH264SessionParametersGetInfoKhr",
+		#{const VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_GET_INFO_KHR}),
+	("StructureTypeVideoEncodeH264SessionParametersFeedbackInfoKhr",
+		#{const VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_FEEDBACK_INFO_KHR}),
+	("StructureTypeVideoEncodeH265CapabilitiesKhr",
+		#{const VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_KHR}),
+	("StructureTypeVideoEncodeH265SessionParametersCreateInfoKhr",
+		#{const VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR}),
+	("StructureTypeVideoEncodeH265SessionParametersAddInfoKhr",
+		#{const VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR}),
+	("StructureTypeVideoEncodeH265PictureInfoKhr",
+		#{const VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PICTURE_INFO_KHR}),
+	("StructureTypeVideoEncodeH265DpbSlotInfoKhr",
+		#{const VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_KHR}),
+	("StructureTypeVideoEncodeH265NaluSliceSegmentInfoKhr",
+		#{const VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_INFO_KHR}),
+	("StructureTypeVideoEncodeH265GopRemainingFrameInfoKhr",
+		#{const VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_GOP_REMAINING_FRAME_INFO_KHR}),
+	("StructureTypeVideoEncodeH265ProfileInfoKhr",
+		#{const VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_INFO_KHR}),
+	("StructureTypeVideoEncodeH265RateControlInfoKhr",
+		#{const VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_KHR}),
+	("StructureTypeVideoEncodeH265RateControlLayerInfoKhr",
+		#{const VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_KHR}),
+	("StructureTypeVideoEncodeH265SessionCreateInfoKhr",
+		#{const VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_CREATE_INFO_KHR}),
+	("StructureTypeVideoEncodeH265QualityLevelPropertiesKhr",
+		#{const VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_QUALITY_LEVEL_PROPERTIES_KHR}),
+	("StructureTypeVideoEncodeH265SessionParametersGetInfoKhr",
+		#{const VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_GET_INFO_KHR}),
+	("StructureTypeVideoEncodeH265SessionParametersFeedbackInfoKhr",
+		#{const VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_FEEDBACK_INFO_KHR}),
 	("StructureTypeVideoDecodeH264CapabilitiesKhr",
 		#{const VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_KHR}),
 	("StructureTypeVideoDecodeH264PictureInfoKhr",
@@ -670,6 +726,8 @@
 		#{const VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT}),
 	("StructureTypeHdrMetadataExt",
 		#{const VK_STRUCTURE_TYPE_HDR_METADATA_EXT}),
+	("StructureTypePhysicalDeviceRelaxedLineRasterizationFeaturesImg",
+		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RELAXED_LINE_RASTERIZATION_FEATURES_IMG}),
 	("StructureTypeSharedPresentSurfaceCapabilitiesKhr",
 		#{const VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR}),
 	("StructureTypeImportFenceWin32HandleInfoKhr",
@@ -869,8 +927,6 @@
 		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR}),
 	("StructureTypePipelineCompilerControlCreateInfoAmd",
 		#{const VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD}),
-	("StructureTypeCalibratedTimestampInfoExt",
-		#{const VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT}),
 	("StructureTypePhysicalDeviceShaderCorePropertiesAmd",
 		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD}),
 	("StructureTypeVideoDecodeH265CapabilitiesKhr",
@@ -895,14 +951,8 @@
 		#{const VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD}),
 	("StructureTypePhysicalDeviceVertexAttributeDivisorPropertiesExt",
 		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT}),
-	("StructureTypePipelineVertexInputDivisorStateCreateInfoExt",
-		#{const VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT}),
-	("StructureTypePhysicalDeviceVertexAttributeDivisorFeaturesExt",
-		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT}),
 	("StructureTypePresentFrameTokenGgp",
 		#{const VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP}),
-	("StructureTypePhysicalDeviceComputeShaderDerivativesFeaturesNv",
-		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV}),
 	("StructureTypePhysicalDeviceMeshShaderFeaturesNv",
 		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV}),
 	("StructureTypePhysicalDeviceMeshShaderPropertiesNv",
@@ -961,8 +1011,16 @@
 		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD}),
 	("StructureTypePhysicalDeviceCoherentMemoryFeaturesAmd",
 		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD}),
+	("StructureTypePhysicalDeviceDynamicRenderingLocalReadFeaturesKhr",
+		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES_KHR}),
+	("StructureTypeRenderingAttachmentLocationInfoKhr",
+		#{const VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_LOCATION_INFO_KHR}),
+	("StructureTypeRenderingInputAttachmentIndexInfoKhr",
+		#{const VK_STRUCTURE_TYPE_RENDERING_INPUT_ATTACHMENT_INDEX_INFO_KHR}),
 	("StructureTypePhysicalDeviceShaderImageAtomicInt64FeaturesExt",
 		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT}),
+	("StructureTypePhysicalDeviceShaderQuadControlFeaturesKhr",
+		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_QUAD_CONTROL_FEATURES_KHR}),
 	("StructureTypePhysicalDeviceMemoryBudgetPropertiesExt",
 		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT}),
 	("StructureTypePhysicalDeviceMemoryPriorityFeaturesExt",
@@ -1011,16 +1069,8 @@
 		#{const VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT}),
 	("StructureTypeHeadlessSurfaceCreateInfoExt",
 		#{const VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT}),
-	("StructureTypePhysicalDeviceLineRasterizationFeaturesExt",
-		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT}),
-	("StructureTypePipelineRasterizationLineStateCreateInfoExt",
-		#{const VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT}),
-	("StructureTypePhysicalDeviceLineRasterizationPropertiesExt",
-		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT}),
 	("StructureTypePhysicalDeviceShaderAtomicFloatFeaturesExt",
 		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT}),
-	("StructureTypePhysicalDeviceIndexTypeUint8FeaturesExt",
-		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT}),
 	("StructureTypePhysicalDeviceExtendedDynamicStateFeaturesExt",
 		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT}),
 	("StructureTypePhysicalDevicePipelineExecutablePropertiesFeaturesKhr",
@@ -1035,10 +1085,36 @@
 		#{const VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR}),
 	("StructureTypePipelineExecutableInternalRepresentationKhr",
 		#{const VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR}),
+	("StructureTypePhysicalDeviceHostImageCopyFeaturesExt",
+		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT}),
+	("StructureTypePhysicalDeviceHostImageCopyPropertiesExt",
+		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT}),
+	("StructureTypeMemoryToImageCopyExt",
+		#{const VK_STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY_EXT}),
+	("StructureTypeImageToMemoryCopyExt",
+		#{const VK_STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY_EXT}),
+	("StructureTypeCopyImageToMemoryInfoExt",
+		#{const VK_STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO_EXT}),
+	("StructureTypeCopyMemoryToImageInfoExt",
+		#{const VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO_EXT}),
+	("StructureTypeHostImageLayoutTransitionInfoExt",
+		#{const VK_STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO_EXT}),
+	("StructureTypeCopyImageToImageInfoExt",
+		#{const VK_STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO_EXT}),
+	("StructureTypeSubresourceHostMemcpySizeExt",
+		#{const VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE_EXT}),
+	("StructureTypeHostImageCopyDevicePerformanceQueryExt",
+		#{const VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT}),
 	("StructureTypeMemoryMapInfoKhr",
 		#{const VK_STRUCTURE_TYPE_MEMORY_MAP_INFO_KHR}),
 	("StructureTypeMemoryUnmapInfoKhr",
 		#{const VK_STRUCTURE_TYPE_MEMORY_UNMAP_INFO_KHR}),
+	("StructureTypePhysicalDeviceMapMemoryPlacedFeaturesExt",
+		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_FEATURES_EXT}),
+	("StructureTypePhysicalDeviceMapMemoryPlacedPropertiesExt",
+		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_PROPERTIES_EXT}),
+	("StructureTypeMemoryMapPlacedInfoExt",
+		#{const VK_STRUCTURE_TYPE_MEMORY_MAP_PLACED_INFO_EXT}),
 	("StructureTypePhysicalDeviceShaderAtomicFloat2FeaturesExt",
 		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT}),
 	("StructureTypeSurfacePresentModeExt",
@@ -1085,6 +1161,12 @@
 		#{const VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM}),
 	("StructureTypeRenderPassTransformBeginInfoQcom",
 		#{const VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM}),
+	("StructureTypePhysicalDeviceDepthBiasControlFeaturesExt",
+		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT}),
+	("StructureTypeDepthBiasInfoExt",
+		#{const VK_STRUCTURE_TYPE_DEPTH_BIAS_INFO_EXT}),
+	("StructureTypeDepthBiasRepresentationInfoExt",
+		#{const VK_STRUCTURE_TYPE_DEPTH_BIAS_REPRESENTATION_INFO_EXT}),
 	("StructureTypePhysicalDeviceDeviceMemoryReportFeaturesExt",
 		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT}),
 	("StructureTypeDeviceDeviceMemoryReportCreateInfoExt",
@@ -1113,10 +1195,42 @@
 		#{const VK_STRUCTURE_TYPE_PRESENT_ID_KHR}),
 	("StructureTypePhysicalDevicePresentIdFeaturesKhr",
 		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR}),
+	("StructureTypeVideoEncodeInfoKhr",
+		#{const VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR}),
+	("StructureTypeVideoEncodeRateControlInfoKhr",
+		#{const VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR}),
+	("StructureTypeVideoEncodeRateControlLayerInfoKhr",
+		#{const VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR}),
+	("StructureTypeVideoEncodeCapabilitiesKhr",
+		#{const VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR}),
+	("StructureTypeVideoEncodeUsageInfoKhr",
+		#{const VK_STRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHR}),
+	("StructureTypeQueryPoolVideoEncodeFeedbackCreateInfoKhr",
+		#{const VK_STRUCTURE_TYPE_QUERY_POOL_VIDEO_ENCODE_FEEDBACK_CREATE_INFO_KHR}),
+	("StructureTypePhysicalDeviceVideoEncodeQualityLevelInfoKhr",
+		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR}),
+	("StructureTypeVideoEncodeQualityLevelPropertiesKhr",
+		#{const VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_PROPERTIES_KHR}),
+	("StructureTypeVideoEncodeQualityLevelInfoKhr",
+		#{const VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR}),
+	("StructureTypeVideoEncodeSessionParametersGetInfoKhr",
+		#{const VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_GET_INFO_KHR}),
+	("StructureTypeVideoEncodeSessionParametersFeedbackInfoKhr",
+		#{const VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_FEEDBACK_INFO_KHR}),
 	("StructureTypePhysicalDeviceDiagnosticsConfigFeaturesNv",
 		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV}),
 	("StructureTypeDeviceDiagnosticsConfigCreateInfoNv",
 		#{const VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV}),
+	("StructureTypeCudaModuleCreateInfoNv",
+		#{const VK_STRUCTURE_TYPE_CUDA_MODULE_CREATE_INFO_NV}),
+	("StructureTypeCudaFunctionCreateInfoNv",
+		#{const VK_STRUCTURE_TYPE_CUDA_FUNCTION_CREATE_INFO_NV}),
+	("StructureTypeCudaLaunchInfoNv",
+		#{const VK_STRUCTURE_TYPE_CUDA_LAUNCH_INFO_NV}),
+	("StructureTypePhysicalDeviceCudaKernelLaunchFeaturesNv",
+		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_FEATURES_NV}),
+	("StructureTypePhysicalDeviceCudaKernelLaunchPropertiesNv",
+		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_PROPERTIES_NV}),
 	("StructureTypeQueryLowLatencySupportNv",
 		#{const VK_STRUCTURE_TYPE_QUERY_LOW_LATENCY_SUPPORT_NV}),
 	("StructureTypeExportMetalObjectCreateInfoExt",
@@ -1217,10 +1331,6 @@
 		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT}),
 	("StructureTypeImageCompressionControlExt",
 		#{const VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT}),
-	("StructureTypeSubresourceLayout2Ext",
-		#{const VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT}),
-	("StructureTypeImageSubresource2Ext",
-		#{const VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT}),
 	("StructureTypeImageCompressionPropertiesExt",
 		#{const VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT}),
 	("StructureTypePhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesExt",
@@ -1301,6 +1411,10 @@
 		#{const VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT}),
 	("StructureTypePhysicalDevicePipelinePropertiesFeaturesExt",
 		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT}),
+	("StructureTypePhysicalDeviceFrameBoundaryFeaturesExt",
+		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT}),
+	("StructureTypeFrameBoundaryExt",
+		#{const VK_STRUCTURE_TYPE_FRAME_BOUNDARY_EXT}),
 	("StructureTypePhysicalDeviceMultisampledRenderToSingleSampledFeaturesExt",
 		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT}),
 	("StructureTypeSubpassResolvePerformanceQueryExt",
@@ -1357,6 +1471,8 @@
 		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI}),
 	("StructureTypePhysicalDeviceClusterCullingShaderPropertiesHuawei",
 		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI}),
+	("StructureTypePhysicalDeviceClusterCullingShaderVrsFeaturesHuawei",
+		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_HUAWEI}),
 	("StructureTypePhysicalDeviceBorderColorSwizzleFeaturesExt",
 		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT}),
 	("StructureTypeSamplerBorderColorComponentMappingCreateInfoExt",
@@ -1365,6 +1481,14 @@
 		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT}),
 	("StructureTypePhysicalDeviceShaderCorePropertiesArm",
 		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM}),
+	("StructureTypePhysicalDeviceShaderSubgroupRotateFeaturesKhr",
+		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES_KHR}),
+	("StructureTypeDeviceQueueShaderCoreControlCreateInfoArm",
+		#{const VK_STRUCTURE_TYPE_DEVICE_QUEUE_SHADER_CORE_CONTROL_CREATE_INFO_ARM}),
+	("StructureTypePhysicalDeviceSchedulingControlsFeaturesArm",
+		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_FEATURES_ARM}),
+	("StructureTypePhysicalDeviceSchedulingControlsPropertiesArm",
+		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_PROPERTIES_ARM}),
 	("StructureTypePhysicalDeviceImageSlicedViewOf3dFeaturesExt",
 		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT}),
 	("StructureTypeImageViewSlicedCreateInfoExt",
@@ -1379,6 +1503,16 @@
 		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT}),
 	("StructureTypePhysicalDeviceNonSeamlessCubeMapFeaturesExt",
 		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT}),
+	("StructureTypePhysicalDeviceRenderPassStripedFeaturesArm",
+		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM}),
+	("StructureTypePhysicalDeviceRenderPassStripedPropertiesArm",
+		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM}),
+	("StructureTypeRenderPassStripeBeginInfoArm",
+		#{const VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_BEGIN_INFO_ARM}),
+	("StructureTypeRenderPassStripeInfoArm",
+		#{const VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_INFO_ARM}),
+	("StructureTypeRenderPassStripeSubmitInfoArm",
+		#{const VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_SUBMIT_INFO_ARM}),
 	("StructureTypePhysicalDeviceFragmentDensityMapOffsetFeaturesQcom",
 		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM}),
 	("StructureTypePhysicalDeviceFragmentDensityMapOffsetPropertiesQcom",
@@ -1393,8 +1527,16 @@
 		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV}),
 	("StructureTypePhysicalDeviceMemoryDecompressionPropertiesNv",
 		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV}),
+	("StructureTypePhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNv",
+		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV}),
+	("StructureTypeComputePipelineIndirectBufferInfoNv",
+		#{const VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV}),
+	("StructureTypePipelineIndirectDeviceAddressInfoNv",
+		#{const VK_STRUCTURE_TYPE_PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV}),
 	("StructureTypePhysicalDeviceLinearColorAttachmentFeaturesNv",
 		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV}),
+	("StructureTypePhysicalDeviceShaderMaximalReconvergenceFeaturesKhr",
+		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MAXIMAL_RECONVERGENCE_FEATURES_KHR}),
 	("StructureTypePhysicalDeviceImageCompressionControlSwapchainFeaturesExt",
 		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT}),
 	("StructureTypePhysicalDeviceImageProcessingFeaturesQcom",
@@ -1403,6 +1545,12 @@
 		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM}),
 	("StructureTypeImageViewSampleWeightCreateInfoQcom",
 		#{const VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM}),
+	("StructureTypePhysicalDeviceNestedCommandBufferFeaturesExt",
+		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT}),
+	("StructureTypePhysicalDeviceNestedCommandBufferPropertiesExt",
+		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT}),
+	("StructureTypeExternalMemoryAcquireUnmodifiedExt",
+		#{const VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT}),
 	("StructureTypePhysicalDeviceExtendedDynamicState3FeaturesExt",
 		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT}),
 	("StructureTypePhysicalDeviceExtendedDynamicState3PropertiesExt",
@@ -1447,6 +1595,34 @@
 		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT}),
 	("StructureTypePhysicalDevicePipelineProtectedAccessFeaturesExt",
 		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT}),
+	("StructureTypePhysicalDeviceExternalFormatResolveFeaturesAndroid",
+		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID}),
+	("StructureTypePhysicalDeviceExternalFormatResolvePropertiesAndroid",
+		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID}),
+	("StructureTypeAndroidHardwareBufferFormatResolvePropertiesAndroid",
+		#{const VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID}),
+	("StructureTypePhysicalDeviceMaintenance5FeaturesKhr",
+		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR}),
+	("StructureTypePhysicalDeviceMaintenance5PropertiesKhr",
+		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR}),
+	("StructureTypeRenderingAreaInfoKhr",
+		#{const VK_STRUCTURE_TYPE_RENDERING_AREA_INFO_KHR}),
+	("StructureTypeDeviceImageSubresourceInfoKhr",
+		#{const VK_STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO_KHR}),
+	("StructureTypeSubresourceLayout2Khr",
+		#{const VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_KHR}),
+	("StructureTypeImageSubresource2Khr",
+		#{const VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_KHR}),
+	("StructureTypePipelineCreateFlags2CreateInfoKhr",
+		#{const VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR}),
+	("StructureTypeBufferUsageFlags2CreateInfoKhr",
+		#{const VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR}),
+	("StructureTypePhysicalDeviceAntiLagFeaturesAmd",
+		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ANTI_LAG_FEATURES_AMD}),
+	("StructureTypeAntiLagDataAmd",
+		#{const VK_STRUCTURE_TYPE_ANTI_LAG_DATA_AMD}),
+	("StructureTypeAntiLagPresentationInfoAmd",
+		#{const VK_STRUCTURE_TYPE_ANTI_LAG_PRESENTATION_INFO_AMD}),
 	("StructureTypePhysicalDeviceRayTracingPositionFetchFeaturesKhr",
 		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR}),
 	("StructureTypePhysicalDeviceShaderObjectFeaturesExt",
@@ -1455,6 +1631,26 @@
 		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT}),
 	("StructureTypeShaderCreateInfoExt",
 		#{const VK_STRUCTURE_TYPE_SHADER_CREATE_INFO_EXT}),
+	("StructureTypePhysicalDevicePipelineBinaryFeaturesKhr",
+		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_FEATURES_KHR}),
+	("StructureTypePipelineBinaryCreateInfoKhr",
+		#{const VK_STRUCTURE_TYPE_PIPELINE_BINARY_CREATE_INFO_KHR}),
+	("StructureTypePipelineBinaryInfoKhr",
+		#{const VK_STRUCTURE_TYPE_PIPELINE_BINARY_INFO_KHR}),
+	("StructureTypePipelineBinaryKeyKhr",
+		#{const VK_STRUCTURE_TYPE_PIPELINE_BINARY_KEY_KHR}),
+	("StructureTypePhysicalDevicePipelineBinaryPropertiesKhr",
+		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_PROPERTIES_KHR}),
+	("StructureTypeReleaseCapturedPipelineDataInfoKhr",
+		#{const VK_STRUCTURE_TYPE_RELEASE_CAPTURED_PIPELINE_DATA_INFO_KHR}),
+	("StructureTypePipelineBinaryDataInfoKhr",
+		#{const VK_STRUCTURE_TYPE_PIPELINE_BINARY_DATA_INFO_KHR}),
+	("StructureTypePipelineCreateInfoKhr",
+		#{const VK_STRUCTURE_TYPE_PIPELINE_CREATE_INFO_KHR}),
+	("StructureTypeDevicePipelineBinaryInternalCacheControlKhr",
+		#{const VK_STRUCTURE_TYPE_DEVICE_PIPELINE_BINARY_INTERNAL_CACHE_CONTROL_KHR}),
+	("StructureTypePipelineBinaryHandlesInfoKhr",
+		#{const VK_STRUCTURE_TYPE_PIPELINE_BINARY_HANDLES_INFO_KHR}),
 	("StructureTypePhysicalDeviceTilePropertiesFeaturesQcom",
 		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM}),
 	("StructureTypeTilePropertiesQcom",
@@ -1469,22 +1665,208 @@
 		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV}),
 	("StructureTypePhysicalDeviceRayTracingInvocationReorderPropertiesNv",
 		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV}),
+	("StructureTypePhysicalDeviceExtendedSparseAddressSpaceFeaturesNv",
+		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV}),
+	("StructureTypePhysicalDeviceExtendedSparseAddressSpacePropertiesNv",
+		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV}),
 	("StructureTypePhysicalDeviceMutableDescriptorTypeFeaturesExt",
 		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT}),
 	("StructureTypeMutableDescriptorTypeCreateInfoExt",
 		#{const VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT}),
+	("StructureTypePhysicalDeviceLegacyVertexAttributesFeaturesExt",
+		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_FEATURES_EXT}),
+	("StructureTypePhysicalDeviceLegacyVertexAttributesPropertiesExt",
+		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_PROPERTIES_EXT}),
+	("StructureTypeLayerSettingsCreateInfoExt",
+		#{const VK_STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT}),
 	("StructureTypePhysicalDeviceShaderCoreBuiltinsFeaturesArm",
 		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM}),
 	("StructureTypePhysicalDeviceShaderCoreBuiltinsPropertiesArm",
 		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM}),
 	("StructureTypePhysicalDevicePipelineLibraryGroupHandlesFeaturesExt",
 		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT}),
+	("StructureTypePhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesExt",
+		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT}),
+	("StructureTypeLatencySleepModeInfoNv",
+		#{const VK_STRUCTURE_TYPE_LATENCY_SLEEP_MODE_INFO_NV}),
+	("StructureTypeLatencySleepInfoNv",
+		#{const VK_STRUCTURE_TYPE_LATENCY_SLEEP_INFO_NV}),
+	("StructureTypeSetLatencyMarkerInfoNv",
+		#{const VK_STRUCTURE_TYPE_SET_LATENCY_MARKER_INFO_NV}),
+	("StructureTypeGetLatencyMarkerInfoNv",
+		#{const VK_STRUCTURE_TYPE_GET_LATENCY_MARKER_INFO_NV}),
+	("StructureTypeLatencyTimingsFrameReportNv",
+		#{const VK_STRUCTURE_TYPE_LATENCY_TIMINGS_FRAME_REPORT_NV}),
+	("StructureTypeLatencySubmissionPresentIdNv",
+		#{const VK_STRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NV}),
+	("StructureTypeOutOfBandQueueTypeInfoNv",
+		#{const VK_STRUCTURE_TYPE_OUT_OF_BAND_QUEUE_TYPE_INFO_NV}),
+	("StructureTypeSwapchainLatencyCreateInfoNv",
+		#{const VK_STRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NV}),
+	("StructureTypeLatencySurfaceCapabilitiesNv",
+		#{const VK_STRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV}),
+	("StructureTypePhysicalDeviceCooperativeMatrixFeaturesKhr",
+		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR}),
+	("StructureTypeCooperativeMatrixPropertiesKhr",
+		#{const VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_KHR}),
+	("StructureTypePhysicalDeviceCooperativeMatrixPropertiesKhr",
+		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR}),
 	("StructureTypePhysicalDeviceMultiviewPerViewRenderAreasFeaturesQcom",
 		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM}),
 	("StructureTypeMultiviewPerViewRenderAreasRenderPassBeginInfoQcom",
 		#{const VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM}),
+	("StructureTypePhysicalDeviceComputeShaderDerivativesFeaturesKhr",
+		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_KHR}),
+	("StructureTypePhysicalDeviceComputeShaderDerivativesPropertiesKhr",
+		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_PROPERTIES_KHR}),
+	("StructureTypeVideoDecodeAv1CapabilitiesKhr",
+		#{const VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_CAPABILITIES_KHR}),
+	("StructureTypeVideoDecodeAv1PictureInfoKhr",
+		#{const VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_PICTURE_INFO_KHR}),
+	("StructureTypeVideoDecodeAv1ProfileInfoKhr",
+		#{const VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_PROFILE_INFO_KHR}),
+	("StructureTypeVideoDecodeAv1SessionParametersCreateInfoKhr",
+		#{const VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_SESSION_PARAMETERS_CREATE_INFO_KHR}),
+	("StructureTypeVideoDecodeAv1DpbSlotInfoKhr",
+		#{const VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_DPB_SLOT_INFO_KHR}),
+	("StructureTypePhysicalDeviceVideoMaintenance1FeaturesKhr",
+		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_MAINTENANCE_1_FEATURES_KHR}),
+	("StructureTypeVideoInlineQueryInfoKhr",
+		#{const VK_STRUCTURE_TYPE_VIDEO_INLINE_QUERY_INFO_KHR}),
+	("StructureTypePhysicalDevicePerStageDescriptorSetFeaturesNv",
+		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PER_STAGE_DESCRIPTOR_SET_FEATURES_NV}),
+	("StructureTypePhysicalDeviceImageProcessing2FeaturesQcom",
+		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM}),
+	("StructureTypePhysicalDeviceImageProcessing2PropertiesQcom",
+		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM}),
+	("StructureTypeSamplerBlockMatchWindowCreateInfoQcom",
+		#{const VK_STRUCTURE_TYPE_SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM}),
+	("StructureTypeSamplerCubicWeightsCreateInfoQcom",
+		#{const VK_STRUCTURE_TYPE_SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM}),
+	("StructureTypePhysicalDeviceCubicWeightsFeaturesQcom",
+		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM}),
+	("StructureTypeBlitImageCubicWeightsInfoQcom",
+		#{const VK_STRUCTURE_TYPE_BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM}),
+	("StructureTypePhysicalDeviceYcbcrDegammaFeaturesQcom",
+		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM}),
+	("StructureTypeSamplerYcbcrConversionYcbcrDegammaCreateInfoQcom",
+		#{const VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM}),
+	("StructureTypePhysicalDeviceCubicClampFeaturesQcom",
+		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM}),
 	("StructureTypePhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesExt",
 		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT}),
+	("StructureTypePhysicalDeviceVertexAttributeDivisorPropertiesKhr",
+		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR}),
+	("StructureTypePipelineVertexInputDivisorStateCreateInfoKhr",
+		#{const VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR}),
+	("StructureTypePhysicalDeviceVertexAttributeDivisorFeaturesKhr",
+		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR}),
+	("StructureTypePhysicalDeviceShaderFloatControls2FeaturesKhr",
+		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT_CONTROLS_2_FEATURES_KHR}),
+	("StructureTypeScreenBufferPropertiesQnx",
+		#{const VK_STRUCTURE_TYPE_SCREEN_BUFFER_PROPERTIES_QNX}),
+	("StructureTypeScreenBufferFormatPropertiesQnx",
+		#{const VK_STRUCTURE_TYPE_SCREEN_BUFFER_FORMAT_PROPERTIES_QNX}),
+	("StructureTypeImportScreenBufferInfoQnx",
+		#{const VK_STRUCTURE_TYPE_IMPORT_SCREEN_BUFFER_INFO_QNX}),
+	("StructureTypeExternalFormatQnx",
+		#{const VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_QNX}),
+	("StructureTypePhysicalDeviceExternalMemoryScreenBufferFeaturesQnx",
+		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX}),
+	("StructureTypePhysicalDeviceLayeredDriverPropertiesMsft",
+		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT}),
+	("StructureTypePhysicalDeviceIndexTypeUint8FeaturesKhr",
+		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_KHR}),
+	("StructureTypePhysicalDeviceLineRasterizationFeaturesKhr",
+		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_KHR}),
+	("StructureTypePipelineRasterizationLineStateCreateInfoKhr",
+		#{const VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_KHR}),
+	("StructureTypePhysicalDeviceLineRasterizationPropertiesKhr",
+		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_KHR}),
+	("StructureTypeCalibratedTimestampInfoKhr",
+		#{const VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR}),
+	("StructureTypePhysicalDeviceShaderExpectAssumeFeaturesKhr",
+		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES_KHR}),
+	("StructureTypePhysicalDeviceMaintenance6FeaturesKhr",
+		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES_KHR}),
+	("StructureTypePhysicalDeviceMaintenance6PropertiesKhr",
+		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES_KHR}),
+	("StructureTypeBindMemoryStatusKhr",
+		#{const VK_STRUCTURE_TYPE_BIND_MEMORY_STATUS_KHR}),
+	("StructureTypeBindDescriptorSetsInfoKhr",
+		#{const VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_SETS_INFO_KHR}),
+	("StructureTypePushConstantsInfoKhr",
+		#{const VK_STRUCTURE_TYPE_PUSH_CONSTANTS_INFO_KHR}),
+	("StructureTypePushDescriptorSetInfoKhr",
+		#{const VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_INFO_KHR}),
+	("StructureTypePushDescriptorSetWithTemplateInfoKhr",
+		#{const VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO_KHR}),
+	("StructureTypeSetDescriptorBufferOffsetsInfoExt",
+		#{const VK_STRUCTURE_TYPE_SET_DESCRIPTOR_BUFFER_OFFSETS_INFO_EXT}),
+	("StructureTypeBindDescriptorBufferEmbeddedSamplersInfoExt",
+		#{const VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_BUFFER_EMBEDDED_SAMPLERS_INFO_EXT}),
+	("StructureTypePhysicalDeviceDescriptorPoolOverallocationFeaturesNv",
+		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV}),
+	("StructureTypePhysicalDeviceRawAccessChainsFeaturesNv",
+		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAW_ACCESS_CHAINS_FEATURES_NV}),
+	("StructureTypePhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKhr",
+		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_RELAXED_EXTENDED_INSTRUCTION_FEATURES_KHR}),
+	("StructureTypePhysicalDeviceCommandBufferInheritanceFeaturesNv",
+		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMMAND_BUFFER_INHERITANCE_FEATURES_NV}),
+	("StructureTypePhysicalDeviceMaintenance7FeaturesKhr",
+		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_FEATURES_KHR}),
+	("StructureTypePhysicalDeviceMaintenance7PropertiesKhr",
+		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_PROPERTIES_KHR}),
+	("StructureTypePhysicalDeviceLayeredApiPropertiesListKhr",
+		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_LIST_KHR}),
+	("StructureTypePhysicalDeviceLayeredApiPropertiesKhr",
+		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_KHR}),
+	("StructureTypePhysicalDeviceLayeredApiVulkanPropertiesKhr",
+		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_VULKAN_PROPERTIES_KHR}),
+	("StructureTypePhysicalDeviceShaderAtomicFloat16VectorFeaturesNv",
+		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT16_VECTOR_FEATURES_NV}),
+	("StructureTypePhysicalDeviceShaderReplicatedCompositesFeaturesExt",
+		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_REPLICATED_COMPOSITES_FEATURES_EXT}),
+	("StructureTypePhysicalDeviceRayTracingValidationFeaturesNv",
+		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_VALIDATION_FEATURES_NV}),
+	("StructureTypePhysicalDeviceDeviceGeneratedCommandsFeaturesExt",
+		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_EXT}),
+	("StructureTypePhysicalDeviceDeviceGeneratedCommandsPropertiesExt",
+		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_EXT}),
+	("StructureTypeGeneratedCommandsMemoryRequirementsInfoExt",
+		#{const VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_EXT}),
+	("StructureTypeIndirectExecutionSetCreateInfoExt",
+		#{const VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_CREATE_INFO_EXT}),
+	("StructureTypeGeneratedCommandsInfoExt",
+		#{const VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_EXT}),
+	("StructureTypeIndirectCommandsLayoutCreateInfoExt",
+		#{const VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_EXT}),
+	("StructureTypeIndirectCommandsLayoutTokenExt",
+		#{const VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_EXT}),
+	("StructureTypeWriteIndirectExecutionSetPipelineExt",
+		#{const VK_STRUCTURE_TYPE_WRITE_INDIRECT_EXECUTION_SET_PIPELINE_EXT}),
+	("StructureTypeWriteIndirectExecutionSetShaderExt",
+		#{const VK_STRUCTURE_TYPE_WRITE_INDIRECT_EXECUTION_SET_SHADER_EXT}),
+	("StructureTypeIndirectExecutionSetPipelineInfoExt",
+		#{const VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_PIPELINE_INFO_EXT}),
+	("StructureTypeIndirectExecutionSetShaderInfoExt",
+		#{const VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_SHADER_INFO_EXT}),
+	("StructureTypeIndirectExecutionSetShaderLayoutInfoExt",
+		#{const VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_SHADER_LAYOUT_INFO_EXT}),
+	("StructureTypeGeneratedCommandsPipelineInfoExt",
+		#{const VK_STRUCTURE_TYPE_GENERATED_COMMANDS_PIPELINE_INFO_EXT}),
+	("StructureTypeGeneratedCommandsShaderInfoExt",
+		#{const VK_STRUCTURE_TYPE_GENERATED_COMMANDS_SHADER_INFO_EXT}),
+	("StructureTypePhysicalDeviceImageAlignmentControlFeaturesMesa",
+		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_FEATURES_MESA}),
+	("StructureTypePhysicalDeviceImageAlignmentControlPropertiesMesa",
+		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_PROPERTIES_MESA}),
+	("StructureTypeImageAlignmentControlCreateInfoMesa",
+		#{const VK_STRUCTURE_TYPE_IMAGE_ALIGNMENT_CONTROL_CREATE_INFO_MESA}),
+	("StructureTypePhysicalDeviceDepthClampControlFeaturesExt",
+		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_CONTROL_FEATURES_EXT}),
+	("StructureTypePipelineViewportDepthClampControlCreateInfoExt",
+		#{const VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLAMP_CONTROL_CREATE_INFO_EXT}),
 	("StructureTypePhysicalDeviceVariablePointerFeatures",
 		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES}),
 	("StructureTypePhysicalDeviceShaderDrawParameterFeatures",
@@ -1683,6 +2065,12 @@
 		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR}),
 	("StructureTypePhysicalDeviceShaderAtomicInt64FeaturesKhr",
 		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR}),
+	("StructureTypeCalibratedTimestampInfoExt",
+		#{const VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT}),
+	("StructureTypePipelineVertexInputDivisorStateCreateInfoExt",
+		#{const VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT}),
+	("StructureTypePhysicalDeviceVertexAttributeDivisorFeaturesExt",
+		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT}),
 	("StructureTypePipelineCreationFeedbackCreateInfoExt",
 		#{const VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT}),
 	("StructureTypePhysicalDeviceDriverPropertiesKhr",
@@ -1693,6 +2081,8 @@
 		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR}),
 	("StructureTypeSubpassDescriptionDepthStencilResolveKhr",
 		#{const VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR}),
+	("StructureTypePhysicalDeviceComputeShaderDerivativesFeaturesNv",
+		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV}),
 	("StructureTypePhysicalDeviceFragmentShaderBarycentricFeaturesNv",
 		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV}),
 	("StructureTypePhysicalDeviceTimelineSemaphoreFeaturesKhr",
@@ -1747,8 +2137,16 @@
 		#{const VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO_KHR}),
 	("StructureTypeDeviceMemoryOpaqueCaptureAddressInfoKhr",
 		#{const VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO_KHR}),
+	("StructureTypePhysicalDeviceLineRasterizationFeaturesExt",
+		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT}),
+	("StructureTypePipelineRasterizationLineStateCreateInfoExt",
+		#{const VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT}),
+	("StructureTypePhysicalDeviceLineRasterizationPropertiesExt",
+		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT}),
 	("StructureTypePhysicalDeviceHostQueryResetFeaturesExt",
 		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT}),
+	("StructureTypePhysicalDeviceIndexTypeUint8FeaturesExt",
+		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT}),
 	("StructureTypePhysicalDeviceShaderDemoteToHelperInvocationFeaturesExt",
 		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT}),
 	("StructureTypePhysicalDeviceShaderIntegerDotProductFeaturesKhr",
@@ -1807,6 +2205,10 @@
 		#{const VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR}),
 	("StructureTypeImageResolve2Khr",
 		#{const VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR}),
+	("StructureTypeSubresourceLayout2Ext",
+		#{const VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT}),
+	("StructureTypeImageSubresource2Ext",
+		#{const VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT}),
 	("StructureTypePhysicalDeviceRasterizationOrderAttachmentAccessFeaturesArm",
 		#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM}),
 	("StructureTypePhysicalDeviceMutableDescriptorTypeFeaturesValve",
@@ -1916,12 +2318,20 @@
 		#{const VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR}),
 	("ObjectTypeIndirectCommandsLayoutNv",
 		#{const VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV}),
+	("ObjectTypeCudaModuleNv", #{const VK_OBJECT_TYPE_CUDA_MODULE_NV}),
+	("ObjectTypeCudaFunctionNv", #{const VK_OBJECT_TYPE_CUDA_FUNCTION_NV}),
 	("ObjectTypeBufferCollectionFuchsia",
 		#{const VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA}),
 	("ObjectTypeMicromapExt", #{const VK_OBJECT_TYPE_MICROMAP_EXT}),
 	("ObjectTypeOpticalFlowSessionNv",
 		#{const VK_OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV}),
 	("ObjectTypeShaderExt", #{const VK_OBJECT_TYPE_SHADER_EXT}),
+	("ObjectTypePipelineBinaryKhr",
+		#{const VK_OBJECT_TYPE_PIPELINE_BINARY_KHR}),
+	("ObjectTypeIndirectCommandsLayoutExt",
+		#{const VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_EXT}),
+	("ObjectTypeIndirectExecutionSetExt",
+		#{const VK_OBJECT_TYPE_INDIRECT_EXECUTION_SET_EXT}),
 	("ObjectTypeDescriptorUpdateTemplateKhr",
 		#{const VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR}),
 	("ObjectTypeSamplerYcbcrConversionKhr",
@@ -2176,8 +2586,6 @@
 		#{const VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV}),
 	("DynamicStateFragmentShadingRateKhr",
 		#{const VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR}),
-	("DynamicStateLineStippleExt",
-		#{const VK_DYNAMIC_STATE_LINE_STIPPLE_EXT}),
 	("DynamicStateVertexInputExt",
 		#{const VK_DYNAMIC_STATE_VERTEX_INPUT_EXT}),
 	("DynamicStatePatchControlPointsExt",
@@ -2185,8 +2593,6 @@
 	("DynamicStateLogicOpExt", #{const VK_DYNAMIC_STATE_LOGIC_OP_EXT}),
 	("DynamicStateColorWriteEnableExt",
 		#{const VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT}),
-	("DynamicStateTessellationDomainOriginExt",
-		#{const VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT}),
 	("DynamicStateDepthClampEnableExt",
 		#{const VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT}),
 	("DynamicStatePolygonModeExt",
@@ -2207,6 +2613,8 @@
 		#{const VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT}),
 	("DynamicStateColorWriteMaskExt",
 		#{const VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT}),
+	("DynamicStateTessellationDomainOriginExt",
+		#{const VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT}),
 	("DynamicStateRasterizationStreamExt",
 		#{const VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT}),
 	("DynamicStateConservativeRasterizationModeExt",
@@ -2249,6 +2657,12 @@
 		#{const VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV}),
 	("DynamicStateAttachmentFeedbackLoopEnableExt",
 		#{const VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT}),
+	("DynamicStateLineStippleKhr",
+		#{const VK_DYNAMIC_STATE_LINE_STIPPLE_KHR}),
+	("DynamicStateDepthClampRangeExt",
+		#{const VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT}),
+	("DynamicStateLineStippleExt",
+		#{const VK_DYNAMIC_STATE_LINE_STIPPLE_EXT}),
 	("DynamicStateCullModeExt", #{const VK_DYNAMIC_STATE_CULL_MODE_EXT}),
 	("DynamicStateFrontFaceExt", #{const VK_DYNAMIC_STATE_FRONT_FACE_EXT}),
 	("DynamicStatePrimitiveTopologyExt",
@@ -2283,8 +2697,9 @@
 	("IndexTypeUint16", #{const VK_INDEX_TYPE_UINT16}),
 	("IndexTypeUint32", #{const VK_INDEX_TYPE_UINT32}),
 	("IndexTypeNoneKhr", #{const VK_INDEX_TYPE_NONE_KHR}),
-	("IndexTypeUint8Ext", #{const VK_INDEX_TYPE_UINT8_EXT}),
+	("IndexTypeUint8Khr", #{const VK_INDEX_TYPE_UINT8_KHR}),
 	("IndexTypeNoneNv", #{const VK_INDEX_TYPE_NONE_NV}),
+	("IndexTypeUint8Ext", #{const VK_INDEX_TYPE_UINT8_EXT}),
 	("IndexTypeMaxEnum", #{const VK_INDEX_TYPE_MAX_ENUM}) ]
 
 enum "Filter" ''#{type VkFilter}
@@ -2638,7 +3053,10 @@
 		#{const VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG}),
 	("FormatPvrtc24bppSrgbBlockImg",
 		#{const VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG}),
-	("FormatR16g16S105Nv", #{const VK_FORMAT_R16G16_S10_5_NV}),
+	("FormatR16g16Sfixed5Nv", #{const VK_FORMAT_R16G16_SFIXED5_NV}),
+	("FormatA1b5g5r5UnormPack16Khr",
+		#{const VK_FORMAT_A1B5G5R5_UNORM_PACK16_KHR}),
+	("FormatA8UnormKhr", #{const VK_FORMAT_A8_UNORM_KHR}),
 	("FormatAstc4x4SfloatBlockExt",
 		#{const VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT}),
 	("FormatAstc5x4SfloatBlockExt",
@@ -2747,6 +3165,7 @@
 		#{const VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT}),
 	("FormatA4b4g4r4UnormPack16Ext",
 		#{const VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT}),
+	("FormatR16g16S105Nv", #{const VK_FORMAT_R16G16_S10_5_NV}),
 	("FormatMaxEnum", #{const VK_FORMAT_MAX_ENUM}) ]
 
 enum "AccessFlagBits" ''#{type VkAccessFlagBits}
@@ -2806,6 +3225,10 @@
 	("AccessAccelerationStructureWriteBitNv",
 		#{const VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV}),
 	("AccessNoneKhr", #{const VK_ACCESS_NONE_KHR}),
+	("AccessCommandPreprocessReadBitExt",
+		#{const VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_EXT}),
+	("AccessCommandPreprocessWriteBitExt",
+		#{const VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_EXT}),
 	("AccessFlagBitsMaxEnum", #{const VK_ACCESS_FLAG_BITS_MAX_ENUM}) ]
 
 enum "DependencyFlagBits" ''#{type VkDependencyFlagBits}
@@ -2972,6 +3395,10 @@
 		#{const VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT}),
 	("FormatFeatureFragmentShadingRateAttachmentBitKhr",
 		#{const VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR}),
+	("FormatFeatureVideoEncodeInputBitKhr",
+		#{const VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR}),
+	("FormatFeatureVideoEncodeDpbBitKhr",
+		#{const VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR}),
 	("FormatFeatureSampledImageFilterCubicBitImg",
 		#{const VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG}),
 	("FormatFeatureTransferSrcBitKhr",
diff --git a/src/Gpu/Vulkan/Exception/Enum.hsc b/src/Gpu/Vulkan/Exception/Enum.hsc
--- a/src/Gpu/Vulkan/Exception/Enum.hsc
+++ b/src/Gpu/Vulkan/Exception/Enum.hsc
@@ -73,10 +73,14 @@
 	("ThreadDoneKhr", #{const VK_THREAD_DONE_KHR}),
 	("OperationDeferredKhr", #{const VK_OPERATION_DEFERRED_KHR}),
 	("OperationNotDeferredKhr", #{const VK_OPERATION_NOT_DEFERRED_KHR}),
+	("ErrorInvalidVideoStdParametersKhr",
+		#{const VK_ERROR_INVALID_VIDEO_STD_PARAMETERS_KHR}),
 	("ErrorCompressionExhaustedExt",
 		#{const VK_ERROR_COMPRESSION_EXHAUSTED_EXT}),
-	("ErrorIncompatibleShaderBinaryExt",
-		#{const VK_ERROR_INCOMPATIBLE_SHADER_BINARY_EXT}),
+	("IncompatibleShaderBinaryExt",
+		#{const VK_INCOMPATIBLE_SHADER_BINARY_EXT}),
+	("PipelineBinaryMissingKhr", #{const VK_PIPELINE_BINARY_MISSING_KHR}),
+	("ErrorNotEnoughSpaceKhr", #{const VK_ERROR_NOT_ENOUGH_SPACE_KHR}),
 	("ErrorOutOfPoolMemoryKhr", #{const VK_ERROR_OUT_OF_POOL_MEMORY_KHR}),
 	("ErrorInvalidExternalHandleKhr",
 		#{const VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR}),
@@ -90,6 +94,8 @@
 		#{const VK_PIPELINE_COMPILE_REQUIRED_EXT}),
 	("ErrorPipelineCompileRequiredExt",
 		#{const VK_ERROR_PIPELINE_COMPILE_REQUIRED_EXT}),
+	("ErrorIncompatibleShaderBinaryExt",
+		#{const VK_ERROR_INCOMPATIBLE_SHADER_BINARY_EXT}),
 	("ResultMaxEnum", #{const VK_RESULT_MAX_ENUM}) ]
 
 type PtrResult = Result
diff --git a/src/Gpu/Vulkan/Image/Enum.hsc b/src/Gpu/Vulkan/Image/Enum.hsc
--- a/src/Gpu/Vulkan/Image/Enum.hsc
+++ b/src/Gpu/Vulkan/Image/Enum.hsc
@@ -41,6 +41,14 @@
 		#{const VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT}),
 	("UsageFragmentShadingRateAttachmentBitKhr",
 		#{const VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR}),
+	("UsageHostTransferBitExt",
+		#{const VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT}),
+	("UsageVideoEncodeDstBitKhr",
+		#{const VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR}),
+	("UsageVideoEncodeSrcBitKhr",
+		#{const VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR}),
+	("UsageVideoEncodeDpbBitKhr",
+		#{const VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR}),
 	("UsageAttachmentFeedbackLoopBitExt",
 		#{const VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT}),
 	("UsageInvocationMaskBitHuawei",
@@ -126,6 +134,14 @@
 		#{const VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT}),
 	("LayoutFragmentShadingRateAttachmentOptimalKhr",
 		#{const VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR}),
+	("LayoutRenderingLocalReadKhr",
+		#{const VK_IMAGE_LAYOUT_RENDERING_LOCAL_READ_KHR}),
+	("LayoutVideoEncodeDstKhr",
+		#{const VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR}),
+	("LayoutVideoEncodeSrcKhr",
+		#{const VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR}),
+	("LayoutVideoEncodeDpbKhr",
+		#{const VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR}),
 	("LayoutAttachmentFeedbackLoopOptimalExt",
 		#{const VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT}),
 	("LayoutDepthReadOnlyStencilAttachmentOptimalKhr",
@@ -186,6 +202,8 @@
 		#{const VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT}),
 	("CreateFragmentDensityMapOffsetBitQcom",
 		#{const VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM}),
+	("CreateVideoProfileIndependentBitKhr",
+		#{const VK_IMAGE_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR}),
 	("CreateSplitInstanceBindRegionsBitKhr",
 		#{const VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR}),
 	("Create2dArrayCompatibleBitKhr",
diff --git a/src/Gpu/Vulkan/Image/Middle.hs b/src/Gpu/Vulkan/Image/Middle.hs
--- a/src/Gpu/Vulkan/Image/Middle.hs
+++ b/src/Gpu/Vulkan/Image/Middle.hs
@@ -20,7 +20,11 @@
 
 	-- * BLIT
 
-	Blit(..), SubresourceLayers(..)
+	Blit(..), SubresourceLayers(..),
+
+	-- * OTHERS
+
+	Subresource(..)
 
 	) where
 
diff --git a/src/Gpu/Vulkan/Image/Middle/Internal.hs b/src/Gpu/Vulkan/Image/Middle/Internal.hs
--- a/src/Gpu/Vulkan/Image/Middle/Internal.hs
+++ b/src/Gpu/Vulkan/Image/Middle/Internal.hs
@@ -31,8 +31,12 @@
 	-- * BLIT
 
 	Blit(..), blitToCore,
-	SubresourceLayers(..), subresourceLayersToCore
+	SubresourceLayers(..), subresourceLayersToCore,
 
+	-- * OTHERS
+
+	Subresource(..), subresourceToCore
+
 	) where
 
 import Prelude hiding (lookup)
@@ -333,3 +337,16 @@
 	C.blitSrcOffsets = [sof, sot],
 	C.blitDstSubresource = subresourceLayersToCore dsr,
 	C.blitDstOffsets = [dof, dot] }
+
+data Subresource = Subresource {
+	subresourceAspectMask :: AspectFlags,
+	subresourceMipLevel :: Word32,
+	subresourceArrayLayer :: Word32 }
+	deriving Show
+
+subresourceToCore :: Subresource -> C.Subresource
+subresourceToCore Subresource {
+	subresourceAspectMask = AspectFlagBits am,
+	subresourceMipLevel = ml, subresourceArrayLayer = al } = C.Subresource {
+	C.subresourceAspectMask = am,
+	C.subresourceMipLevel = ml, C.subresourceArrayLayer = al }
diff --git a/src/Gpu/Vulkan/Memory/Enum.hsc b/src/Gpu/Vulkan/Memory/Enum.hsc
--- a/src/Gpu/Vulkan/Memory/Enum.hsc
+++ b/src/Gpu/Vulkan/Memory/Enum.hsc
@@ -41,7 +41,7 @@
 		#{const VK_MEMORY_PROPERTY_FLAG_BITS_MAX_ENUM}) ]
 
 enum "HeapFlagBits" ''#{type VkMemoryHeapFlagBits}
-		[''Show, ''Eq, ''Storable, ''Bits] [
+		[''Show, ''Eq, ''Storable, ''Bits, ''FiniteBits] [
 	("HeapFlagsZero", 0),
 	("HeapDeviceLocalBit", #{const VK_MEMORY_HEAP_DEVICE_LOCAL_BIT}),
 	("HeapMultiInstanceBit",
diff --git a/src/Gpu/Vulkan/Pipeline/Enum.hsc b/src/Gpu/Vulkan/Pipeline/Enum.hsc
--- a/src/Gpu/Vulkan/Pipeline/Enum.hsc
+++ b/src/Gpu/Vulkan/Pipeline/Enum.hsc
@@ -94,6 +94,8 @@
 	("StageMeshShaderBitNv",
 		#{const VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV}),
 	("StageNoneKhr", #{const VK_PIPELINE_STAGE_NONE_KHR}),
+	("StageCommandPreprocessBitExt",
+		#{const VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_EXT}),
 	("StageFlagBitsMaxEnum",
 		#{const VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM}) ]
 
diff --git a/src/Gpu/Vulkan/Query/Enum.hsc b/src/Gpu/Vulkan/Query/Enum.hsc
--- a/src/Gpu/Vulkan/Query/Enum.hsc
+++ b/src/Gpu/Vulkan/Query/Enum.hsc
@@ -87,6 +87,8 @@
 		#{const VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV}),
 	("TypePerformanceQueryIntel",
 		#{const VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL}),
+	("TypeVideoEncodeFeedbackKhr",
+		#{const VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR}),
 	("TypeMeshPrimitivesGeneratedExt",
 		#{const VK_QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT}),
 	("TypePrimitivesGeneratedExt",
diff --git a/src/Gpu/Vulkan/Queue/Enum.hsc b/src/Gpu/Vulkan/Queue/Enum.hsc
--- a/src/Gpu/Vulkan/Queue/Enum.hsc
+++ b/src/Gpu/Vulkan/Queue/Enum.hsc
@@ -25,6 +25,7 @@
 	("SparseBindingBit", #{const VK_QUEUE_SPARSE_BINDING_BIT}),
 	("ProtectedBit", #{const VK_QUEUE_PROTECTED_BIT}),
 	("VideoDecodeBitKhr", #{const VK_QUEUE_VIDEO_DECODE_BIT_KHR}),
+	("VideoEncodeBitKhr", #{const VK_QUEUE_VIDEO_ENCODE_BIT_KHR}),
 	("OpticalFlowBitNv", #{const VK_QUEUE_OPTICAL_FLOW_BIT_NV}),
 	("FlagBitsMaxEnum", #{const VK_QUEUE_FLAG_BITS_MAX_ENUM}) ]
 
diff --git a/src/Gpu/Vulkan/Queue/Middle.hs b/src/Gpu/Vulkan/Queue/Middle.hs
--- a/src/Gpu/Vulkan/Queue/Middle.hs
+++ b/src/Gpu/Vulkan/Queue/Middle.hs
@@ -4,6 +4,12 @@
 
 	-- * SUBMIT AND WAIT IDLE
 
-	submit, waitIdle, Q ) where
+	submit, waitIdle, Q,
+
+	-- * SPARSE RESOURCES
+
+	bindSparse, BindSparseInfo(..),
+
+	) where
 
 import Gpu.Vulkan.Queue.Middle.Internal
diff --git a/src/Gpu/Vulkan/Queue/Middle/Internal.hs b/src/Gpu/Vulkan/Queue/Middle/Internal.hs
--- a/src/Gpu/Vulkan/Queue/Middle/Internal.hs
+++ b/src/Gpu/Vulkan/Queue/Middle/Internal.hs
@@ -13,19 +13,39 @@
 
 	-- * SUBMIT AND WAIT IDLE
 
-	submit, waitIdle, Q(..)
+	submit, waitIdle, Q(..),
 
+	-- * SPARSE RESOURCES
+
+	bindSparse, BindSparseInfo(..), bindSparseInfoToCore
+
 	) where
 
+import Foreign.Ptr
 import Foreign.Marshal.Array
+import Foreign.Storable.PeekPoke
+import Control.Arrow
+import Control.Monad.Cont.MiscYj
 import Data.HeteroParList qualified as HeteroParList
 
+import Gpu.Vulkan.Base.Middle
 import Gpu.Vulkan.Middle
 import Gpu.Vulkan.Exception.Middle.Internal
 import Gpu.Vulkan.Exception.Enum
 import Gpu.Vulkan.Fence.Middle.Internal qualified as Fence.M
 import Gpu.Vulkan.Queue.Core qualified as C
 
+import Data.Kind
+import Data.TypeLevel.Maybe qualified as TMaybe
+import Data.HeteroParList qualified as HPList
+import Gpu.Vulkan.Semaphore.Middle.Internal qualified as Semaphore
+import Gpu.Vulkan.Sparse.Buffer.Middle.Internal qualified as Sparse.Buffer
+import Gpu.Vulkan.Sparse.Image.Middle.Internal qualified as Sparse.Image
+import Gpu.Vulkan.Fence.Middle.Internal qualified as Fence
+
+import Control.Monad
+import Debug
+
 newtype Q = Q C.Q deriving Show
 
 submit :: SubmitInfoListToCore ns =>
@@ -39,3 +59,68 @@
 
 waitIdle :: Q -> IO ()
 waitIdle (Q q) = throwUnlessSuccess . Result =<< C.waitIdle q
+
+bindSparse :: HPList.ToListWithCCpsM' WithPoked TMaybe.M mns =>
+	Q -> HPList.PL BindSparseInfo mns -> Maybe Fence.F -> IO ()
+bindSparse (Q q) is mf =
+	when debug (putStrLn
+		"Gpu.Vulkan.Queue.Middle.bindSparse begin") >>
+	HPList.withListWithCCpsM' @_ @WithPoked @TMaybe.M is bindSparseInfoToCore \cis ->
+	let cic = length cis in
+	allocaArray cic \pcis ->
+	pokeArray pcis cis >>
+	let cf = case mf of
+		Just (Fence.F f) -> f
+		Nothing -> NullHandle in
+	when debug (putStrLn
+		"Gpu.Vulkan.Queue.Middle.bindSparse: before C.bindSparse") >>
+	(throwUnlessSuccess . Result =<< C.bindSparse q (fromIntegral cic) pcis cf)
+
+data BindSparseInfo (mn :: Maybe Type) = BindSparseInfo {
+	bindSparseInfoNext :: TMaybe.M mn,
+	bindSparseInfoWaitSemaphores :: [Semaphore.S],
+	bindSparseInfoBufferBinds :: [Sparse.Buffer.MemoryBindInfo],
+	bindSparseInfoImageOpaqueBinds :: [Sparse.Image.OpaqueMemoryBindInfo],
+	bindSparseInfoImageBinds :: [Sparse.Image.MemoryBindInfo],
+	bindSparseInfoSignalSemaphores :: [Semaphore.S] }
+
+bindSparseInfoToCore :: WithPoked (TMaybe.M mn) =>
+	BindSparseInfo mn -> (C.BindSparseInfo -> IO a) -> IO ()
+bindSparseInfoToCore BindSparseInfo {
+	bindSparseInfoNext = mnxt,
+	bindSparseInfoWaitSemaphores =
+		length &&& (Semaphore.unS <$>) -> (wsc, wss),
+	bindSparseInfoBufferBinds = length &&& id -> (bbc, bbs),
+	bindSparseInfoImageOpaqueBinds = length &&& id -> (iobc, iobs),
+	bindSparseInfoImageBinds = length &&& id -> (ibc, ibs),
+	bindSparseInfoSignalSemaphores =
+		length &&& (Semaphore.unS <$>) -> (ssc, sss)
+	} f = withPoked' mnxt \pnxt -> withPtrS pnxt \(castPtr -> pnxt') ->
+		allocaArray wsc \pwss ->
+		pokeArray pwss wss >>
+		allocaArray bbc \pbbs ->
+		(Sparse.Buffer.memoryBindInfoToCore `mapContM` bbs) \cbbs ->
+		pokeArray pbbs cbbs >>
+		allocaArray iobc \piobs ->
+		(Sparse.Image.opaqueMemoryBindInfoToCore
+			`mapContM` iobs) \ciobs ->
+		pokeArray piobs ciobs >>
+		allocaArray ibc \pibs ->
+		(Sparse.Image.memoryBindInfoToCore `mapContM` ibs) \cibs ->
+		pokeArray pibs cibs >>
+		allocaArray ssc \psss ->
+		pokeArray psss sss >>
+		f C.BindSparseInfo {
+			C.bindSparseInfoSType = (),
+			C.bindSparseInfoPNext = pnxt',
+			C.bindSparseInfoWaitSemaphoreCount = fromIntegral wsc,
+			C.bindSparseInfoPWaitSemaphores = pwss,
+			C.bindSparseInfoBufferBindCount = fromIntegral bbc,
+			C.bindSparseInfoPBufferBinds = pbbs,
+			C.bindSparseInfoImageOpaqueBindCount =
+				fromIntegral iobc,
+			C.bindSparseInfoPImageOpaqueBinds = piobs,
+			C.bindSparseInfoImageBindCount = fromIntegral ibc,
+			C.bindSparseInfoPImageBinds = pibs,
+			C.bindSparseInfoSignalSemaphoreCount = fromIntegral ssc,
+			C.bindSparseInfoPSignalSemaphores = psss }
diff --git a/src/Gpu/Vulkan/Queue/Middle/Internal.hs-boot b/src/Gpu/Vulkan/Queue/Middle/Internal.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Gpu/Vulkan/Queue/Middle/Internal.hs-boot
@@ -0,0 +1,10 @@
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# OPTIONS_GHC -Wall -fno-warn-tabs #-}
+
+module Gpu.Vulkan.Queue.Middle.Internal where
+
+import Gpu.Vulkan.Queue.Core qualified as C
+
+newtype Q = Q C.Q
+
+instance Show Q
diff --git a/src/Gpu/Vulkan/Sparse/Buffer/Middle.hs b/src/Gpu/Vulkan/Sparse/Buffer/Middle.hs
new file mode 100644
--- /dev/null
+++ b/src/Gpu/Vulkan/Sparse/Buffer/Middle.hs
@@ -0,0 +1,5 @@
+{-# OPTIONS_GHC -Wall -fno-warn-tabs #-}
+
+module Gpu.Vulkan.Sparse.Buffer.Middle (MemoryBindInfo(..)) where
+
+import Gpu.Vulkan.Sparse.Buffer.Middle.Internal
diff --git a/src/Gpu/Vulkan/Sparse/Buffer/Middle/Internal.hs b/src/Gpu/Vulkan/Sparse/Buffer/Middle/Internal.hs
new file mode 100644
--- /dev/null
+++ b/src/Gpu/Vulkan/Sparse/Buffer/Middle/Internal.hs
@@ -0,0 +1,32 @@
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE BlockArguments #-}
+{-# LANGUAGE ViewPatterns #-}
+{-# OPTIONS_GHC -Wall -fno-warn-tabs #-}
+
+module Gpu.Vulkan.Sparse.Buffer.Middle.Internal where
+
+import Foreign.Ptr
+import Foreign.Marshal.Array
+import Foreign.Storable.PeekPoke
+import Control.Arrow
+
+import Gpu.Vulkan.Buffer.Middle.Internal qualified as Buffer
+import Gpu.Vulkan.Sparse.Middle.Internal
+
+import Gpu.Vulkan.Sparse.Buffer.Core qualified as C
+
+data MemoryBindInfo = MemoryBindInfo {
+	memoryBindInfoBuffer :: Buffer.B,
+	memoryBindInfoBinds :: [MemoryBind] }
+
+memoryBindInfoToCore :: MemoryBindInfo -> (C.MemoryBindInfo -> IO a) -> IO a
+memoryBindInfoToCore MemoryBindInfo {
+	memoryBindInfoBuffer = Buffer.B bffr,
+	memoryBindInfoBinds = length &&& id -> (bndc, bnds) } f = do
+	cbnds <- memoryBindToCore `mapM` bnds
+	allocaArray bndc \pbnds -> do
+		pokeArray pbnds cbnds
+		f C.MemoryBindInfo {
+			C.memoryBindInfoBuffer = bffr,
+			C.memoryBindInfoBindCount = fromIntegral bndc,
+			C.memoryBindInfoPBinds = pbnds }
diff --git a/src/Gpu/Vulkan/Sparse/Enum.hsc b/src/Gpu/Vulkan/Sparse/Enum.hsc
new file mode 100644
--- /dev/null
+++ b/src/Gpu/Vulkan/Sparse/Enum.hsc
@@ -0,0 +1,31 @@
+-- This file is automatically generated by the tools/makeEnum.hs
+--	% stack runghc --cwd tools/ makeEnum
+
+{-# LANGUAGE TemplateHaskell #-}
+{-# LANGUAGE TypeSynonymInstances #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# OPTIONS_GHC -Wall -fno-warn-missing-export-lists -fno-warn-tabs #-}
+
+module Gpu.Vulkan.Sparse.Enum where
+
+import Foreign.Storable
+import Foreign.C.Enum
+import Data.Bits
+import Data.Word
+import Data.Default
+
+#include <vulkan/vulkan.h>
+
+enum "MemoryBindFlagBits" ''#{type VkSparseMemoryBindFlagBits}
+		[''Show, ''Eq, ''Storable, ''Bits] [
+	("MemoryBindFlagsZero", 0),
+	("MemoryBindMetadataBit",
+		#{const VK_SPARSE_MEMORY_BIND_METADATA_BIT}),
+	("MemoryBindFlagBitsMaxEnum",
+		#{const VK_SPARSE_MEMORY_BIND_FLAG_BITS_MAX_ENUM}) ]
+
+instance Default MemoryBindFlagBits where
+	def = MemoryBindFlagsZero
+
+type MemoryBindFlags = MemoryBindFlagBits
diff --git a/src/Gpu/Vulkan/Sparse/Image/Middle.hs b/src/Gpu/Vulkan/Sparse/Image/Middle.hs
new file mode 100644
--- /dev/null
+++ b/src/Gpu/Vulkan/Sparse/Image/Middle.hs
@@ -0,0 +1,6 @@
+{-# OPTIONS_GHC -Wall -fno-warn-tabs #-}
+
+module Gpu.Vulkan.Sparse.Image.Middle (
+	OpaqueMemoryBindInfo(..), MemoryBindInfo(..), MemoryBind(..)) where
+
+import Gpu.Vulkan.Sparse.Image.Middle.Internal
diff --git a/src/Gpu/Vulkan/Sparse/Image/Middle/Internal.hs b/src/Gpu/Vulkan/Sparse/Image/Middle/Internal.hs
new file mode 100644
--- /dev/null
+++ b/src/Gpu/Vulkan/Sparse/Image/Middle/Internal.hs
@@ -0,0 +1,82 @@
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE BlockArguments #-}
+{-# LANGUAGE ViewPatterns #-}
+{-# OPTIONS_GHC -Wall -fno-warn-tabs #-}
+
+module Gpu.Vulkan.Sparse.Image.Middle.Internal where
+
+import Foreign.Ptr
+import Foreign.Marshal.Array
+import Foreign.Storable.PeekPoke
+import Control.Arrow
+import Data.IORef
+
+import Gpu.Vulkan.Middle
+import Gpu.Vulkan.Device.Middle.Internal qualified as Device
+import Gpu.Vulkan.Memory.Middle.Internal qualified as Memory
+import Gpu.Vulkan.Image.Middle.Internal qualified as Image
+import Gpu.Vulkan.Sparse.Enum qualified as S
+import Gpu.Vulkan.Sparse.Middle.Internal qualified as S
+
+import Gpu.Vulkan.Sparse.Image.Core qualified as C
+
+data OpaqueMemoryBindInfo = OpaqueMemoryBindInfo {
+	opaqueMemoryBindInfoImage :: Image.I,
+	opaqueMemoryBindInfoBinds :: [S.MemoryBind] }
+
+opaqueMemoryBindInfoToCore ::
+	OpaqueMemoryBindInfo -> (C.OpaqueMemoryBindInfo -> IO a) -> IO a
+opaqueMemoryBindInfoToCore OpaqueMemoryBindInfo {
+	opaqueMemoryBindInfoImage = Image.I ir,
+	opaqueMemoryBindInfoBinds = length &&& id -> (bc, bs) } f = do
+	(_, i) <- readIORef ir
+	cbs <- S.memoryBindToCore `mapM` bs
+	allocaArray bc \pbs -> do
+		pokeArray pbs cbs
+		f C.OpaqueMemoryBindInfo {
+			C.opaqueMemoryBindInfoImage = i,
+			C.opaqueMemoryBindInfoBindCount = fromIntegral bc,
+			C.opaqueMemoryBindInfoPBinds = pbs }
+
+data MemoryBindInfo = MemoryBindInfo {
+	memoryBindInfoImage :: Image.I,
+	memoryBindInfoBinds :: [MemoryBind] }
+
+memoryBindInfoToCore ::
+	MemoryBindInfo -> (C.MemoryBindInfo -> IO a) -> IO a
+memoryBindInfoToCore MemoryBindInfo {
+	memoryBindInfoImage = Image.I ir,
+	memoryBindInfoBinds = length &&& id -> (bc, bs) } f =  do
+	(_, i) <- readIORef ir
+	cbs <- memoryBindToCore `mapM` bs
+	allocaArray bc \pbs -> do
+		pokeArray pbs cbs
+		f C.MemoryBindInfo {
+			C.memoryBindInfoImage = i,
+			C.memoryBindInfoBindCount = fromIntegral bc,
+			C.memoryBindInfoPBinds = pbs }
+
+data MemoryBind = MemoryBind {
+	memoryBindSubresource :: Image.Subresource,
+	memoryBindOffset :: Offset3d,
+	memoryBindExtent :: Extent3d,
+	memoryBindMemory :: Memory.M,
+	memoryBindMemoryOffset :: Device.Size,
+	memoryBindFlags :: S.MemoryBindFlags }
+
+memoryBindToCore :: MemoryBind -> IO C.MemoryBind
+memoryBindToCore MemoryBind {
+	memoryBindSubresource = sr,
+	memoryBindOffset = o,
+	memoryBindExtent = e,
+	memoryBindMemory = Memory.M rm,
+	memoryBindMemoryOffset = Device.Size mo,
+	memoryBindFlags = S.MemoryBindFlagBits fs } = do
+	m <- readIORef rm
+	pure C.MemoryBind {
+		C.memoryBindSubresource = Image.subresourceToCore sr,
+		C.memoryBindOffset = o,
+		C.memoryBindExtent = e,
+		C.memoryBindMemory = m,
+		C.memoryBindMemoryOffset = mo,
+		C.memoryBindFlags = fs }
diff --git a/src/Gpu/Vulkan/Sparse/Middle.hs b/src/Gpu/Vulkan/Sparse/Middle.hs
new file mode 100644
--- /dev/null
+++ b/src/Gpu/Vulkan/Sparse/Middle.hs
@@ -0,0 +1,7 @@
+{-# OPTIONS_GHC -Wall -fno-warn-tabs #-}
+
+module Gpu.Vulkan.Sparse.Middle (
+	MemoryBind(..)
+	) where
+
+import Gpu.Vulkan.Sparse.Middle.Internal
diff --git a/src/Gpu/Vulkan/Sparse/Middle/Internal.hs b/src/Gpu/Vulkan/Sparse/Middle/Internal.hs
new file mode 100644
--- /dev/null
+++ b/src/Gpu/Vulkan/Sparse/Middle/Internal.hs
@@ -0,0 +1,32 @@
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# OPTIONS_GHC -Wall -fno-warn-tabs #-}
+
+module Gpu.Vulkan.Sparse.Middle.Internal where
+
+import Gpu.Vulkan.Device.Middle.Internal qualified as Device
+import Gpu.Vulkan.Memory.Middle.Internal qualified as Memory
+import Gpu.Vulkan.Sparse.Enum
+
+import Gpu.Vulkan.Sparse.Core qualified as C
+
+data MemoryBind = MemoryBind {
+	memoryBindResourceOffset :: Device.Size,
+	memoryBindSize :: Device.Size,
+	memoryBindMemory :: Memory.M,
+	memoryBindMemoryOffset :: Device.Size,
+	memoryBindFlags :: MemoryBindFlags }
+
+memoryBindToCore :: MemoryBind -> IO C.MemoryBind
+memoryBindToCore MemoryBind {
+	memoryBindResourceOffset = Device.Size ro,
+	memoryBindSize = Device.Size sz,
+	memoryBindMemory = mm,
+	memoryBindMemoryOffset = Device.Size mo,
+	memoryBindFlags = MemoryBindFlagBits fs } = do
+	cmm <- Memory.mToCore mm
+	pure C.MemoryBind {
+		C.memoryBindResourceOffset = ro,
+		C.memoryBindSize = sz,
+		C.memoryBindMemory = cmm,
+		C.memoryBindMemoryOffset = mo,
+		C.memoryBindFlags = fs }
diff --git a/src/Gpu/Vulkan/Subpass/Enum.hsc b/src/Gpu/Vulkan/Subpass/Enum.hsc
--- a/src/Gpu/Vulkan/Subpass/Enum.hsc
+++ b/src/Gpu/Vulkan/Subpass/Enum.hsc
@@ -49,6 +49,10 @@
 	("ContentsInline", #{const VK_SUBPASS_CONTENTS_INLINE}),
 	("ContentsSecondaryCommandBuffers",
 		#{const VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS}),
+	("ContentsInlineAndSecondaryCommandBuffersKhr",
+		#{const VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_KHR}),
+	("ContentsInlineAndSecondaryCommandBuffersExt",
+		#{const VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT}),
 	("ContentsMaxEnum", #{const VK_SUBPASS_CONTENTS_MAX_ENUM}) ]
 
 type DescriptionFlags = DescriptionFlagBits
diff --git a/th/vkFormat.txt b/th/vkFormat.txt
--- a/th/vkFormat.txt
+++ b/th/vkFormat.txt
@@ -245,7 +245,9 @@
 FormatPvrtc14bppSrgbBlockImg
 FormatPvrtc22bppSrgbBlockImg
 FormatPvrtc24bppSrgbBlockImg
-FormatR16g16S105Nv
+FormatR16g16Sfixed5Nv
+FormatA1b5g5r5UnormPack16Khr
+FormatA8UnormKhr
 FormatAstc4x4SfloatBlockExt
 FormatAstc5x4SfloatBlockExt
 FormatAstc5x5SfloatBlockExt
@@ -300,4 +302,6 @@
 FormatG16B16r162plane444UnormExt
 FormatA4r4g4b4UnormPack16Ext
 FormatA4b4g4r4UnormPack16Ext
+
+FormatR16g16S105Nv
 FormatMaxEnum
