diff --git a/src-gen/Graphics/Vulkan/Core_1_1.hs b/src-gen/Graphics/Vulkan/Core_1_1.hs
--- a/src-gen/Graphics/Vulkan/Core_1_1.hs
+++ b/src-gen/Graphics/Vulkan/Core_1_1.hs
@@ -1132,9 +1132,9 @@
         VkStructureType 1000157001
 
 -- | bitpos = @10@
-pattern VK_IMAGE_CREATE_ALIAS_BIT :: VkImageCreateFlagBits
+pattern VK_IMAGE_CREATE_ALIAS_BIT :: VkImageCreateBitmask a
 
-pattern VK_IMAGE_CREATE_ALIAS_BIT = VkImageCreateFlagBits 1024
+pattern VK_IMAGE_CREATE_ALIAS_BIT = VkImageCreateBitmask 1024
 
 pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES ::
         VkStructureType
@@ -1844,24 +1844,24 @@
 
 -- | bitpos = @3@
 pattern VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT ::
-        VkPipelineCreateFlagBits
+        VkPipelineCreateBitmask a
 
 pattern VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT =
-        VkPipelineCreateFlagBits 8
+        VkPipelineCreateBitmask 8
 
 -- | bitpos = @4@
 pattern VK_PIPELINE_CREATE_DISPATCH_BASE ::
-        VkPipelineCreateFlagBits
+        VkPipelineCreateBitmask a
 
 pattern VK_PIPELINE_CREATE_DISPATCH_BASE =
-        VkPipelineCreateFlagBits 16
+        VkPipelineCreateBitmask 16
 
 -- | Dependency is across devices
 --
 --   bitpos = @2@
-pattern VK_DEPENDENCY_DEVICE_GROUP_BIT :: VkDependencyFlagBits
+pattern VK_DEPENDENCY_DEVICE_GROUP_BIT :: VkDependencyBitmask a
 
-pattern VK_DEPENDENCY_DEVICE_GROUP_BIT = VkDependencyFlagBits 4
+pattern VK_DEPENDENCY_DEVICE_GROUP_BIT = VkDependencyBitmask 4
 
 pattern VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO ::
         VkStructureType
@@ -1879,10 +1879,10 @@
 --
 --   bitpos = @6@
 pattern VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT ::
-        VkImageCreateFlagBits
+        VkImageCreateBitmask a
 
 pattern VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT =
-        VkImageCreateFlagBits 64
+        VkImageCreateBitmask 64
 
 pattern VkEnumeratePhysicalDeviceGroups :: CString
 
@@ -2121,9 +2121,9 @@
 -- | If set, heap allocations allocate multiple instances by default
 --
 --   bitpos = @1@
-pattern VK_MEMORY_HEAP_MULTI_INSTANCE_BIT :: VkMemoryHeapFlagBits
+pattern VK_MEMORY_HEAP_MULTI_INSTANCE_BIT :: VkMemoryHeapBitmask a
 
-pattern VK_MEMORY_HEAP_MULTI_INSTANCE_BIT = VkMemoryHeapFlagBits 2
+pattern VK_MEMORY_HEAP_MULTI_INSTANCE_BIT = VkMemoryHeapBitmask 2
 
 pattern VkGetImageMemoryRequirements2 :: CString
 
@@ -4478,41 +4478,42 @@
 --
 --   bitpos = @14@
 pattern VK_FORMAT_FEATURE_TRANSFER_SRC_BIT ::
-        VkFormatFeatureFlagBits
+        VkFormatFeatureBitmask a
 
 pattern VK_FORMAT_FEATURE_TRANSFER_SRC_BIT =
-        VkFormatFeatureFlagBits 16384
+        VkFormatFeatureBitmask 16384
 
 -- | Format can be used as the destination image of image transfer commands
 --
 --   bitpos = @15@
 pattern VK_FORMAT_FEATURE_TRANSFER_DST_BIT ::
-        VkFormatFeatureFlagBits
+        VkFormatFeatureBitmask a
 
 pattern VK_FORMAT_FEATURE_TRANSFER_DST_BIT =
-        VkFormatFeatureFlagBits 32768
+        VkFormatFeatureBitmask 32768
 
 -- | The 3D image can be viewed as a 2D or 2D array image
 --
 --   bitpos = @5@
 pattern VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT ::
-        VkImageCreateFlagBits
+        VkImageCreateBitmask a
 
 pattern VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT =
-        VkImageCreateFlagBits 32
+        VkImageCreateBitmask 32
 
 -- | bitpos = @7@
 pattern VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT ::
-        VkImageCreateFlagBits
+        VkImageCreateBitmask a
 
 pattern VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT =
-        VkImageCreateFlagBits 128
+        VkImageCreateBitmask 128
 
 -- | bitpos = @8@
-pattern VK_IMAGE_CREATE_EXTENDED_USAGE_BIT :: VkImageCreateFlagBits
+pattern VK_IMAGE_CREATE_EXTENDED_USAGE_BIT ::
+        VkImageCreateBitmask a
 
 pattern VK_IMAGE_CREATE_EXTENDED_USAGE_BIT =
-        VkImageCreateFlagBits 256
+        VkImageCreateBitmask 256
 
 pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES
         :: VkStructureType
@@ -4569,9 +4570,9 @@
         VkStructureType 1000053002
 
 -- | bitpos = @1@
-pattern VK_DEPENDENCY_VIEW_LOCAL_BIT :: VkDependencyFlagBits
+pattern VK_DEPENDENCY_VIEW_LOCAL_BIT :: VkDependencyBitmask a
 
-pattern VK_DEPENDENCY_VIEW_LOCAL_BIT = VkDependencyFlagBits 2
+pattern VK_DEPENDENCY_VIEW_LOCAL_BIT = VkDependencyBitmask 2
 
 pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES
         :: VkStructureType
@@ -4786,50 +4787,50 @@
 -- | Queues may support protected operations
 --
 --   bitpos = @4@
-pattern VK_QUEUE_PROTECTED_BIT :: VkQueueFlagBits
+pattern VK_QUEUE_PROTECTED_BIT :: VkQueueBitmask a
 
-pattern VK_QUEUE_PROTECTED_BIT = VkQueueFlagBits 16
+pattern VK_QUEUE_PROTECTED_BIT = VkQueueBitmask 16
 
 -- | Queue is a protected-capable device queue
 --
 --   bitpos = @0@
 pattern VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT ::
-        VkDeviceQueueCreateFlagBits
+        VkDeviceQueueCreateBitmask a
 
 pattern VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT =
-        VkDeviceQueueCreateFlagBits 1
+        VkDeviceQueueCreateBitmask 1
 
 -- | Memory is protected
 --
 --   bitpos = @5@
 pattern VK_MEMORY_PROPERTY_PROTECTED_BIT ::
-        VkMemoryPropertyFlagBits
+        VkMemoryPropertyBitmask a
 
 pattern VK_MEMORY_PROPERTY_PROTECTED_BIT =
-        VkMemoryPropertyFlagBits 32
+        VkMemoryPropertyBitmask 32
 
 -- | Buffer requires protected memory
 --
 --   bitpos = @3@
-pattern VK_BUFFER_CREATE_PROTECTED_BIT :: VkBufferCreateFlagBits
+pattern VK_BUFFER_CREATE_PROTECTED_BIT :: VkBufferCreateBitmask a
 
-pattern VK_BUFFER_CREATE_PROTECTED_BIT = VkBufferCreateFlagBits 8
+pattern VK_BUFFER_CREATE_PROTECTED_BIT = VkBufferCreateBitmask 8
 
 -- | Image requires protected memory
 --
 --   bitpos = @11@
-pattern VK_IMAGE_CREATE_PROTECTED_BIT :: VkImageCreateFlagBits
+pattern VK_IMAGE_CREATE_PROTECTED_BIT :: VkImageCreateBitmask a
 
-pattern VK_IMAGE_CREATE_PROTECTED_BIT = VkImageCreateFlagBits 2048
+pattern VK_IMAGE_CREATE_PROTECTED_BIT = VkImageCreateBitmask 2048
 
 -- | Command buffers allocated from pool are protected command buffers
 --
 --   bitpos = @2@
 pattern VK_COMMAND_POOL_CREATE_PROTECTED_BIT ::
-        VkCommandPoolCreateFlagBits
+        VkCommandPoolCreateBitmask a
 
 pattern VK_COMMAND_POOL_CREATE_PROTECTED_BIT =
-        VkCommandPoolCreateFlagBits 4
+        VkCommandPoolCreateBitmask 4
 
 pattern VkCreateSamplerYcbcrConversion :: CString
 
@@ -5488,82 +5489,82 @@
         VkFormat 1000156033
 
 -- | bitpos = @4@
-pattern VK_IMAGE_ASPECT_PLANE_0_BIT :: VkImageAspectFlagBits
+pattern VK_IMAGE_ASPECT_PLANE_0_BIT :: VkImageAspectBitmask a
 
-pattern VK_IMAGE_ASPECT_PLANE_0_BIT = VkImageAspectFlagBits 16
+pattern VK_IMAGE_ASPECT_PLANE_0_BIT = VkImageAspectBitmask 16
 
 -- | bitpos = @5@
-pattern VK_IMAGE_ASPECT_PLANE_1_BIT :: VkImageAspectFlagBits
+pattern VK_IMAGE_ASPECT_PLANE_1_BIT :: VkImageAspectBitmask a
 
-pattern VK_IMAGE_ASPECT_PLANE_1_BIT = VkImageAspectFlagBits 32
+pattern VK_IMAGE_ASPECT_PLANE_1_BIT = VkImageAspectBitmask 32
 
 -- | bitpos = @6@
-pattern VK_IMAGE_ASPECT_PLANE_2_BIT :: VkImageAspectFlagBits
+pattern VK_IMAGE_ASPECT_PLANE_2_BIT :: VkImageAspectBitmask a
 
-pattern VK_IMAGE_ASPECT_PLANE_2_BIT = VkImageAspectFlagBits 64
+pattern VK_IMAGE_ASPECT_PLANE_2_BIT = VkImageAspectBitmask 64
 
 -- | bitpos = @9@
-pattern VK_IMAGE_CREATE_DISJOINT_BIT :: VkImageCreateFlagBits
+pattern VK_IMAGE_CREATE_DISJOINT_BIT :: VkImageCreateBitmask a
 
-pattern VK_IMAGE_CREATE_DISJOINT_BIT = VkImageCreateFlagBits 512
+pattern VK_IMAGE_CREATE_DISJOINT_BIT = VkImageCreateBitmask 512
 
 -- | Format can have midpoint rather than cosited chroma samples
 --
 --   bitpos = @17@
 pattern VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT ::
-        VkFormatFeatureFlagBits
+        VkFormatFeatureBitmask a
 
 pattern VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT =
-        VkFormatFeatureFlagBits 131072
+        VkFormatFeatureBitmask 131072
 
 -- | Format can be used with linear filtering whilst color conversion is enabled
 --
 --   bitpos = @18@
 pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT
-        :: VkFormatFeatureFlagBits
+        :: VkFormatFeatureBitmask a
 
 pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT
-        = VkFormatFeatureFlagBits 262144
+        = VkFormatFeatureBitmask 262144
 
 -- | Format can have different chroma, min and mag filters
 --
 --   bitpos = @19@
 pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT
-        :: VkFormatFeatureFlagBits
+        :: VkFormatFeatureBitmask a
 
 pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT
-        = VkFormatFeatureFlagBits 524288
+        = VkFormatFeatureBitmask 524288
 
 -- | bitpos = @20@
 pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT
-        :: VkFormatFeatureFlagBits
+        :: VkFormatFeatureBitmask a
 
 pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT
-        = VkFormatFeatureFlagBits 1048576
+        = VkFormatFeatureBitmask 1048576
 
 -- | bitpos = @21@
 pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT
-        :: VkFormatFeatureFlagBits
+        :: VkFormatFeatureBitmask a
 
 pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT
-        = VkFormatFeatureFlagBits 2097152
+        = VkFormatFeatureBitmask 2097152
 
 -- | Format supports disjoint planes
 --
 --   bitpos = @22@
-pattern VK_FORMAT_FEATURE_DISJOINT_BIT :: VkFormatFeatureFlagBits
+pattern VK_FORMAT_FEATURE_DISJOINT_BIT :: VkFormatFeatureBitmask a
 
 pattern VK_FORMAT_FEATURE_DISJOINT_BIT =
-        VkFormatFeatureFlagBits 4194304
+        VkFormatFeatureBitmask 4194304
 
 -- | Format can have cosited rather than midpoint chroma samples
 --
 --   bitpos = @23@
 pattern VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT ::
-        VkFormatFeatureFlagBits
+        VkFormatFeatureBitmask a
 
 pattern VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT =
-        VkFormatFeatureFlagBits 8388608
+        VkFormatFeatureBitmask 8388608
 
 pattern VkCreateDescriptorUpdateTemplate :: CString
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_ANDROID_external_memory_android_hardware_buffer.hs b/src-gen/Graphics/Vulkan/Ext/VK_ANDROID_external_memory_android_hardware_buffer.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_ANDROID_external_memory_android_hardware_buffer.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_ANDROID_external_memory_android_hardware_buffer.hs
@@ -276,10 +276,10 @@
 
 -- | bitpos = @10@
 pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID
-        :: VkExternalMemoryHandleTypeFlagBits
+        :: VkExternalMemoryHandleTypeBitmask a
 
 pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID
-        = VkExternalMemoryHandleTypeFlagBits 1024
+        = VkExternalMemoryHandleTypeBitmask 1024
 
 pattern VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID ::
         VkStructureType
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_EXT_blend_operation_advanced.hs b/src-gen/Graphics/Vulkan/Ext/VK_EXT_blend_operation_advanced.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_EXT_blend_operation_advanced.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_EXT_blend_operation_advanced.hs
@@ -326,7 +326,7 @@
 
 -- | bitpos = @19@
 pattern VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT ::
-        VkAccessFlagBits
+        VkAccessBitmask a
 
 pattern VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT =
-        VkAccessFlagBits 524288
+        VkAccessBitmask 524288
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_EXT_descriptor_indexing.hs b/src-gen/Graphics/Vulkan/Ext/VK_EXT_descriptor_indexing.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_EXT_descriptor_indexing.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_EXT_descriptor_indexing.hs
@@ -126,17 +126,17 @@
 
 -- | bitpos = @1@
 pattern VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT ::
-        VkDescriptorPoolCreateFlagBits
+        VkDescriptorPoolCreateBitmask a
 
 pattern VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT =
-        VkDescriptorPoolCreateFlagBits 2
+        VkDescriptorPoolCreateBitmask 2
 
 -- | bitpos = @1@
 pattern VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT
-        :: VkDescriptorSetLayoutCreateFlagBits
+        :: VkDescriptorSetLayoutCreateBitmask a
 
 pattern VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT
-        = VkDescriptorSetLayoutCreateFlagBits 2
+        = VkDescriptorSetLayoutCreateBitmask 2
 
 pattern VK_ERROR_FRAGMENTATION_EXT :: VkResult
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_EXT_external_memory_dma_buf.hs b/src-gen/Graphics/Vulkan/Ext/VK_EXT_external_memory_dma_buf.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_EXT_external_memory_dma_buf.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_EXT_external_memory_dma_buf.hs
@@ -65,7 +65,7 @@
 
 -- | bitpos = @9@
 pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT ::
-        VkExternalMemoryHandleTypeFlagBits
+        VkExternalMemoryHandleTypeBitmask a
 
 pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT =
-        VkExternalMemoryHandleTypeFlagBits 512
+        VkExternalMemoryHandleTypeBitmask 512
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_EXT_external_memory_host.hs b/src-gen/Graphics/Vulkan/Ext/VK_EXT_external_memory_host.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_EXT_external_memory_host.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_EXT_external_memory_host.hs
@@ -189,14 +189,14 @@
 
 -- | bitpos = @7@
 pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT ::
-        VkExternalMemoryHandleTypeFlagBits
+        VkExternalMemoryHandleTypeBitmask a
 
 pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT =
-        VkExternalMemoryHandleTypeFlagBits 128
+        VkExternalMemoryHandleTypeBitmask 128
 
 -- | bitpos = @8@
 pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT
-        :: VkExternalMemoryHandleTypeFlagBits
+        :: VkExternalMemoryHandleTypeBitmask a
 
 pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT
-        = VkExternalMemoryHandleTypeFlagBits 256
+        = VkExternalMemoryHandleTypeBitmask 256
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_EXT_sample_locations.hs b/src-gen/Graphics/Vulkan/Ext/VK_EXT_sample_locations.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_EXT_sample_locations.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_EXT_sample_locations.hs
@@ -242,10 +242,10 @@
 
 -- | bitpos = @12@
 pattern VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT
-        :: VkImageCreateFlagBits
+        :: VkImageCreateBitmask a
 
 pattern VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT =
-        VkImageCreateFlagBits 4096
+        VkImageCreateBitmask 4096
 
 pattern VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT ::
         VkStructureType
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_EXT_sampler_filter_minmax.hs b/src-gen/Graphics/Vulkan/Ext/VK_EXT_sampler_filter_minmax.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_EXT_sampler_filter_minmax.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_EXT_sampler_filter_minmax.hs
@@ -105,7 +105,7 @@
 --
 --   bitpos = @16@
 pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT ::
-        VkFormatFeatureFlagBits
+        VkFormatFeatureBitmask a
 
 pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT =
-        VkFormatFeatureFlagBits 65536
+        VkFormatFeatureBitmask 65536
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_IMG_filter_cubic.hs b/src-gen/Graphics/Vulkan/Ext/VK_IMG_filter_cubic.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_IMG_filter_cubic.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_IMG_filter_cubic.hs
@@ -65,7 +65,7 @@
 --
 --   bitpos = @13@
 pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG ::
-        VkFormatFeatureFlagBits
+        VkFormatFeatureBitmask a
 
 pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG =
-        VkFormatFeatureFlagBits 8192
+        VkFormatFeatureBitmask 8192
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_push_descriptor.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_push_descriptor.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_push_descriptor.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_push_descriptor.hs
@@ -177,10 +177,10 @@
 --
 --   bitpos = @0@
 pattern VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR ::
-        VkDescriptorSetLayoutCreateFlagBits
+        VkDescriptorSetLayoutCreateBitmask a
 
 pattern VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR =
-        VkDescriptorSetLayoutCreateFlagBits 1
+        VkDescriptorSetLayoutCreateBitmask 1
 
 pattern VkCmdPushDescriptorSetWithTemplateKHR :: CString
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_swapchain.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_swapchain.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_swapchain.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_swapchain.hs
@@ -2186,16 +2186,16 @@
 --
 --   bitpos = @0@
 pattern VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR ::
-        VkSwapchainCreateFlagBitsKHR
+        VkSwapchainCreateBitmaskKHR a
 
 pattern VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR =
-        VkSwapchainCreateFlagBitsKHR 1
+        VkSwapchainCreateBitmaskKHR 1
 
 -- | Swapchain is protected
 --
 --   bitpos = @1@
 pattern VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR ::
-        VkSwapchainCreateFlagBitsKHR
+        VkSwapchainCreateBitmaskKHR a
 
 pattern VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR =
-        VkSwapchainCreateFlagBitsKHR 2
+        VkSwapchainCreateBitmaskKHR 2
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_NVX_device_generated_commands.hs b/src-gen/Graphics/Vulkan/Ext/VK_NVX_device_generated_commands.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_NVX_device_generated_commands.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_NVX_device_generated_commands.hs
@@ -747,22 +747,23 @@
 
 -- | bitpos = @17@
 pattern VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX ::
-        VkPipelineStageFlagBits
+        VkPipelineStageBitmask a
 
 pattern VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX =
-        VkPipelineStageFlagBits 131072
+        VkPipelineStageBitmask 131072
 
 -- | bitpos = @17@
-pattern VK_ACCESS_COMMAND_PROCESS_READ_BIT_NVX :: VkAccessFlagBits
+pattern VK_ACCESS_COMMAND_PROCESS_READ_BIT_NVX :: VkAccessBitmask a
 
 pattern VK_ACCESS_COMMAND_PROCESS_READ_BIT_NVX =
-        VkAccessFlagBits 131072
+        VkAccessBitmask 131072
 
 -- | bitpos = @18@
-pattern VK_ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX :: VkAccessFlagBits
+pattern VK_ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX ::
+        VkAccessBitmask a
 
 pattern VK_ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX =
-        VkAccessFlagBits 262144
+        VkAccessBitmask 262144
 
 -- | VkobjectTableNVX
 pattern VK_OBJECT_TYPE_OBJECT_TABLE_NVX :: VkObjectType
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_NVX_multiview_per_view_attributes.hs b/src-gen/Graphics/Vulkan/Ext/VK_NVX_multiview_per_view_attributes.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_NVX_multiview_per_view_attributes.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_NVX_multiview_per_view_attributes.hs
@@ -88,14 +88,14 @@
 
 -- | bitpos = @0@
 pattern VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX ::
-        VkSubpassDescriptionFlagBits
+        VkSubpassDescriptionBitmask a
 
 pattern VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX =
-        VkSubpassDescriptionFlagBits 1
+        VkSubpassDescriptionBitmask 1
 
 -- | bitpos = @1@
 pattern VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX ::
-        VkSubpassDescriptionFlagBits
+        VkSubpassDescriptionBitmask a
 
 pattern VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX =
-        VkSubpassDescriptionFlagBits 2
+        VkSubpassDescriptionBitmask 2
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_NV_shader_subgroup_partitioned.hs b/src-gen/Graphics/Vulkan/Ext/VK_NV_shader_subgroup_partitioned.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_NV_shader_subgroup_partitioned.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_NV_shader_subgroup_partitioned.hs
@@ -61,7 +61,7 @@
 
 -- | bitpos = @8@
 pattern VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV ::
-        VkSubgroupFeatureFlagBits
+        VkSubgroupFeatureBitmask a
 
 pattern VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV =
-        VkSubgroupFeatureFlagBits 256
+        VkSubgroupFeatureBitmask 256
diff --git a/vulkan-api.cabal b/vulkan-api.cabal
--- a/vulkan-api.cabal
+++ b/vulkan-api.cabal
@@ -3,7 +3,7 @@
 -- it is autogenerated at genvulkan/src/Write/Cabal.hs
 --
 name:                vulkan-api
-version:             1.1.3.1
+version:             1.1.4.0
 synopsis:            Low-level low-overhead vulkan api bindings
 description:
     Haskell bindings for vulkan api as described in vk.xml.
